夏休みの経験を分かち合う--pythonの基礎
12544 ワード
夏休みの経験を分かち合う前に書いてあると pythonコードの書き込み仕様 符号化 空行 スペース 注釈仕様 ネーミング仕様 関数先頭 前に書いてあると
时间は飞び去って、あっという间に2年はすでに过ぎて、今も忙しくて论文を书いて仕事を探す时間になって、よく前の2年の少しを思い出して、各种のpushの下でいくつかの小さいプロジェクトをした以外に、その他は本当に少しもものがなくて、本当に耻ずかしいです.このように長い間python言語の使用はやはりいくつかのものを蓄積して、以下は自分のいくつかの愚見を記録して、読者に少し助けを与えることができることを望みます.
pythonコードの書き込み仕様
コードを書くときは必ず規範を守る良い習慣を身につけなければならない.1行のコードを書くたびに、相応の規範を守ることを保証しなければならない.そうすれば、少なくとも後で自分でその年の大作を見るときは理解できるようになる.
エンコーディング
特段の事情はなく、一般的にUTF-8符号化が用いられる.ファイルヘッダに#coding:utf-8を付けます.
空行
2つの関数モジュールの間には、通常2行の空白が必要です.クラス内の関数の間には1行の空白が必要です.
関数では、空の行を使用して、異なる論理ブロックを分割することもできます.
スペース
二元演算子の両側に空の格子[=,-,+=,=,>,in,is not,and,......]:
関数のパラメータリストでは、デフォルトの等号の両側にスペースを追加しないでください.
カンマとコロンは後にスペースを残すだけで、辞書の定義の過程で最も明らかです.
アノテーション仕様
行注釈、#の先頭を使用し、後にスペースを追加します.注釈に意味がある場合は、簡単なコードではなく、考え方の解釈です.
関数の注記:3つの二重引用符の先頭と3つの二重引用符の末尾を使用して、関数の役割、入力パラメータ、および返されるパラメータを説明します.
ネーミング仕様
クラス名は一般的にキャメルCase(CamelCase)命名規則を採用し、各単語の頭文字は大文字である.
関数名と変数名はすべて小文字で、異なるアルファベットの間に下線を使用します.分割:
定数はすべて大文字で、アルファベット間は下線で区切られています.
関数の先頭
直接実行できるスクリプトを書く場合は、次のようにスクリプトに仕様の先頭を付けます.
时间は飞び去って、あっという间に2年はすでに过ぎて、今も忙しくて论文を书いて仕事を探す时間になって、よく前の2年の少しを思い出して、各种のpushの下でいくつかの小さいプロジェクトをした以外に、その他は本当に少しもものがなくて、本当に耻ずかしいです.このように長い間python言語の使用はやはりいくつかのものを蓄積して、以下は自分のいくつかの愚見を記録して、読者に少し助けを与えることができることを望みます.
pythonコードの書き込み仕様
コードを書くときは必ず規範を守る良い習慣を身につけなければならない.1行のコードを書くたびに、相応の規範を守ることを保証しなければならない.そうすれば、少なくとも後で自分でその年の大作を見るときは理解できるようになる.
エンコーディング
特段の事情はなく、一般的にUTF-8符号化が用いられる.ファイルヘッダに#coding:utf-8を付けます.
# coding: utf-8
空行
2つの関数モジュールの間には、通常2行の空白が必要です.クラス内の関数の間には1行の空白が必要です.
class MainFunc():
def __init__(self, name):
self.name = name
def play_game(self):
pass
def main_func():
pass
def hello_world():
pass
関数では、空の行を使用して、異なる論理ブロックを分割することもできます.
def yolo_body(inputs, num_anchors, num_classes):
"""Create YOLO_V3 model CNN body in Keras."""
darknet = Model(inputs, darknet_body(inputs))
x, y1 = make_last_layers(darknet.output, 512, num_anchors * (num_classes + 5))
x = compose(
DarknetConv2D_BN_Leaky(256, (1, 1)),
UpSampling2D(2))(x)
x = Concatenate()([x, darknet.layers[152].output])
x, y2 = make_last_layers(x, 256, num_anchors * (num_classes + 5))
x = compose(
DarknetConv2D_BN_Leaky(128, (1, 1)),
UpSampling2D(2))(x)
x = Concatenate()([x, darknet.layers[92].output])
x, y3 = make_last_layers(x, 128, num_anchors * (num_classes + 5))
return Model(inputs, [y1, y2, y3])
スペース
二元演算子の両側に空の格子[=,-,+=,=,>,in,is not,and,......]:
a = b + c
batch_size = img_nums // batch_nums
関数のパラメータリストでは、デフォルトの等号の両側にスペースを追加しないでください.
def train(batch_size=128, epoch=50, log_dir='./logs'):
pass
カンマとコロンは後にスペースを残すだけで、辞書の定義の過程で最も明らかです.
demo_dict = {'1': '1', '2': '2', '3': '3'}
アノテーション仕様
行注釈、#の先頭を使用し、後にスペースを追加します.注釈に意味がある場合は、簡単なコードではなく、考え方の解釈です.
# 8
img *= 255.
関数の注記:3つの二重引用符の先頭と3つの二重引用符の末尾を使用して、関数の役割、入力パラメータ、および返されるパラメータを説明します.
def reverse_list(nums):
""" :pram nums: list :returns: list, list """
new_nums = nums[::-1]
return new_nums, len(nums)
ネーミング仕様
クラス名は一般的にキャメルCase(CamelCase)命名規則を採用し、各単語の頭文字は大文字である.
class MainFunc():
pass
class HelloWorld():
pass
関数名と変数名はすべて小文字で、異なるアルファベットの間に下線を使用します.分割:
def hello_world():
demo_dict = {'1': '2'}
demo_list = []
定数はすべて大文字で、アルファベット間は下線で区切られています.
BATCH_SIZE = 128
EPOCH = 50
関数の先頭
直接実行できるスクリプトを書く場合は、次のようにスクリプトに仕様の先頭を付けます.
# coding: utf-8
def demo():
print('hello world')
if __name__ == '__main__':
demo()