for文のrange関数の注意点
range関数では何回反復するかを指定できるが利用する時の注意点がある。
・範囲を指定しない場合は「0」から始まる
1 2 3 |
for i in range(10): print(i, end='') |
【出力結果】
0123456789
・range関数で範囲を指定した場合はその値から始まる。
1 2 3 |
for i in range(2, 10): print(i, end='') |
【出力結果】
23456789
・範囲指定の始めと終わりが同じ場合は処理しない。
1 2 3 |
for i in range(2, 2): print(i, end='') |
【出力結果】
何も処理されないため、表示されない。
・rangeの範囲与えられた最後の値は含まない
1 2 3 |
for i in range(1,-10,-3): # 1から始まってマイナス10になるまで、マイナス3ずつ減らす print(i, end=' ') |
【出力結果】
1 -2 -5 -8
他にもスライスの範囲で色々な出力ができます。
1 2 3 4 5 6 7 8 |
words = ['one', 'two', 'three', 'four', 'five'] for i in words[1:]: print(i, end = ',') for i in words[:-2]: print(i, end = ',') |
【出力結果】
two,three,four,five,
one,two,three,
ドキュメンテーション文字列(docstring)
・1行目は常にオブジェクトの目的の簡潔な要約にする
・1行目は大文字で始まり、ピリオドで終わること
・2行目は空白行とする
関数注釈(関数アノテーション)
関数アノテーションとは、関数の引数や返り値の型を明確にするために利用するものです。
・注釈(アノテーション)は関数の「__annotations__」属性にディクショナリとして格納される
・関数の他の部分にはいかなる影響も与えない
PEP8の内容
・インデントはスペース4つとして、タブを使わない
・79文字以下で行を折り返す
・関数やクラス、そして関数内の大きめのブロックを分離するときは空白行を使う
・可能であればコメント行は独立させる
・docstringを使う
・演算子の周囲やカンマの後ろにはスペースを入れるが、カッコのすぐ内側に入れない。「a = 1 + (2 + 3)」
・クラスや関数には一貫した命名をする。クラスは、ClassUse(単語の頭文字を大文字にして繋げる)、
関数やメソッドはclass_use(小文字の単語同士をアンダースコアで繋げる)のようにする。メソッドの第一引数としては常に「self」を使う
・国際的な環境で使うコードでは、自分勝手なエンコーディングは使わない。PythonのデフォルトのUTF-8またはASCIIが良い
・非ASCII文字は使わない