🐍

【Python】条件分岐と繰り返し処理

2023/07/25に公開

はじめに

Pythonの条件分岐と繰り返し処理についてまとめました。
前回の記事(変数とデータ型)は、こちら!👇
https://zenn.dev/miya_akari/articles/8c82cee5f43c04

条件分岐

  • 条件分岐をおこなうときは、if文を使用する

if文

  • もしxxならXXをおこなう」というような条件分岐ができる
  • 条件文の中では、比較演算子を使用する
sample.py
a = 40
b = 100

if b > a:
 print('bはaより大きい') # bはaより大きい

ネストしたif文

  • if文は、入れ子にできる
  • 入れ子のことを「ネスト」ともいう(これは他の言語でも一緒)
sample.py
a = 40

if a > 10:
  print('aは10より大きく、')  # この行が実行される
if a > 20:
  print('さらに20より大きい')  # この行も実行される
else:
  print('20よりは小さい')  # この行は実行されない!

1行のif文

  • 実行する処理が1つの場合、if文と同じ行に処理を記述できる
sample.py
a = 40
b = 100

if b > a : print('bはaより大きい')  # この行が実行される

else, elif

  • elseを使用すると、「もしxxならXXをおこなう、そうでなければYYをおこなう」というような条件分岐ができる
  • elifを使用すると、「もしxxならXXをおこなう、もしyyならYYをおこなう、そうでなければZZをおこなう」というような条件分岐ができる
sample.py
a = 100
b = 40

if b > a:
  print('bはaより大きい')
elif a == b:
  print('aとbは等しい')
else:
  print('aはbより大きい')  # この行が実行される

pass

  • if文の中身を空にすることはできない
  • かわりにpassを使用する
sample.py
a = 40
b = 100

if b > a:
  pass

and

  • andを使用すると、複数の条件式を組み合わせることができる
  • すべての条件がTrueのとき、全体がTrueになる(条件1がTrueかつ条件2がTrueの場合、全体がTrueになる)
sample.py
a = 100
b = 30
c = 200

if a > b and c > a:
  print('どちらの条件もTrueです')  # この行が実行される

or

  • orを使用すると、複数の条件式を組み合わせることができる
  • 複数の条件式のうち1つでもTrueがあれば、全体がTrueとなる(条件1がTrueまたは条件2がTrueの場合、全体がTrueになる)
sample.py
a = 100
b = 30
c = 200

if a > b or a > c:
  print('少なくとも1つの条件はTrueです')  # この行が実行される

not

  • notを使用すると、条件の否定ができる
  • 条件式がTrueであればFalseに、FalseであればTrueになる(ややこしい…)
sample.py
a = 50
b = 100

if not a == b:
  print('aとbは等しくありません')  # この行が実行される

繰り返し処理

  • 繰り返し処理をおこなうときは、while文for文を使用する

while文

  • ある条件がTrueのあいだ繰り返し処理をおこなう
sample.py
i = 1
while i < 5:
  print(i)  # 1~4までが出力される
  i += 1  # この行を忘れると無限ループになるので注意!

break

  • すべての項目をループする前に、ループを停止できる
sample.py
i = 1

while i < 5:
  print(i)  # 1~3までが出力される
  if i == 3:  # もしiが3であれば、ループを終了する
    break
  i += 1

continue

  • 現在のループを抜けて次のループを実行する
sample.py
i = 0

while i < 5:
  i += 1
  if i == 3:  # iが3であれば、処理をスキップする
    continue
  print(i)  # 1, 2, 4, 5が順番に出力される(3は出力されない)

for文

  • リストや辞書の要素を順番に取り出して、繰り返し処理をおこなう
sample.py
animals = ['dog', 'cat', 'cow']

for animal in animals:
  print(animal)  # dog, cat, cowが順番に出力される

break

  • すべての項目をループする前に、ループを停止できる
sample.py
animals = ['dog', 'cat', 'cow']

for animal in animals:
  print(animal)
  if animal == 'cat':  # animalがcatであればループを終了する
    break

continue

  • 現在のループを抜けて次のループを実行する
sample.py
animals = ['dog', 'cat', 'cow']

for animal in animals:
  if animal == 'cat':
    continue
  print(animal)  # dog, cowが順番に出力される(catは出力されない)

おわりに

基本的にはJavaやJavaScriptと同じかなーと感じるのですが、セミコロンとインデントが不要なことにはまだ慣れない…!😂
次回は、関数についてまとめたいと思います〜!💪

参考

https://www.w3schools.com/python/python_conditions.asp
https://www.w3schools.com/python/python_while_loops.asp
https://www.w3schools.com/python/python_for_loops.asp

Discussion