/ PYTHON

Pythonic Thinking(4) 파이썬 효율적으로 사용하기

첫번째 챕터 Pythonic Thinking의 10번 팁을 간단하게 요약해보자. 개학도 해서 일찍 자야하고 10번 팁이 긴 편이라 하나만 정리하자.

  1. 할당(Assignment; =) 표현으로 인한 반복을 피해라 (Python 3.8)

아직 개발중인 Python 3.8의 walrus(바다코끼리) 연산자에 대한 내용이다.

  • walrus 연산자(:=)를 사용해서 존재하지 않는 변수에 대하여 할당과 동시에 사용이 한줄로 가능하다.
  • 변수 할당이 다른 큰 표현 안에서 이루어지는 경우(예 if문에서의 대소 비교)에는 괄호()를 안에 넣어주자.
  • 파이썬에서 switch/case문과 do/while 반복문이 존재하지 않지만 앞서 말한 walrus 연산자를 활용하면 간결하게 표현이 가능하다. (아래 예시 참조)
    # 재료(과일 딕셔너리로 존재)가 허락하는 가장 좋은 주스를 갖는 경우 switch/case 문
    if (count := fresh_fruit.get('banana'), 0)) >= 2:
      # 바나나는 잘라야 된다.
      pieces = slice_bananas(count)
      to_enjoy = make_smoothies(pieces)
    elif (count := fresh_fruit.get('apple'), 0)) >= 4:
      to_enjoy = make_cider(count)
    elif count := fresh_fruit.get('apple'), 0):
      to_enjoy = make_lemonade(count)
    else:
      to_enjoy = 'Nothing'
    # 모든 재료를 소진하여 주스 병을 만드는 경우 do/while 문
    bottles = []
    while fresh_fruit := pick_fruit():
      for fruit, count in fresh_fruit.items():
          batch = make_juice(fruit, count)
          bottles.extend(batch)
    

출처: Slatkin, B. (2020). Effective Python: 90 specific ways to write better Python. USA: Addison-Wesley.