今回はPythonの基本構造である「forループ」とそれに関連するキーワードに焦点を当てます。
コンピュータが同じ操作を何度も繰り返すための構造、それが「forループ」です。
初心者の方でも分かるように、具体的な例と一緒に解説します。
Pythonのforループの基本
forとinを組み合わせたループの構文
forループは、同じことを繰り返すためのコードの書き方です。
たとえば、1から5までの数字を表示するプログラムを考えます。次のように書けます。
for i in range(1, 6):
print(i)
このコードの意味は、変数iが1から5まで変化しながら、print(i)
が5回実行されるというものです。
range関数で繰り返しの回数を制御
上記の例で使われているrange
は関数で、数字の範囲を指定します。
具体的にはrange(開始, 終了)
と書くと、開始から終了-1までの範囲になります。
インデックス付きループのためのenumerate関数
enumerate
関数を使うと、ループの各ステップでインデックス(番号)も取得できます。
これはリストの要素とその位置を一緒に取得したい場合などに便利です。
fruits = ['apple', 'banana', 'cherry']
for index, fruit in enumerate(fruits):
print(index, fruit)
これで、0 apple、1 banana、2 cherryと表示されます。
ループ制御と例外処理
break文でループを抜ける方法
ループの中で特定の条件でループを終了したい場合、break
を使います。
for i in range(5):
if i == 3:
break
print(i)
このコードは0, 1, 2と表示され、iが3になるとループが終了します。
continue文でループの次のイテレーションへ
逆に、特定の条件でその回のループだけスキップしたい場合、continue
を使います。
for i in range(5):
if i == 3:
continue
print(i)
この場合、0, 1, 2, 4と表示され、iが3のときだけprint(i)
がスキップされます。
else文でループ後の処理を管理
ループが終了した後に何かを実行したい場合、else
を使います。
for
やwhile
の後に書いて、ループが終了した時の処理を記述できます。
for i in range(3):
print(i)
else:
print("Loop is finished")
0, 1, 2と表示した後に、”Loop is finished”と表示します。
Pythonのリストと文字列操作
リスト内の特定のindexの操作方法
リストとは、複数の値をひとまとめにしたものです。
例えば、3人の学生の点数をリストで表現すると:
scores = [90, 80, 70]
特定の学生の点数を取得するには、その位置(インデックス)を使います。インデックスは0から始まるため、最初の学生の点数はscores[0]
で取得できます。
文としての文字列操作
Pythonで文字列を扱う場合、それを文と考えることができます。
例えば、文字列の一部を取得したい場合などに使います。
text = "Hello, World!"
first_five_letters = text[:5]
print(first_five_letters) # 出力: Hello
リストから特定の要素を抜ける方法
特定の要素をリストから取り除くには、その要素の値またはインデックスを使ってremove
やpop
などの方法があります。
numbers = [5, 3, 9, 1]
numbers.remove(3)
print(numbers) # 出力: [5, 9, 1]
リストの操作と拡張
リストには様々な操作が可能です。以下はいくつかの例です。
操作 | コード例 | 説明 |
---|---|---|
要素の追加 | numbers.append(7) |
末尾に7を追加する |
要素の挿入 | numbers.insert(1, 8) |
インデックス1の位置に8を挿入 |
要素の削除 | numbers.pop(2) |
イン |
デックス2の要素を削除 |
| リストの結合 | numbers.extend([4, 5])
| リスト[4, 5]を結合する |
繰り返し処理を活用した実例
forループを使った具体的なプログラム例
forループを使って、10回のサイコロを振るプログラムを作成しましょう。
import random
for i in range(10):
dice_roll = random.randint(1, 6)
print(f"Roll {i+1}: {dice_roll}")
ここでrandom.randint(1, 6)
は、1から6の間でランダムな整数を生成します。
リストとrangeを組み合わせた応用例
forループとリストを組み合わせて、リストの全ての要素に対する操作が可能です。
たとえば、リスト内の数値を2倍にするプログラムは次のようになります。
numbers = [1, 2, 3, 4, 5]
for i in range(len(numbers)):
numbers[i] = numbers[i] * 2
print(numbers) # 出力: [2, 4, 6, 8, 10]
ループ制御を使ったエラー処理の実装
エラーが発生する可能性のある場所では、適切に処理する必要があります。
以下は、リストから要素を取り除くプログラムで、存在しない要素を取り除こうとした場合の処理です。
numbers = [10, 20, 30, 40]
for i in [10, 20, 50]:
try:
numbers.remove(i)
except ValueError:
continue
print(numbers) # 出力: [30, 40]
ここでは、50がリストにないためValueError
が発生しますが、continue
でその回のループをスキップしています。