代入文 (=)
空行・行継続・複数文
インデント
代入文 (=)
メモ
- 代入文
- 複数の代入先の指定が可能 (tuple【タプル型】のパック・アンパック 参照)
- 変数の入れ替え可能 (例参照)
- リスト・タプル等を個々に分解して代入可能 (例参照)
- 辞書型を個々に分解して代入可能 (例参照)
- 式中の代入は不可 ( == と = の記述ミスを除去)
- 関連
構文
代入先 (複数:カンマ区切り)[,] = 代入元 (複数:カンマ区切り)
代入先下記が対象
変数
(変数 (複数:カンマ区切り)[,])
[変数 (複数:カンマ区切り)[,]]
変数.属性
変数[添字 (複数:カンマ区切り)[,]]
変数[範囲]
範囲(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行で記述可能な単純文は、セミコロン (
;
) で区切って継続することが可能 - セミコロン (
;
) は、コロン (:
) より優先
- 1行で記述可能な単純文は、セミコロン (
- 関連
例
# 空行
# 明示的な行継続
s = \
"文字列"
# 非明示的な行継続
list = [
"One",
"Two",
"Three"
]
# 複数文
x = 10; y = 20; z = 30;
インデント
メモ
- インデントは、行頭の空白 (スペース・タブ)
- 実行文のグループ化で使用 (各行は同じ量のインデントが必要)
- 1レベルインデントは4個のスペースを推奨 (PEP8:Code Lay-out - Indentation)
- 関連
例
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")