PEP-8コーディング標準
Python拡張提案:Python改善計画
Guidoの重要なポイントの1つは、コードが書き込みよりも読み取り用であるということです。コーディング標準は、Pythonコードの読みやすさを向上させることを目的としています。
スタイルガイドは一貫性を強調しています。プロジェクト、モジュール、または機能の一貫性を保つことが重要です。
いわゆるコメントは、プログラムに説明を追加することであり、プログラムの読みやすさを大幅に向上させることができます。コメントの内容は実際に実行されるプログラムではなく、補助的な説明として機能します。
1行のコメント
#で始まり、#の右側のすべてが説明として使用されます
# 私はコメントです、あなたはそれにいくつかの機能の説明を書くことができます。
print('hello world')
複数行のコメント
3つの引用符、3つの一重引用符、または3つの二重引用符を使用します
'''
私は複数行のコメントです。関数の説明を何行も書くことができます
これが私が指摘したことです
ハハハ。 。 。
'''
"""
私も複数行のコメントです、バラバラ。 。
"""
インデントのレベルごとに4つのスペースを使用します
Pythonはコードを整理するために {}
を使用せず、完全にインデントに依存しているため、インデントの形式は非常に重要です。
インデントには4つのスペースを使用し、 tab
を使用せず、 tab
とスペースを混在させないでください。
スペースを使用する場合は、常に4つのスペースを使用し、他のスペースは使用できません。そうしないと、構文が間違っています。
開発ツールの「タブ」を4スペースに変更することをお勧めします。
Sublimeは次のように設定されます。さらに、 pycharm
はデフォルトで tab
を4つのスペースに置き換えました
# 左括弧を揃える
foo =long_function_name(var_one, var_two,
var_three, var_four)
# 冒頭の括弧を揃えないでください。ただし、次のコンテンツと区別するために、インデントのレイヤーを追加してください。
def long_function_name(
var_one, var_two, var_three,
var_four):print(var_one)
# 吊り下げ式のくぼみは、くぼみの層を追加する必要があります.
foo =long_function_name(
var_one, var_two,
var_three, var_four)
注意:
括弧内に垂直の暗黙のインデントまたはハンギングインデントを使用します。後者の場合、最初の行にパラメーターを含めてはならず、後続の行をインデントする必要があることに注意してください。
Python
では、セミコロン( ;
)を厳密に使用する必要はありません。
理論的には、1行に1つのコードを配置する必要があります。コードの各行の後に、セミコロン ;
を追加することも、セミコロン ;
を追加しないこともできます。
1行に複数行のコードを配置しないようにしてください。1行に配置する場合は、セミコロンを追加してそれらを区切る必要があります。
各行は80文字を超えません(最大行幅は79文字であり、ドキュメント文字列やコメントなどの長いテキストブロックの場合、行の長さは72文字に制限する必要があります)。
以下の場合を除きます。
回線の接続にバックスラッシュを使用しないでください。テキスト文字列が1行に収まらない場合は、括弧を使用して暗黙的な行連結を実現できます。
x =('これは非常に長い非常に長い非常に長い非常に長い''非常に長い非常に長い非常に長い非常に長い非常に長い非常に長い文字列')
2つの空白行は、最上位の関数とクラスの定義を区切ります。クラスのメソッド定義は、1行の空白行で区切られます。必要に応じて、余分な空白行を使用してさまざまな機能グループを区切ることができますが、慎重に使用する必要があります。必要に応じて、関数内のさまざまなロジックブロックを区切るために余分な空白行を使用できますが、慎重に使用する必要があります。
###1.6、 ソースファイルのエンコーディング
コアPythonで公開されたコードは、常にUTF-8(Python 2ではASCII)を使用する必要があります。
# Python推奨
#- *- coding:utf-8-*-
# 簡略化された書き込み
# encoding: utf-8
Python 3(デフォルトのUTF-8)にはエンコーディング宣言を含めないでください。
import os
import sys
from subprocess import Popen, PIPE
インポートは常にファイルの先頭、モジュールのコメントとdocstringの後、モジュールのグローバル変数と定数の前にあります。
インポート順序は次のとおりです。標準ライブラリのインポート、関連するサードパーティライブラリ、ローカルライブラリ。各グループのインポートの間には空白行が必要です。
ワイルドカードのインポートは禁止されています。
名前名にどの名前が存在するかが明確でなく、読者や多くの自動化ツールを混乱させるため、ワイルドカードのインポート(import *から)は避ける必要があります。
行結合の実装に使用する場合を除いて、括弧を使用することをお勧めします。returnステートメントまたは条件ステートメントでは括弧を使用しないでください。ただし、タプルの前後に括弧を使用することは可能です。
括弧内のスペースは避けてください
# 括弧内のスペースは避けてください
# Yes
spam(ham[1],{eggs:2})
# No
spam( ham[1],{ eggs:2})
標準のタイプ設定規則に従って、句読点の両側のスペースを使用します
1.9.1、 括弧内にスペースを入れないでください。
Yes:spam(ham[1],{eggs:2},[])
No:spam( ham[1],{ eggs:2},[])
1.9.2、 カンマ、セミコロン、コロンの前にスペースを追加しないでください。ただし、それらの後にスペースを追加する必要があります(行末を除く)。
Yes:if x ==4:
print x, y
x, y = y, x
No:if x ==4:
print x , y
x , y = y , x
1.9.3、 パラメータリスト、インデックス、またはスライスの開始括弧の前にスペースを入れないでください。
Yes:spam(1)
no:spam(1)
Yes: dict['key']= list[index]
No: dict ['key']= list [index]
1.9.4、 バイナリ演算子の両側にスペースを追加します
割り当て(=)、比較(==、<、>、!=、<>、<=、> =、in、not in、is、is not)、ブール(and、or、not)など。算術演算についてキャラクターの両側のスペースの使い方はあなた自身の判断が必要ですが、両側は一貫している必要があります。
Yes: x ==1
No: x<1
ただし、「=」を使用してキーワードパラメータまたはデフォルトのパラメータ値を示す場合は、両側にスペースを使用しないでください。
Yes: def complex(real, imag=0.0):returnmagic(r=real, i=imag)
No: def complex(real, imag =0.0):returnmagic(r = real, i = imag)
複数の行の間でマークを垂直方向に揃えるためにスペースを使用しないでください。これはメンテナンスの負担になります(:、#、=などに適用されます)。
Yes:
foo =1000 #コメント
long_name =2 #メモを揃える必要はありません
dictionary ={"foo":1,"long_name":2,}
No:
foo =1000 #コメント
long_name =2 #メモを揃える必要はありません
dictionary ={"foo":1,"long_name":2,}
**複合ステートメントを使用することは強くお勧めしません(複合ステートメント:同じ行に複数のステートメントを記述します)。 ****
if foo =='blah':print(100)
識別子は、プログラムで変数、定数、クラス、メソッド、およびパラメーターに名前を付けるときに使用される文字シーケンスです。
キーワードはPythonで予約されており、特別な意味があります。
Pythonキーワード:
and as assert breakclasscontinue def del elif else except
exec finallyforfrom global ifinimport is lambda not or pass
print raise returntrywhilewithyield
命名規則は次のとおりです。
コーディングの習慣:
入力と出力は、簡単に言えば、標準の入力からデータを取得し、データを標準の出力に出力することです。これは、インタラクティブな環境でよく使用されます。Pythonでは、input()を使用して標準のデータを入力します。
形式:input()
機能:標準の入力データを受け入れ、
戻り値:文字列タイプを返します。 ctrl + z終了入力
任意の文字入力を待っています
input('ユーザー名を入力してください:\n')
複数のデータ入力を受け入れ、eval()関数を使用します。スペーサーはコンマである必要があります
a,b,c=eval(input())
パブリックアカウント** "FunTester" **、興味深いテスト開発、記事は学習と洞察を記録し、注意を払い、一緒に成長することを歓迎します。
Recommended Posts