Python / Package / flake8 - PEP(Python Enhance Proposal) 검증 패키지 사용법

Style Guide for Python Code

여러 명이 공동으로 파이썬 코딩을 할 때, 각자의 스타일이 다르면 문제가 생길 수 있습니다. 그래서 협업을 수월하게 할 수 있도록 몇 가지 규칙을 정놓았는데, 이를 PEP(Python Enhance Proposal)라고 합니다. 몇 가지 규칙을 나열해보면...

  • Use 4 spaces per indentation level. : 들여쓰기는 4칸의 공백
  • Limit all lines to a maximum of 79 characters. : 한 줄에는 최대 79 글자
  • Code in the core Python distribution should always use UTF-8 : 인코딩을 UTF-8

이런 규칙들을 모아 놓은 문서는 여기입니다.

flake8

코드 스타일을 암기하고 사용하고, 점검하는 건 번거로운 작업입니다. 이를 도와주는 패키지가 flake8입니다. 코드를 분석하고, 규칙에서 벗어나는 것이 있다면 알려줍니다.

flake8 기본 정보는 다음과 같습니다.

C:\Users\JB\Documents\Python>pip show flake8
Name: flake8
Version: 3.7.7
Summary: the modular source code checker: pep8, pyflakes and co
Home-page: https://gitlab.com/pycqa/flake8
Author: Tarek Ziade
Author-email: tarek@ziade.org
License: MIT
Location: c:\users\jb\appdata\local\programs\python\python37-32\lib\site-packages
Requires: mccabe, pycodestyle, pyflakes, entrypoints
Required-by:

pip로 설치할 수 있습니다.

pip install flake8

flake8 사용법

예를 들어 다음과 같은 코드를 가진 hello.py가 있다고 하면...

print( "Hello World" )
a  = 1
print(a)

검사 결과는 다음과 같습니다.

C:\Users\JB\Documents\Python>flake8 hello.py
hello.py:1:7: E201 whitespace after '('
hello.py:1:21: E202 whitespace before ')'
hello.py:2:2: E221 multiple spaces before operator
hello.py:3:9: W292 no newline at end of file

'(' 다음에 공백이 필요 없고, ')' 앞에 공백이 필요 없고, 등호 앞의 공백을 한 칸으로 하고, 마지막에 빈 줄을 넣으라고 합니다. 이를 다 수정한 코드는 다음과 같습니다.

print("Hello World")
a = 1
print(a)

첫 번째 코드나 두 번째 코드 모두 실행에는 문제가 없지만, 두 번째처럼 하면 공동 작업이 편하다는 것이죠.

권장되는 스타일이 마음에 들지 않을 수도 있지만, 가급적 지켜 나가는 게 나중을 위해 좋다고 생각합니다.(개인적으론 들여쓰기는 2칸의 공백을 좋아합니다.)

Related Posts

Python / 모듈(module) 사용하기

Python / 모듈(module) 사용하기

모듈 가져오고 사용하기 import로 모듈을 가져옵니다. 예를 들어 math 모듈을 가져오고 싶다면 >>> import math 모듈에 포함된 함수 등 목록을 보고 싶다면 dir() 함수를 이용합니다. >>> dir(math) ['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', ...

Python / input() / 사용자가 입력한 값을 변수에 저장하는 함수

Python / input() / 사용자가 입력한 값을 변수에 저장하는 함수

설명 input() 함수로 사용자가 어떤 값을 입력하게 하고, 그 값을 변수에 저장할 수 있습니다. 문법 예를 들어 >>> x = input() 을 입력하고 엔터를 누르면 사용자가 값을 입력하기를 기다립니다. 값을 입력하고 엔터를 누르면 그 값이 변수 x에 저장됩니다. >>> x = input() hello >>> x 'hello' 입력할 값에 대한 안내를 출력하고 싶다면 >>> x = input('some text') 와 같이 합니다. 작은 따옴표 ...

Python / 자료형 / 집합(set)

Python / 자료형 / 집합(set)

집합(set) 집합은 여러 개의 자료를 하나의 변수로 관리할 때 사용하는 자료형 중의 하나입니다. 집합 자료형은 수학의 집합과 같은 성질을 가집니다. 즉, 집합은 중복된 데이터를 가질 수 없고, 순서가 없습니다. 따라서 순서와 관련된 인덱스기호()를 사용할 수 없고, 중복 데이터를 만드는 +, *를 사용할 수 없습니다. 하지만, in, not in, len()은 사용할 수 있습니다. 집합 만들기 집합은 중괄호로 만듭니다. >>> ...

Python / 조건문 / if

Python / 조건문 / if

if if 구문을 이용하면, 특정 조건을 만족할 때 특정 작업이 수행되도록 할 수 있습니다. 조건을 만족하는 동안 반복 작업을 하고 싶다면 while을 사용하세요. 문법 1 조건이 참이라면 코드를 실행합니다. if condition: statement 1은 0보다 크므로 HM을 출력합니다. if 1 > 0: print("HM") 조건이 거짓이므로 HM을 출력하지 않습니다. 즉, 아무런 작업을 하지 ...

Python / PyCharm 설치하는 방법

Python / PyCharm 설치하는 방법

PyCharm는 Python 개발 도구 중의 하나입니다. JetBrains에서 만든 것으로, 모든 기능이 있는 프로페셔널 에디션과, 기능의 제한이 있지만 무료로 사용할 수 있는 커뮤니티 에디션이 있습니다. 아래는 OS가 Windows인 컴퓨터에 PyCharm 커뮤니티 에디션을 다운로드하고 설치하는 방법입니다. 참고로, Python이 설치되어 있지 않아도 괜찮습니다. PyCharm에서 프로젝트를 만들 때 자동으로 Python을 다운로드 합니다. PyCharm 페이지에서 를 클릭합니다. Community ...

Python / 윈도우에서 pip로 설치할 때 '액세스가 거부되었습니다.' 해결하는 방법

Python / 윈도우에서 pip로 설치할 때 '액세스가 거부되었습니다.' 해결하는 방법

윈도우에서 pip로 라이브러리를 설치할 때, 다음과 같은 에러가 나면서 설치가 되지 않을 수 있습니다. ERROR: Could not install packages due to an EnvironmentError: 액세스가 거부되었습니다: 'C:\\Program Files (x86)\\Python38-32\\Lib\\site-packages\\PIL' Consider using the `--user` option or check the permissions. 해당 폴더에 적절한 권한이 없어서 발생하는 문제로, 관리자 권한으로 CMD를 실행하면 해결됩니다.

Python / Visual Studio Code 개발 환경 만들기

Python / Visual Studio Code 개발 환경 만들기

파이썬 개발을 위한 도구는 여러 가지가 있습니다. Visual Studio Code도 그 중 하나입니다. VS Code에 Python 확장 기능을 설치하고, Hello World를 출력해보겠습니다. 확장 기능 설치 Visual Studio Code를 설치하고 실행합니다. 사각형 모양의 확장 기능 아이콘을 클릭합니다. python으로 검색한 후, 다운로드 수가 가장 많은 Microsoft가 만든 Python을 설치합니다. Reload Required를 클릭합니다.(VS Code 버전에 따라 나오지 않을 ...

Python / PIP(Python Package Index) 사용법

Python / PIP(Python Package Index) 사용법

Python Package Index Python Package Index는 파이썬 패키지들이 모여 있는 저장소입니다. 2019년 3월 4일 현재 170,603개의 프로젝트, 1,236,475개의 릴리즈가 있습니다. The Python Package Index (PyPI) is a repository of software for the Python programming language. pip 명령어로 패키지를 로컬 머신에 설치하고 삭제하고 업데이트할 수 있습니다. PIP pip는 파이썬으로 작성된 패키지 소프트웨어를 관리하는 패키지 관리 시스템입니다. ...

Python / 자료형 / 사전(dict)

Python / 자료형 / 사전(dict)

사전(dict) 사전은 집합의 일종으로, 키와 값이 하나의 데이터를 만듭니다. 순서가 없고 중복된 데이터를 갖지 않아서, 중복 데이터를 만드는 +, *를 사용할 수 없지만, 키를 이용하여 인덱스기호()를 사용할 수 있습니다. 사전 만들기 사전은 집합과 마찬가지로 중괄호로 만듭니다. 키를 앞에, 값을 뒤에 쓰고, 구분은 콜론(:)으로 합니다. 데이터의 구분은 쉼표(,)로 합니다. >>> jb = {1:"one", 2:"two", 3:"three"} >>> jb {1: 'one', ...

Python / 반복문 / for

Python / 반복문 / for

for를 이용하여 반복된 작업을 할 수 있습니다. for는은 임의의 시퀀스(리스트나 문자열)의 항목들을 그 시퀀스에 들어있는 순서대로 이터레이션 합니다. range(4)는 0, 1, 2, 3을 만듭니다. 0일 때 한 번, 1일 때 한 번, 2일 때 한 번, 3일 때 한 번, 총 4회 반복을 합니다. >>> for i in range(4): print("Hello") Hello Hello Hello Hello range(4)로 만든 각 값을 ...