Pythonチュートリアル(その4)

4章 制御構造ツール
・if文  if elif(else if の短縮) else
・for文  あらゆるシーケンス(リストや文字列)のアイテムに対し、そのシーケンス内の順序で反復をかける
ex.
>>> # 文字列の長さを測る:
… words = [‘cat’, ‘window’, ‘defenestrate’]
>>> for w in words:
…         print(w, len(w))

cat 3
window 6
defenestrate 12

・range()関数
等差級数を生成する
ex. range(0, 10,3) ⇒ 0, 3, 6,9

list(range(4) ⇒ [0, 1, 2, 3]

・break文とcontinue文、ループにおけるelse節
break文:それを取り囲むもっとも内側のfor または while のループから抜ける
else文:半福可能体を使いはたしたり(for)、条件式が false になること(while) によってループが終了した場合に実行され、break 文で終了した場合は実行されない。
continue文:ループの残りを飛ばして次回の反復にいく

・pass文
何もしない
ex.  while True:
pass (ビジーウェイトでキーボード割り込み(ctrl + C)を待つ

・関数の定義
フィボナッチ数列を任意の上限まで書き出す関数は

def fib(n):
    “””nまでのフィボナッチ級数を開始する”””       #ドキュメンテーション文字列:docstring
    a, b = 0, 1
    while a < n:
        print(a, end=’ ‘)
        a, b = b, a+b
    print()
fib(2000)
  ↓
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597
関数の実行により新しいシンボル表が導入され、これは関数内のローカル変数に使われる。
より正確に言うと、関数内でのあらゆる代入は、その値がローカル変数のシンボル表(名前空間のディクショナリ)に格納される。
ちなみに変数の参照は、最初にローカルのシンボル表を、最後にビルトイン名のシンボル表を、続いてグローバルのシンボル表を、最後にビルトイン名のシンボル表を調べるようになっている。
関数内からグローバル変数や外側の変数に値を直接代入することはできない(グローバル変数については global 文でしていすることで、外側の関数については nonlocal 文でしていすることで可能)。ただし参照はできる。
・引数のデフォルト値
引数にデフォルトを設定する ⇒ 渡すように定義してある溶離も少ない戸数の引数でコールできる
・キーワード引数
「キーワード = 値」
関数をコールするときは、必ず位置引数を先に、キーワード引数を後にしなければならない。
・特殊引数
def f(pos1, pos2, / , pos_or_kwd, *, kwd1, kwd2):
            位置のみ   位置またはキーワード  キーワードのみ
 関数定義に/も*も存在しなかった場合、引数は位置引数としてもキーワード引数としても渡すことができる。
・Lambda式
無名関数  Lambda a, b:a+b        #単一の式しか持てないという構文上の制限がある

month_name = [(1, ‘January’), (2, ‘February’), (3, ‘March’)]
sorted(month_name, key = lambda y : y[1])

[(2, ‘February’), (1, ‘January’), (3, ‘March’)]
・ドキュメンテーション文字列(docstring)
1行目はいつでも常にオブジェクトの目的の短く簡潔なようやくとすべきである。
この行は大文字で始まり、ピリオドで終わること
さらに続きがある場合は、ドキュメンテーション文字列の2行目を空行とし、ようやくと他の記述を視覚的に分離すべきである。
・関数注釈(関数アノテーション)
注釈(アノテーション)は関数の __annotations__ 属性にディクショナリとして格納され、関数の他の部分にはいかなる影響おおよばさない。
・コーディングスタイル
PEP8:とても読みやすくて目に楽しいコーディングスタイルを推進するもの

参考にした書籍
タイトル:Pythontチュートリアル 第4版
著者:Cuido van Rossum
訳者:鴨澤 眞夫
発行所:株式会社 オイラリー・ジャパン

以上

 

 

 

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください