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칸의 공백을 좋아합니다.)

같은 카테고리의 다른 글
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 / 문법 / 주석

Python / 문법 / 주석

주석에는 한 줄 주석과 여러 줄 주석이 있습니다. 한 줄 주석은 #을 사용합니다. # 뒤의 문자열이 주석이 됩니다. # 한 줄 주석 print( "Hello" ) # Hello 출력 여러 줄 주석은 작은 따옴표 세 개('''), 또는 큰 따옴표 세 개(""")를 사용합니다. 혼용할 수는 없습니다. ''' print( "Hello" ) print( "World" ) ''' print( "Hello" ) print( "World" ) """ print( "Hello" ) print( "World" ...

Python / dir() / 객체의 메소드 등을 반환하는 함수

Python / dir() / 객체의 메소드 등을 반환하는 함수

예제 1 a = "Hello" print( dir( a ) ) ['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', ...

Python / PyCharm 설치하는 방법

Python / PyCharm 설치하는 방법

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

Python / Database / 연결하는 방법

Python / Database / 연결하는 방법

Python으로 Database에 연결하고 데이터를 조회해 봅니다. Microsoft SQL Server 패키지 설치하기 pymssql를 설치합니다. pip install pymssql 연결하고 데이터 조회하기 pymssql를 import합니다. import pymssql 연결 설정을 합니다. conn = pymssql.connect( server = 'server-ip', port = port-number, user = 'user-name', password = 'pasword', database = 'database-name' ) cursor를 ...

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

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

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

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 / 자료형 / 숫자

Python / 자료형 / 숫자

숫자 자료 만들기 숫자 자료는 따옴표 없이 숫자만 넣어서 만든다. 소숫점이 없으면 정수형 자료, 소숫점이 있으면 실수형 자료가 만들어진다. 정수형 자료의 타입은 int, >>> a = 100 >>> print( type( a ) ) <class 'int'> 실수형 자료의 타입은 float이다. >>> a = 100.1 >>> print( type( a ) ) <class 'float'> 숫자 연산자 사칙 연산 +는 더하고, -는 빼고, *는 곱하고, /는 ...

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 / range() / 연속된 수 또는 일정 간격의 연속된 수를 만드는 함수

Python / range() / 연속된 수 또는 일정 간격의 연속된 수를 만드는 함수

range() range() 함수는 연속된 수 또는 일정 간격의 연속된 수를 만드는 함수입니다. for 반복문에 자주 사용됩니다. 문법 range(stop) 0부터 시작하여 stop보다 하나 작은 수까지 만듭니다. range(start, stop) start부터 시작하여 stop보다 하나 작은 수까지 만듭니다. range(start, stop, step) start부터 시작하여 stop보다 하나 작은 수까지 step 간격으로 수를 만듭니다. 예제 1 0부터 3까지의 수를 만듭니다. >>> list(range(4)) 1부터 10까지의 수를 만듭니다. >>> ...