"Pythonic"코딩이란 무엇입니까?

8543 단어 beginnerspython
파이썬과 그 라이브러리를 가르치는 수많은 기사는 일반적으로 코드를 검토할 때 "충분히 파이썬적이지 않다"고 언급합니다. 그러나 실제로 무엇을 의미합니까? 이 문서에서 살펴보겠습니다.



Python은 배우기 쉽고 모든 분야에서 완벽하게 작동하는 앱을 구축할 수 있을 만큼 복잡하여 가장 널리 사용되는 언어 중 하나입니다. 더 높은 가독성을 위해 만들어졌지만 고유한 장점이 있는 동적으로 유형이 지정된 해석 언어입니다. 그 중 하나는 Python 자체에만 독점적인 구문을 사용하여 코드를 작성하고 구조화하는 고유한 방법입니다.

프로그래머가 스니펫을 "Pythonic"이 아니라고 선언하면 기본적으로 코드가 다른 언어의 리터럴 번역이거나 Python 고유의 기능을 사용하여 코드를 더 읽기 쉽게 만들 수 있음을 의미합니다. 개념을 더 자세히 설명하기 위해 두 가지 예가 제공됩니다.

튜플 패킹



Python에서 쉼표 ' , '로 구분된 상수와 값이 여러 개인 경우 Python 인터프리터는 자동으로 튜플로 알려진 컬렉션 데이터 유형으로 사용합니다. 이것은 일반적으로 포장으로 알려져 있습니다.

이 패킹 유틸리티는 여러 인수를 전달하거나 수신해야 하지만 사용할 특정 집합 데이터 유형이 없을 때 일반적으로 사용됩니다. 따라서 임시 사례의 경우 튜플 패킹은 많은 노력 없이 이러한 작은 사용 사례를 마무리하는 데 탁월한 역할을 합니다.

def sum_multiply_power(x, y):
    a = x + y
    b = x * y
    c = x ** y
    return a, b, c

ans = sum_multiply_power(5, 3)
print(ans)



>>> (8, 15, 125)


패킹과 유사하게 Python에는 튜플 언패킹이 있어 추가 노력이나 번거로움 없이 컬렉션 데이터 유형의 요소를 개별 변수로 추출할 수 있습니다.

ans1, ans2, ans3 = ans
print("The first part of ans is:", ans1)
print("The second part of ans is:", ans2)
print("The third part of ans is:", ans3)



>>> The first part of ans is: 8
>>> The second part of ans is: 15
>>> The third part of ans is: 125


또한 함수나 변수 간에 값을 전달할 때 별표 연산자 '*'를 사용하여 요소의 압축을 풀 수도 있습니다.

def print_3_birds(a, b, c):
    print("At first comes:", a)
    print("Then comes:", b)
    print("And lastly comes:", c)

blues = "Jake", "Jay", "Jim"
print_3_birds(*blues)



>>> At first comes: Jake
>>> Then comes: Jay
>>> And lastly comes: Jim


목록 이해



목록 내포는 목록 데이터 유형 내에서 값을 추가/업데이트하는 고유한 방법이며 다른 목록의 값을 사용하여 새 목록을 만드는 데도 도움이 됩니다. 목록 이해력은 훨씬 더 읽기 쉽게 만들고 루프 작동을 이해하는 복잡성을 줄입니다.
  • 이해력을 사용하지 않고 나열:

  • evens = []
    for i in range(100):
        if(i%2==0):
            evens.append(i)
    


  • 이해력을 사용하여 생성된 목록:

  • evens = [i for i in range(100) if i%2==0]
    


  • 이해를 사용하여 업데이트된 목록:

  • odds = [i for i in range(100) if i%2==0]
    odds = [num+1 for num in odds]
    


    꽤 편리한 목록 이해의 또 다른 사용 사례는 값 목록을 반복하면서 함수를 호출하는 데에도 사용할 수 있다는 것입니다.

    def pretty_print(val):
        print("The value of this variable is:", val)
    
    [pretty_print(num) for num in (odds+evens)]
    [print(num) for num in odds if odds>20]
    



    요컨대, 파이썬 방식의 코딩에는 제한이 없습니다. 최신 버전에서는 동일한 논리를 보다 읽기 쉽고 포괄적인 방식으로 작성하기 위한 새로운 기술, 구조 및 방법을 도입했습니다. 이 코딩 스타일을 배우는 가장 좋은 방법은 릴리스된 각각의 새 버전과 함께 제공되는 Python 설명서를 살펴보고 동일한 논리에 대해 다른 구현을 사용하여 실험하는 것입니다.

    좋은 웹페이지 즐겨찾기