Pythonの基本的な制御構文(if, while, for, 例外処理)について紹介します。他の言語との違い(ブロックをインデントで表す記法など)を意識して確認してみてください。
目次
if
利用例
def sample_print(x):
if x > 10:
print('aaa')
elif x == 10:
print('bbb')
else:
print('ccc')
sample_print(11) # aaa
sample_print(10) # bbb
sample_print(9) # ccc
if 1 in [1, 2, 3]:
print('含みます')
if 4 not in [1, 2, 3]:
print('含みません')
真偽値判定
以下 false
と判定します。
false
None
0
0.0
- 空文字列
""
- 空のコンテナ(リスト、タプル、辞書など)
[]
()
{}
print(bool(None)) # False
print(bool(0)) # False
print(bool(0.0)) # False
print(bool("")) # False
print(bool([])) # False
print(bool(())) # False
print(bool({})) # False
print(bool(1)) # True
print(bool(1.0)) # True
print(bool("a")) # True
print(bool([1])) # True
print(bool((1,))) # True
print(bool({"a": 1})) # True
while
利用例
count = 10
while True:
count -= 1
# 2で割り切れる場合、スキップ
if count % 2 == 0:
continue
# 0より小さい場合、繰り返しを中断
if count < 0:
break
print(count)
9
7
5
3
1
for
利用例
# リストの場合
my_list = [1, 2, 3]
for value in my_list:
print(value)
print("--------------------")
# 辞書の場合
my_dict = {"国語": 90, "数学": 74, "英語": 80}
for k, v in my_dict.items():
print(k, v)
1
2
3
--------------------
国語 90
数学 74
英語 80
利用例
( range関数でリスト生成 )
range関数
を利用して、1から10まで2ステップで表示してみます。
for i in range(1, 10, 2):
print(i)
1
3
5
7
9
利用例
( enumerate関数でループ回数も表示 )
enumerate関数
を利用すると、要素
と ループ回数
を同時取得できます。
my_list = ["apple", "orange", "banana"]
# 0始まり
for i, name in enumerate(my_list):
print(i, name)
# 任意の整数値から始めることもできる
for i, name in enumerate(my_list, 10):
print(i, name)
0 apple
1 orange
2 banana
10 apple
11 orange
12 banana
利用例
( zip関数で複数リストをまとめて取得 )
zip関数
を利用すると、複数リストをまとめて取得することができます。
subjects = ['国語', '数学', '英語']
scores = [90, 78, 88]
for subject, score in zip(subjects, scores):
print(subject, score)
国語 90
数学 78
英語 88
例外処理
try
に、例外発生の可能性がある処理を記述します。except
に、該当例外と該当例外が発生したときに実行する処理を記述します。finally
に、try文を抜けるときに実行する処理を記述します。
try:
a = 10 / 0
except ZeroDivisionError as e:
print("[EXCEPT] ZeroDivisionError")
print(e)
except ValueError as e:
print("[EXCEPT] ValueError")
print(e)
except:
print("[EXCEPT] 何らかのエラーが発生")
finally:
print("例外の有無に関係なく、必ず最後に実行")
[EXCEPT] ZeroDivisionError
division by zero
例外の有無に関係なく、必ず最後に実行