Python PEP8 code specification common problems and solutions


Win11 View the installed Python path and installed libraries

Python3 (basic | advanced) syntax practice (|multi-threading|multi-process|thread pool|process pool technology)|solutions to multi-thread security issues

Python PEP8 code specification common problems and solutions

Python3 operates MySQL8.XX to create tables | CRUD basic operations

Python3 operation SQLite3 creates table primary key auto-increment | CRUD basic operation

Anaconda3 latest version installation|Usage details|Error: Please select a valid Python interpreter

Examples of integration of Python function drawing and advanced algebra (1): sine function and cosine function

Examples of integration of Python function drawing and advanced algebra (2): Flashpoint function

Example of integration of Python function drawing and advanced algebra (3): Setting X|Y axis|grid lines

Example of integration of Python function drawing and advanced algebra (4): Setting the X|Y axis reference line|reference area

Examples of integration of Python function drawing and advanced algebra (5): Comprehensive case of line graphs


1: Introduction to Python’s EP8 code specification P

Therefore, record common PEP8 code specification problems and solutions, study them, and continue to update when you encounter them, develop good habits, and write standardized code!


PEP 8: no newline at end of file
Solution: You need to start a new line at the end of the code, just move the cursor to the end and press Enter

PEP 8: indentation is not a multiple of four
Solution: Indentation is not a multiple of 4, check the indentation

PEP 8: over-indented
Solution: excessive indentation, check the indentation

PEP 8: missing whitespace after','
Solution: There is a missing space after the comma, just add a space, similar to a missing space after a semicolon or colon

PEP 8: multiple imports on one line
Solution: Do not reference multiple libraries in one import sentence. For example: import socket, urllib.error is best written as: import socket import urllib.error

PEP 8: blank line at end of line
Solution: There are too many spaces at the end of the line of code, just delete the spaces

PEP 8: at least two spaces before inline comment
Solution: There must be at least two spaces between code and comments

PEP 8: block comment should start with '#'
Solution: The comment should start with # plus a space

PEP 8: inline comment should start with '#'
Solution: The comment should start with # plus a space

PEP 8: module level import not at top of file
Solution: import is not at the top of the file, there may be other code before it

PEP 8: expected 2 blank lines, found 0
Solution: Two blank lines are needed, just add two blank lines

PEP 8: function name should be lowercase
Solution: Just change the function name to lowercase

PEP 8: missing whitespace around operator
Solution: There are missing spaces before and after operators ('=', '>', '<', etc.), just add them

PEP 8: unexpected spaces around keyword / parameter equals
Solution: Unexpected spaces appear around the keyword / parameter equals sign, just remove the spaces

PEP 8: multiple statements on one line (colon)
Solution: Multi-line statements are written on one line, for example: if x == 2: print('OK') should be written in two lines

PEP 8: line too long (82 > 79 characters)
Solution: The maximum length limit of 79 per line is exceeded

PEP 8: Simplify chained comparison
can simplify chained comparison (for example: if a >= 0 and a <= 9: can be abbreviated as: if 0 <= a <= 9:)

If you want to selectively ignore the warning messages of PEP8 coding style, you can use the following method: (Develop good habits and write standardized code! Ignoring is not recommended!)

① Move the mouse to the area where the warning message appears, press alt+Enter, and choose to ignore the error:

②Select File - Settings - Editor - Inspections, find the PEP8 coding style violation option under Python, click the plus sign in Ignore errors in the lower right corner to add the warning message ID that needs to be ignored (see the appendix below for ID information), for example Ignore the warning that identification contains mixed spaces and tabs, just add its ID: E101


Appendix: All warning messages and corresponding IDs, official address: https://pep8.readthedocs.io/en/latest/intro.html#error-codes

code    sample message
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)
E117    over-indented
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
E275    missing whitespace after 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
E305    expected 2 blank lines after end of function or class
E306    expected 1 blank line before a nested definition
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()’
E722    do not use bare except, specify exception instead
E731    do not assign a lambda expression, use a def
E741    do not use variables named ‘l’, ‘O’, or ‘I’
E742    do not define classes named ‘l’, ‘O’, or ‘I’
E743    do not define functions named ‘l’, ‘O’, or ‘I’
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 before binary operator
W504 (*)    line break after binary operator
W505 (*^)    doc line too long (82 > 79 characters)
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()’
W605    invalid escape sequence ‘x’
W606    ‘async’ and ‘await’ are reserved keywords starting with Python 3.7


 2: PEP 8: E101 indentation contains mixed spaces and tabs solution

As shown in the picture above, due to the irregular indentation, the PyCharm tool automatically recognizes that the indentation contains multiple spaces or tabs, resulting in non-compliance with  EP8 code specifications. Warning message:  PEP 8: E101 indentation contains mixed spaces and tabs

There are usually two solutions:

 2.1: The code in the underlined part is indented by one tab stop, or two tab stops:

2.2: file-->setting-->enter PEP 8 in the search box, and then remove the two check boxes pointed by the arrows in the picture below--->Confirm

Guess you like

Origin blog.csdn.net/u014635374/article/details/133345011