왜 파이썬의 버전을 알아야할까요?
이유는 간단합니다. 버전이 최신이면 최신일수록 가장 지원이 잘되기 때문입니다. 그래서 파이썬2가 아닌 파이썬3를 쓰는 것을 권장합니다.
그렇다면, 파이썬 버전은 어떻게 알 수 있나요?
#터미널
$ python --version #Python 3.7.12
---
#내장 모듈 sys이용
import sys
print(sys.version_info)
print(sys.version)
#결과
sys.version_info(major=3, minor=7, micro=12, releaselevel='final', serial=0)
3.7.12 (default, Sep 10 2021, 00:21:48)
[GCC 7.5.0]
PEP8이란?
파이썬 코드를 어떤 형식으로 작성할지 잘 알려주는 스타일 가이드로 이 방식을 사용한다면 코드에 더 친숙하게 접근하고 쉽게 읽을 수 있게되는 긍정적인 효과로 인해서 협업 시 빛을 발휘하게 됩니다.
https://www.python.org/dev/peps/pep-0008/
파이썬에서 공백은 중요한 의미를 갖고 있습니다. 그 의미는 바로 코드의 의미를 명확하게 되도록 도와줍니다.
탭 대신 스페이스를 통해서 들여쓰기하기
문법적으로 중요한 들여쓰기인 경우 4칸 스페이스를 사용하기
라인 길이는 79개 문자 이하
긴 식을 다음 줄에 쓸 경우 4칸 스페이스로 들여쓰기
파일 안에서 각 함수와 클래스 사이에는 빈 줄 두 줄 넣기
클래스 안에서 메서드와 메서드 사이에는 빈 줄 한 줄 넣기
변수 대입에서 = 전후에는 스페이스를 하나씩만 넣기
타입 표기를 덧붙이는 경우, 변수 이름과 콜론 사이에 공백 넣지 않기
콜론과 타입 정보사이에는 스페이스를 하나 넣기
파이썬 언어의 여러 부분에 사용되는 이름을 어떻게 붙이는지에 관한 지침으로, 사용 시 코드를 읽으면서 각 이름이 어느 유형에 속하는지 파악이 가능하게 됩니다.
함수, 변수, 속성(attribute)는 lowercase_underscore처럼 소문자와 밑줄을 사용
보호해야 하는 인스턴스 속성인 경우 일반적인 속성 이름 규칙을 따르는 동시에 _leading_underscore처럼 밑줄로 시작
비공개 인스턴스 속성(한 클래스에서만 쓰이는) 또한 일반적인 속성 이름 규칙을 따르는 동시에 __leading_underscore처럼 밑줄 두 개로 시작
클래스는 각 단어의 첫 글자를 대문자로 만들고 여러 단어 이어 붙이기 가능
모듈 수준의 상수는 모든 글자를 대문자로 하고 단어와 단어 사이를 밑줄로 연결한 형태 사용(ALL_CAPS)
클래스에 들어 있는 인스턴스 메서드는 호출 대상 객체를 가리치는 첫 번째 인자의 이름은 반드시 self를 사용
클래스 메서드는 클래스를 가리키는 첫 번째 인자의 이름은 반드시 cls를 사용
부정을 내부에 넣기(if a is not b.)
빈 컨테이너(container)나 시퀀스(sequence)([],'')를 검사할 때는 길이을 0과 비교하지 말기(if len(something)==0 [X])
빈 컨테이너나 시퀀스 값은 암묵적으로 False로 취급받기 때문에 'if not 컨테이너'라는 조건문 쓰기
반대로, 비어있지 않더라도 0보다 큰지 비교하지 말기
비어있지 않은 것은 True로 취급받는 사실 이용
한 줄짜리 if문, for문, while루프, except복합문 사용말기
명확성을 위해 각 부분을 여러 줄로 나눠 배치
식을 한 줄 안에 다 못 쓸 경우, 식을 괄호로 둘러싸고 줄바꿈과 들여쓰기 추가하여 읽기 쉽게 하기
여러 줄로 걸쳐서 식을 쓸 경우 괄호 사용하기
import문(from x import y도 포함)항상 파일 맨 앞에 위치
모듈 임포트 시, 절대적인 이름과 경로 사용하기(ex: from x import y)
만약 상대적인 경로로 임포트 해야 한다면, from, import y처럼 명시적인 구문 사용
임포트를 적을 때, 표준 라이브러리 모듈, 서드 파티 모듈, 여러분이 만든 모듈 순서(커스텀 라이브러리)로 섹션 나누기
각 세션은 알파벳 순서로 모듈 임포트하기
파이썬 소스 코드를 분석하는 것으로 PEP 8 스타일 가이드를 자동으로 실행해주어 다양한 오류 감지에 도움이되고 습관 기르기에 좋을 것입니다.