代入文 (=)空行・行継続・複数文インデント 代入文 (=)メモ代入文 複数の代入先の指定が可能 (tuple【タプル型】のパック・アンパック 参照) 変数の入れ替え可能 (例参照) リスト・タプル等を個々に分解して代入可能 (例参照) 辞書型を個々に分解して代入可能 (例参照) 式中の代入は不可 ( == と = の記述ミスを除去) 関連 Python 言語リファレンス代入文 (assignment statement) デザインと歴史 FAQ式中で代入ができないのはなぜですか? PEP Index (英語)PEP 448 -- Additional Unpacking Generalizations 構文 代入先 (複数:カンマ区切り)[,] = 代入元 (複数:カンマ区切り) 代入先下記が対象 変数 (変数 (複数:カンマ区切り)[,]) [変数 (複数:カンマ区切り)[,]] 変数.属性 変数[添字 (複数:カンマ区切り)[,]] 変数[範囲] 範囲(0オリジン) [開始位置 (省略:0)]:[終了位置+1 (省略:最終位置+1)][:[増分幅 (省略:1)]] *変数 (1個のみ指定可能・前後の代入先に代入後に残りをリストとして代入) 代入元下記が対象 値 *リスト・タプル等 (個々に分解) 3.5 **辞書型 (個々に分解・辞書型への設定が必要) 3.5 yield 戻り値 (複数:カンマ区切り)[,] (参照:yield【ジェネレータ関数・一時停止】) yield from サブジェネレータ 3.3 (参照:yield【ジェネレータ関数・一時停止】) 例 a = 1 print(a) a1, b1, c1 = 123, 456, 789 print(a1, b1, c1) (a2, b2, c2) = 234, 567, 890 print(a2, b2, c2) [a3, b3, c3] = 345, 678, 901 print(a3, b3, c3) 【出力例】 1 123 456 789 234 567 890 345 678 901 class A4Class(): pass A4Class.prop1 = "PROP1" a4 = A4Class() a4.prop2 = "PROP2" print(A4Class.prop1, a4.prop2) 【出力例】 PROP1 PROP2 a51 = [0, 1, 2, 3] print(a51) a51[1] = 11 a51[-1] = -33 print(a51) a52 = {"A":111, "B":222, "C":333} print(a52) a52["B"] = 2 print(a52) 【出力例】 [0, 1, 2, 3] [0, 11, 2, -33] {'A': 111, 'B': 222, 'C': 333} {'A': 111, 'B': 2, 'C': 333} a61 = [0, 1, 2, 3, 4, 5, 6] print(a61) a61[1:3] = 100, 200 print(a61) a62 = [0, 1, 2, 3, 4, 5, 6] print(a62) a62[1:4:2] = 100, 300 print(a62) 【出力例】 [0, 1, 2, 3, 4, 5, 6] [0, 100, 200, 3, 4, 5, 6] [0, 1, 2, 3, 4, 5, 6] [0, 100, 2, 300, 4, 5, 6] a, b, *c, d, e = [1, 2, 3, 4, 5, 6, 7] print(a, b, c, d, e) 【出力例】 1 2 [3, 4, 5] 6 7 x = 10 y = 20 print(x, y) x, y = y, x print(x, y) 【出力例】 10 20 20 10 a, b, c, d =1, [2, 3], (4, 5), {"x":6, "y":7} print(a, b, c, d) a, b1, b2, c1, c2, d =1, *[2, 3], *(4, 5), {**{"x":6, "y":7}, "z":8} print(a, b1, b2, c1, c2, d) 【出力例】 1 [2, 3] (4, 5) {'x': 6, 'y': 7} 1 2 3 4 5 {'x': 6, 'y': 7, 'z': 8} 空行・行継続・複数文メモ空行 スペース・タブ・フォームフィード(改行)・コメントのみの空行は無視 行継続 明示的な行継続:行末のバックスラッシュ (\) で行継続が可能 (文字列内・コメント内のバックスラッシュは無効) 非明示的な行継続: 各種カッコ ( () [] {} ) 内の式は、複数行に分割可能 複数文 1行で記述可能な単純文は、セミコロン (;) で区切って継続することが可能 セミコロン (;) は、コロン (:) より優先 関連 Python 言語リファレンス空行明示的な行継続非明示的な行継続単純文 (simple statement)複合文 (compound statement) 例 # 空行 # 明示的な行継続 s = \ "文字列" # 非明示的な行継続 list = [ "One", "Two", "Three" ] # 複数文 x = 10; y = 20; z = 30; インデントメモインデントは、行頭の空白 (スペース・タブ) 実行文のグループ化で使用 (各行は同じ量のインデントが必要) 1レベルインデントは4個のスペースを推奨 (PEP8:Code Lay-out - Indentation) 関連 Python 言語リファレンスインデント 例 x = 10 y = 20 print("x =", x, "y =", y) if x == y: print("if") print("x == y") elif x > y: print("elif") print("x > y") else: print("else") print("x < y") if x == y: print("if") print("x == y") elif x > y: print("elif") print("x > y") else: print("else") print("x < y")