📝 Python学習記録 #3|条件分岐の実践&繰り返し処理(if・while・for文)

プログラミング講座の記録

今日は「条件分岐(if文)」の応用と、「繰り返し処理(while文・for文)」、さらにリスト・range関数の扱いについて学びました。


✅ 今日の主な内容

  • 条件分岐の復習 _ if elif else
  • list型とrange()関数 _ 反復可能オブジェクト
  • while文、for文 _ 繰返し(ループ)の処理
  • ループを強制的に抜ける _ break continue

Python講座3日目

🔸 条件分岐の復習

📌 例題:気温と天気から服装を選ぶプログラム

# python
max_temperature = 25 #事前に条件を指定
is_raining = False #事前に条件を指定

if max_temperature <= 14:
print("ジャケットとセーター")
elif 15 <= max_temperature <= 24:
print("長袖シャツとジーンズ")
else:
print("Tシャツと短パン")

if is_raining:
print("傘を持っていきましょう")

ポイント

  • if・elif・elseを上から順にみていき、条件式がTrueになった場合、ブロックの処理を行う。それ以降は、判定が実行されない。
  • max_temperatuireのif文と、is_rainingのif文が別で動いている。
  • if・elif・elseのブロックの処理で、今回は各ブロックにprint()関数を入れているが、各ブロックで例えばclothingなどの変数に文字列を定義するようにして、最後にまとめてprint()関数で出力内容をまとめるなどした方が、コードの可読性は上がるようにも思う。

🔸 while文(条件に応じて、処理を繰り返す)

# python

i = 0 #①
while i < 5: #②
print("カウント:", i) #③
i += 1 #④

'''出力内容は以下の通り
カウント: 0
カウント: 1
カウント: 2
カウント: 3
カウント: 4
'''

書き方は

while 条件式 :
(インデント)処理内容
      処理内容

上から順に読んでいくと、

  • ①変数 i に0を定義する。未定義だと、whileの条件式で判定ができない。変数に「0」や「’’」を定義することを初期化ともいう。
  • while 条件式: と記載する。 今回は「 i が5より少ない場合、繰り返す」と読める
  • ③while文のブロックの処理1 「カウント:」と変数iの内容をprintする
  • ④while文のブロックの処理2 変数iに1を足す この部分をカウンターと呼ぶ
  • その後、再びwhileの条件式の判定に戻る

ポイント

  • 初期化は重要! → 数値は i = 0、文字列は s = '' など。このwhile文を記載するセル以外で、iを定義していることもあるため、初期化を必ず行う。
  • 条件には ==, !=, <, >= など比較演算子や and, or など論理演算子も使える。

🔸 リスト(複数データの格納)

このあと出てくるfor文では、「反復可能オブジェクト」を構文内に組み込むことになる。その「反復可能オブジェクト」が、このlist型や次のrange関数となる。

#python
fruits = ['りんご', 'みかん', 'ぶどう'] #一つの変数の中に、複数の要素を代入している
print(fruits[0]) # → 'りんご'
  • []でリストの要素を指定することをインデックスという リストの最初の要素は[0]となるため注意 ※1がスタートではないことに注意
  • list.append(値) → リストの末尾に要素を追加
  • list.insert(インデックスの番号, 値) → 指定位置に値を追加 格納ずみの値は末尾側にずれる
  • list.clear() → 全要素削除
  • del list[index] → 指定要素削除
  • リスト内リストも可能 → list = [ 1 ,2 ,[ 3 ,4 ]] などindexする場合はlist[2][0]とすると3が帰ってくる

🔸 range関数と繰り返し

#python
for i in range(1, 6):
print(i)


'''以下が出力される
1
2
3
4
5
'''
  • range(start, stop, step) → 指定範囲の整数を生成(stopは含まない)
    • range(3)と書ける この場合stopに3が指定されていると認識され 0・1・2 が帰ってくる
    • 正確に書くなら range(0,3)となり「0から始まり、3つ目の整数までを羅列する→(0、1、2)」となる
    • stepは整数を何個飛ばしで羅列するかを指定できる 無指定だとstep→0
  • list型に変換も可能:list(range(1, 6)) → [ 1, 2, 3, 4, 5 ]が格納される

🔸 for文(構文内の反復可能オブジェクトの最後の要素まで自動で繰り返す)

#python
priority = ['中野', '新宿', '立川'] #変数「priority」に、反復可能オブジェクト(list型)を定義
for station in priority: #for構文 変数「station」にpriorityの要素を[0]から順に代入して

             #要素ごとに、ブロックの処理を実行する
print(station) #ブロックの処理 変数「station」をprint()する

'''以下の内容を出力する
中野
新宿
立川
'''
  • for 変数 in リスト: → 各要素を順に処理
  • 要素数が増えても自動的に全て処理できるのがメリット

🔸 break / continue

🔹 break → 繰り返しを途中で終了

#python

total = 0
for i in range(10):
total += i
if total > 20:
break
print(i, total) # → 6, 21

for文のブロック処理の中で、iが増えていくが、ブロック内のif文でiが20より多ければbreakでforの繰り返しを抜け、iとtotalを出力する

🔹 continue → 条件に応じてスキップ

#python

total = 0
for i in range(10):
total += i
if total > 20:
continue

#continueを使う場合、continue以降のブロックの処理をスキップする。
#今回は書いていないため、あまり意味がない
print(i, total) # → 9, 45

continue以降のブロックの処理をスキップするが、forの繰り返し自体は継続して実行されているため、iとtotalはrange(10)まで加算されている


🔸 実践演習:好きな果物を入力して出力

#python

fruits = [] #listの初期化
for i in range(5): #for文でrangeを指定することで、繰返しの回数を指定
fruit = input(f"{i+1}つ目の果物を入力してください: ") #変数fruitにユーザー入力を定義
fruits.append(fruit) #変数fruitに定義した内容を、リストfruitsに格納

for fruit in fruits:
print(fruit + "は美味しいです。")
  • input()でユーザー入力を受け取って、append()でリストに追加。
  • for文で、fruitsリスト内の要素を全て出力。

🔹 応用:終了という入力で終了する

#python

fruits = [] #リストの初期化
fruit_name = ""
#変数の初期化

while fruit_name != "終了": #fruit_nameが「終了」でなければTrueなので、ループする
fruit_name = input("果物を入力してください: ") #ユーザーの入力を受け取る
if fruit_name != "終了": #入力が終了でなければ下の処理を行う
fruits.append(fruit_name) #入力をリストfruitsに格納

for fruit in fruits:
print(fruit + "は美味しいです。")

🧠 所感・学びメモ

  • if文・while文・for文、どれも初期化と条件の使い方がキモ
  • 条件を間違えると、無限ループが発生してしまう。
  • print()を1か所にまとめると、コード全体が見通しやすい。
  • ループから抜ける条件をつけるなら、とりあえずbreakを使っておくと簡単だが、場合によっては、while文の条件できちんと指定しておくほうが、可読性が高まることもある。
  • 「リスト+繰り返し」は情報処理の基本形として超重要っぽい。

🔜 次回やる予定の内容

  • whileの複合条件
  • 様々なモジュールの利用
  • エラーの対処

コメント

タイトルとURLをコピーしました