python
Pythonic
zip/unzip
result:
in
dict & counter
enumerate
P:
NP:
import local module
args & kwargs
itertools
one-line python code
slice
chain compare
P:
NP:
boolean
P:
NP:
reverse
P:
NP:
join in list
P:
NP:
sum & max & min & time
P:
NP:
list comprehensions
P:
NP:
default dict
P:
NP:
if...else...
P:
NP:
ternary operator
P:
NP:
dict & zip
P:
NP:
[!NOTE|label:references:]
numbers
round
integer base
in-place value swapping
sum
string
multi-line strings
or
or
in
Join
set
slice operators
or
or
reversed
backslashes
or
args
Use _ instead of last printed item
*args & **kwargs
or
function argument unpacking
conditional assignment
ternary operator
or
or
or
or
or
conditional
or
or
or
or
or
or
equal to
set comprehensions
list & dics
zip
or
or
or
or
list & sum
nested list
or
enumerate
or
generate list
dict's constructor
or
dict's get
copy list
replace list
generators objects
or
generator & iteration
iteration & constructor (yield)
or
or
or
or
or
statement
for...else...
or
context managers and the "with" statement
try...except...elese...finally
funcs
dir
help
convenient web-browser controller
built-in http server
an interpreter within the interpreter
pretty print
or
class & module
bash
assertion
import
create new types
or
Manipulating sys.modules
or
Others
not hidden but still nice
be careful with mutable default arguments
or
Indentation
yes:
no:
optional
if statemant
list
or
Maximum Line Length
yes:
Should a Line break before or after a binary operator?
no: operators sit far away from their operands
yes: easy to match operators with operands
imports
no:
yes:
bad:
absolute imports are recommended
explicit relative imports are acceptable
import a class from a class-containing module
local name classes
module Level dunder names
yes:
whitespace in expressions and statements
no:
yes:
no:
yes:
no:
yes:
no:
yes:
no:
yes:
no:
yes:
other recommendations
no:
yes:
no:
yes:
no:
yes:
no:
yes:
rather NO
yes:
DEFINITELY NO
yes:
documentation strings
yes:
Programming Recommendations
no:
yes:
no:
yes:
no:
yes:
no:
yes:
no:
yes:
no:
yes:
no:
yes:
no:
yes:
no:
yes:
worse:
E1 Indentation
E101 indentation contains mixed spaces and tabs
E111 indentation is not a multiple of four
E112 expected an indented block
E113 unexpected indentation
E114 indentation is not a multiple of four (comment)
E115 expected an indented block (comment)
E116 unexpected indentation (comment)
E121 (*^) continuation line under-indented for hanging indent
E122 (^) continuation line missing indentation or outdented
E123 (*) closing bracket does not match indentation of opening bracket’s line
E124 (^) closing bracket does not match visual indentation
E125 (^) continuation line with same indent as next logical line
E126 (*^) continuation line over-indented for hanging indent
E127 (^) continuation line over-indented for visual indent
E128 (^) continuation line under-indented for visual indent
E129 (^) visually indented line with same indent as next logical line
E131 (^) continuation line unaligned for hanging indent
E133 (*) closing bracket is missing indentation
E2 Whitespace
E201 whitespace after ‘(‘
E202 whitespace before ‘)’
E203 whitespace before ‘:’
E211 whitespace before ‘(‘
E221 multiple spaces before operator
E222 multiple spaces after operator
E223 tab before operator
E224 tab after operator
E225 missing whitespace around operator
E226 (*) missing whitespace around arithmetic operator
E227 missing whitespace around bitwise or shift operator
E228 missing whitespace around modulo operator
E231 missing whitespace after ‘,’, ‘;’, or ‘:’
E241 (*) multiple spaces after ‘,’
E242 (*) tab after ‘,’
E251 unexpected spaces around keyword / parameter equals
E261 at least two spaces before inline comment
E262 inline comment should start with ‘# ‘
E265 block comment should start with ‘# ‘
E266 too many leading ‘#’ for block comment
E271 multiple spaces after keyword
E272 multiple spaces before keyword
E273 tab after keyword
E274 tab before keyword
E3 Blank line
E301 expected 1 blank line, found 0
E302 expected 2 blank lines, found 0
E303 too many blank lines (3)
E304 blank lines found after function decorator
E4 Import
E401 multiple imports on one line
E402 module level import not at top of file
E5 Line length
E501 (^) line too long (82 > 79 characters)
E502 the backslash is redundant between brackets
E7 Statement
E701 multiple statements on one line (colon)
E702 multiple statements on one line (semicolon)
E703 statement ends with a semicolon
E704 (*) multiple statements on one line (def)
E711 (^) comparison to None should be ‘if cond is None:’
E712 (^) comparison to True should be ‘if cond is True:’ or ‘if cond:’
E713 test for membership should be ‘not in’
E714 test for object identity should be ‘is not’
E721 (^) do not compare types, use ‘isinstance()’
E731 do not assign a lambda expression, use a def
E9 Runtime
E901 SyntaxError or IndentationError
E902 IOError
W1 Indentation warning
W191 indentation contains tabs
W2 Whitespace warning
W291 trailing whitespace
W292 no newline at end of file
W293 blank line contains whitespace
W3 Blank line warning
W391 blank line at end of file
W5 Line break warning
W503 line break occurred before a binary operator
W6 Deprecation warning
W601 .has_key() is deprecated, use ‘in’
W602 deprecated form of raising exception
W603 ‘<>’ is deprecated, use ‘!=’
W604 backticks are deprecated, use ‘repr()’
Last updated
Was this helpful?