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 / 반복문 / while

Python / 반복문 / while

while while은 주어진 조건이 참일 동안 작업을 반복하게 하는 구문입니다. 문법 while condition: statement condition : 작업을 하기 위한 조건입니다. 참일 동안 반복 작업을 합니다. statement : 반복할 작업입니다. 예제 i가 10보다 작으면 i을 출력합니다. 작업할 때마다 i는 1씩 커지고, i가 10이 되면 while문을 빠져나옵니다. i = 1 while i < 10: print(i, ...

Python / PIP(Python Package Index) 사용법

Python / PIP(Python Package Index) 사용법

Python Package Index Python Package Index는 파이썬 패키지들이 모여 있는 저장소입니다. The Python Package Index (PyPI) is a repository of software for the Python programming language. pip 명령어로 패키지를 로컬 머신에 설치하고 삭제하고 업데이트할 수 있습니다. PIP pip는 파이썬으로 작성된 패키지 소프트웨어를 관리하는 패키지 관리 시스템입니다. 파이썬 2.7.9 이후 버전과 파이썬 3.4 이후 버전은 pip를 ...

Python / float() / 자료형을 실수로 변환하는 함수

Python / float() / 자료형을 실수로 변환하는 함수

float()는 데이터 타입을 실수로 변경하는 함수이다. 정수를 실수로 변환한다. 정수일 때는 소숫점 아래가 없지만, 실수일 때는 있다. >>> a = 1 >>> type( a ) <class 'int'> >>> print( a ) 1 >>> b = float( a ) >>> type( b ) <class 'float'> >>> print( b ) 1.0 숫자로 이루어진 문자열을 실수로 변경한다. >>> a = '1' >>> type( a ) <class 'str'> >>> print( ...

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

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 ...

Python / PyCharm 설치하는 방법

Python / PyCharm 설치하는 방법

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

Python / len() / 문자열의 길이 반환하는 함수

Python / len() / 문자열의 길이 반환하는 함수

len()은 문자열의 길이 반환하는 함수이다. 간단한 예는 다음과 같다. len( "abc" ) # 3 반환 정수나 실수 등은 문자열이 아니므로 에러가 난다. 문자열로 변환한 후 센다. len( str( 1234 ) ) # 4 반환 한글도 1로, 공백도 1로 센다. len( "한글과 공백" ) # 6 반환 리스트나 튜플 등에서는 그 안에 속한 값의 ...

Python / 반복문 / for

Python / 반복문 / for

Python에서 반복 작업을 할 때 for 또는 while을 사용합니다. for에 대하여 알아봅니다. 기본 반복 횟수는 range() 함수로 만듭니다. 예를 들어 range(3)는 0, 1, 2를 생성하므로 3번 반복하게 됩니다. for i in range(3) : print( i, "Hello World!" ) 0 Hello World! 1 Hello World! 2 Hello World! 1부터 100까지의 합 구하기 range() 함수로 1부터 100까지 ...

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 / str() / 자료형을 문자열로 변환하는 함수

Python / str() / 자료형을 문자열로 변환하는 함수

str()은 데이터 타입을 문자열로 변환하는 함수이다. >>> a = 1 >>> type( a ) <class 'int'> >>> print( a ) 1 >>> b = str( a ) >>> type( b ) <class 'str'> >>> print( b ) 1 >>> a = 1.23 >>> type( a ) <class 'float'> >>> print( a ) 1.23 >>> b = str( a ) >>> type( b ) <class 'str'> >>> print( b ) 1.23 Python ...

Python / print() / 출력하는 함수

Python / print() / 출력하는 함수

Python의 print() 함수 사용법을 정리합니다. 큰 따옴표를 이용하여 Hello를 출력합니다. print("Hello") Hello 작은 따옴표를 이용하여 Hello를 출력합니다. print('Hello') Hello 작은 따옴표를 출력하려면 큰 따옴표로 감쌉니다. print("'Hello'") 'Hello' 큰 따옴표를 출력하려면 작은 따옴표로 감쌉니다. print('"Hello"') "Hello" 쉼표로 연결할 수 있습니다. 공백이 생깁니다. print("Hello","JB") Hello JB print() 함수를 연달아 사용하면 다른 줄에 출력됩니다. print("Hello") print("JB") Hello JB 줄바꿈 없이 출력하려면 end를 사용합니다. print("Hello",end=" ") print("JB") Hello JB sep를 이용하여 출력 값 사이에 특정 문자를 넣을 수 있습니다. print("A","B","C","D",sep=" ...