動画で学習内容の重要ポイントをチェックしたら、記事を読み、問題を解いて理解を深めましょう。
「Python」プログラミングでは、次の概念を使用してコードのフローを制御できます:
- 条件文 (conditional statement):
if
,elif
, andelse
- ループ (Loops): Using
while
orfor
with keywords such asbreak
andcontinue
条件文を使用すると、特定の条件に基づいて特定のコードブロック(一連のコード)を実行できます。ループを使用すると、コードのブロックを複数回繰り返すことができます。break
キーワードは途中でループを終了するために使用されます。一方で、continue
はループ内の残りのコードをスキップして次のループを開始することができます。これらのツールを理解し、マスターすることで、よりダイナミックで効率的な「Python」コードを作成することができます。
1 条件文
条件文は、条件に基づいてさまざまなアクションを実行するために使用されます。「Python」language には主に3つのタイプの条件文が存在します: if
、 elif
、 and else
。
1.1 if
文 (if
statement)
if
ステートメントは、ある条件が満たされているかどうかを確認するために使用されます。もしその条件がTrue
であれば、if
ブロック内のコードが実行されます。もしその条件がFalse
であれば、if
ブロック内にあるコードはスキップされ、実行されません。
# Example of if statement
x = 10
if x > 5:
print("x is greater than 5")
x is greater than 5
2 elif
文 (elif
statement)
elif
文は は「else if」の略であり、if
文の後に使用されます。if
文の条件がFalse
であれば、elif
文の条件がチェックされます。その条件が True
であれば、 elif
ブロック内のコードが実行されます。
# Example of elif statement
y = 0
if y < 0:
print("y is negative")
elif y == 0:
print("y is zero")
y is zero
3 else
文 (else
statement)
else
文は、if
文の条件とelif
文の条件のどれもがTrue
ではない場合、対応するコードのブロックを実行します。
上記のelif
文の例では、y
が正である場合を扱うことができません。そのため、else
文を追加します。
# Example of else statement
y = 3
if y < 0:
print("y is negative")
elif y == 0:
print("y is zero")
else:
print("y is positive")
y is positive
y
の値は正ですので、else
文の中にあるブロックが実行されます。
複数の elif
文を追加することもできます。
# Get the percentage from the user
percentage = 72
# Determine the grade based on the percentage
if percentage >= 90:
grade = "A"
elif percentage >= 80:
grade = "B"
elif percentage >= 70:
grade = "C"
elif percentage >= 60:
grade = "D"
else:
grade = "F"
# Output the grade to the user
print(f"Your grade is: {grade}")
Your grade is: C
4 ループ
ループは、特定の条件が満たされるまでコードのブロックを繰り返し実行するために使用されます。「Python」言語には主に2つのタイプのループがあります: for
ループとwhile
ループです。
4.1 for
ループ (for
loops)
配列 (sequence) (たとえば、リスト、タプル、文字列)に対してをループを行うために for
ループを使用できます。
NOTE
実際のところ、一般に イテラブル (iterable) と呼ばれる配列以外のオブジェクトに対してもルーを行うことができます。しかしながら、今のところ気にする必要はありません。
for
ループは配列の中のアイテムが残らなくなるまで、各アイテムに対してコードのブロックを実行します。
# Example of for loop
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)
apple
banana
cherry
このコードを説明してみます。
fruits = ["apple", "banana", "cherry"]
: この行では、fruits
というリストを初期化しています。このリストは"apple"
、 "banana"
、 そして "cherry"
という3つの文字列を格納しています。
for fruits in fruits:
: この行は、fruits
リストの各アイテムに対して反復を行うfor
ループ導入しています。それぞれの反復において、各アイテムは変数 fruit
に割り当てられます。
print(fruit)
: ループの中では、この行がfruit
の値を出力します。最初のループでは、fruit
には"apple"
が割り当てられ、次のループでは"banana"
が、そして最後のループでは"cherry"
が割り当てられます。
ループが fruits
リストのすべてのアイテムに対して反復を終了すると、ループは終了します。
したがってこのコードを実行すると、fruits
リスト内の各フルーツが1行ずつ出力されます。
ループ内の各アイテムのインデックスを取得したい場合は、enumerate()
が便利です。
fruits = ["apple", "banana", "cherry"]
for i, fruit in enumerate(fruits):
print(f"Fruit index {i}: {fruit}")
Fruit index 0: apple
Fruit index 1: banana
Fruit index 2: cherry
enumerate()
関数は、fruits
リストをループする for
loop とともに使用されます。この関数を使って、fruits
リストの各要素のインデックスを参照していくことができます。ループにおける繰り返しの最中に、enumerate(fruits)
は、リスト中の各アイテムのインデックスとその値を返します。
インデックスに基づいたループを実行したい場合は、range()
function: を使用できます:
for i in range(0, 10):
print(i)
0
1
2
3
4
5
6
7
8
9
最初の行 for i in range(0、 10):
からfor
ループが始まります。range(0, 10)
は、0
から10
までの数列を生成します (ただし 10
は含みません)。したがって、0
、 1
、 2
、 3
、 4
、 5
、 6
、 7
、 8
、 そして 9
の各数字にわたって、ループが行われます。各反復中に、ループは現在のインデックスを変数 i
に割り当てます。
次に、print(i)
はi
の値をコンソールに出力します。最初の反復において、i
は0
となります。その後はi
は1
、 2
、 3
、 …、 9
と値を取ります。
辞書のアイテムを反復処理することもできます。
stocks = {"apple": 5, "banana": 3, "orange":8}
for fruit, num in stocks.items():
print(f"{fruit}: {num}")
apple: 5
banana: 3
orange: 8
このfor
ループはitems()
メソッドを使い、stocks
辞書のアイテム全体にわたってループを行います。items()
メソッドは辞書のキーと値のペアを返します。ループは辞書から受け取ったキーと値のペアを分解して、fruit
とnum
に渡します。fruit
は果物の名前(キー)を、そしてnum
はその量 (値)を保存します。
4.2 while
ループ (while
loops)
while
ループは
while
ループは、指定された条件がTrue
である限り、コードブロックを実行するために使用されます。条件がFalse
になるまで、ループ内のコードは繰り返されます。
# Example of while loop
count = 0
while count < 5:
print(f"Count is: {count}")
count += 1
Count is: 0
Count is: 1
Count is: 2
Count is: 3
Count is: 4
こちらのコードを細かく見てみましょう:
count = 0
: この行は、変数count
を値0
で初期化します。この変数は、while
ループ内で現在のカウントを追跡するために使用されます。
while count < 5:
: while
文は、その後に指定された条件がTrue
である限り継続して実行されるループの一種です。この場合ループは、count
の値が5
未満である限り継続されます。
print(f"Count is: {count}")
: while
ループ内では、この行がf文字列を使用して、変数count
の現在の値を出力します。
count += 1
: この行はループの各繰り返しにおいて、変数count
の値を 1
増加させます。この変数をループ内で更新することは重要です。これにより、ループ条件(count < 5
) が最終的に False
になり、ループから抜け出します。
count
の値が 5
に達すると、count < 5
の条件が False
となり、 ループから抜けてプログラム実行が終了します。
TIPS:
for
ループ? それともwhile
ループ?
for
ループとwhile
ループのどちらを選択するか、疑問に思うかもしれません。私たちはしばしばリストのような配列データを扱います。その場合各アイテムに簡単にアクセスできるという理由で、for
ループを使用することができます。事前に反復回数がわからない場合や特定の条件が満たされるまで繰り返す必要がある場合は、while
ループを使用します。要するに、まず
for
ループを選択し、使用できない場合はwhile
ループを選択してください。
4.3 break
文と continue
文
break
文を使用して、特定の条件が満たされたときにループを停止することができます。
# Using break to exit loop early
fruits = ["apple", "banana", "cherry", "", "elderberry"]
for fruit in fruits:
if fruit == "":
print("Empty data found!")
break
print(fruit)
apple
banana
cherry
Empty data found!
この例では、ループはfruits
リストを反復処理し、各フルーツを出力します。もしループが空のデータ ""
に遭遇した場合、break
文が実行されてループが終了します。
ループ内で現在の反復をスキップし、残りのコードを実行せずに次の反復に進みたい場合は、continue
文が利用できます。
# Using continue to skip specific iteration
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for num in numbers:
if num % 2 == 0: # Skip even numbers
continue
print(num)
1
3
5
7
9
この例では、ループはnumbers
リストを繰り返し処理し、continue
文を使用して偶数の場合は出力をスキップします。if
文の条件がTrue
の場合、continue
が実行され、残りのコードを実行せずに次の繰り返し処理に進みます。
TIPS
break
文は、現在のループを抜け出し、完全にループを終了するために使用されます。continue
文は、現在の繰り返し処理をスキップし、ループ内の残りのコードを実行せずに次の繰り返し処理に進むために使用されます。
5 Exercises