본문 바로가기

프로그래밍/python

[python] Common Coding Mistakes

파이썬 입문자가 흔히 범하는 대표적인 코딩 실수 3가지를 정리했습니다.
사소한 습관을 교정하여 더 간결하고 정확한 'Pythonic'한 코드로 나아가 봅시다.

 

Boolean
# Bad Pattern
def func():
  if is_correct == True: 
    return True
  else:
    return False
# Good Pattern (Pythonic)
def func():
  return is_correct
  • is_correct 변수 자체가 이미 True 혹은 False 값을 가지고 있다면, 
    • 굳이 if문을 사용하여 True와 같은지 한 번 더 비교할 필요가 없음
    • 코드가 불필요하게 길어지는(verbose) 원인이 됨. 
sort vs sorted 
l1 = [4, 2, 3, 7, 5]
print(l1.sort()) # None

l2 = [6, 5, 2, 8, 3] 
ls = sorted(l2) 
print(l2) # sorted l2 list
  • list.sort(): Return 없음
    • 원본 리스트 자체를 변경(In-place)해버리며, 반환값은 None입니다.
    • print(l1.sort())를 하면 정렬된 리스트가 아닌 None이 출력됩니다.
  • sorted(list) : Return 있음
    • 원본 리스트는 건드리지 않고,
    • 정렬된 새로운 리스트를 반환합니다.
Case sensitive
google = 1
Google = 2
print(google) # 1
print(Google) # 2
  • 파이썬은 대소문자를 엄격하게 구분(Case Sensitive)하는 언어 
  • 대소문자 오타로 인해 NameError가 발생하거나, 의도치 않게 다른 변수의 값을 참조하는 논리적 오류 발생 잦음
  • 파이썬에서는 변수명에 소문자(snake_case)를 사용하는 것이 관례

-------------------------------------------------------------------------------

참고 : 실리콘밸리 엔지니어가 가르치는 파이썬 기초부터 고급까지 (inflearn, 미쿡엔지니어) 

-------------------------------------------------------------------------------