はじめに
この実験では、Python の for
ループ文と range()
関数の使い方を学びます。for
ループ文を使うと、リストや文字列などの要素のシーケンスを反復処理できます。range()
関数は、デフォルトで 0 から始まり、デフォルトで 1 ずつ増加し、指定された数で終わる数値のシーケンスを返す組み込み関数です。
到達目標
for
ループ文range()
関数enumerate()
関数zip()
関数
この実験では、Python の for
ループ文と range()
関数の使い方を学びます。for
ループ文を使うと、リストや文字列などの要素のシーケンスを反復処理できます。range()
関数は、デフォルトで 0 から始まり、デフォルトで 1 ずつ増加し、指定された数で終わる数値のシーケンスを返す組み込み関数です。
for
ループ文range()
関数enumerate()
関数zip()
関数for
ループは、要素のシーケンスを反復処理できる制御フロー文です。for ループの構文は以下の通りです。
for variable in sequence:
statements
ここで、sequence
は要素のシーケンス(リスト、タプル、文字列など)であり、variable
はシーケンスの各値を 1 つずつ受け取る 変数
です。ループ内の statements
は、シーケンスの各値に対して実行されます。
新しい Python インタプリタを開きます。
python3
整数のリストを反復処理して各値を表示する簡単な for ループの例を以下に示します。
numbers = [1, 2, 3, 4, 5]
for number in numbers:
print(number)
文字列の反復処理:
for char in 'Hello':
print(char)
range()
関数は、Python の組み込み関数で、数値のシーケンスを返します。range()
関数の構文は以下の通りです。
range(start, stop, step)
ここで、start
はシーケンスの開始数値(デフォルトは 0)、stop
はシーケンスの終了数値(含まれません)、step
はシーケンスの各数値間の増分(デフォルトは 1)です。
range()
関数を for ループで使って、数値のシーケンスを反復処理できます。たとえば:
for i in range(5):
print(i)
また、range()
関数に start
と stop
の値を指定することもできます。
for i in range(2, 5):
print(i)
さらに、ステップ値を指定することもできます。
for i in range(2, 10, 2):
print(i)
ネストされたシーケンスを反復処理するために、複数の for
ループを使うこともできます。たとえば:
for i in range(1, 3):
for j in range(1, 4):
print(f'i: {i}, j: {j}')
これで、あなたの番です。for ループ文と range()
関数を使ってみましょう。以下のパターンを表示するプログラムを書いてください。
*
**
***
****
*****
ヒント:
あなたのプログラムは 2 つの for ループを使う必要があり、1 つがもう 1 つの中にネストされています。外側のループは行数に対して反復処理し、内側のループは列数に対して反復処理します。
この演習を完了するには、print()
関数を使ってアスタリスクを表示する必要があります。ループの反復回数を制御するために range()
関数を使うことができます。
enumerate
関数は、リストなどの反復可能オブジェクトを入力として受け取り、各要素の インデックス
と 値
を含むタプルを生成するイテレータを返します。以下の例では、アンパッキング演算子 (index
, fruit
) を使って、各タプルのインデックスと値をそれぞれ index
と fruit
という変数に割り当てています。
## Python の for ループで enumerate 関数を使う例
## 反復処理するサンプルリスト
fruits = ['apple', 'banana', 'cherry']
## for ループと enumerate 関数を使ってリストを反復処理する
for index, fruit in enumerate(fruits):
print(f"Index: {index}, Fruit: {fruit}")
## 出力:
## Index: 0, Fruit: apple
## Index: 1, Fruit: banana
## Index: 2, Fruit: cherry
上記の例では、apple、banana、cherry の要素を含むリスト fruits
を定義しています。
その後、for ループを使って fruits
のリストを反復処理し、enumerate
関数を使ってリストの各要素のインデックスと値を取得します。ループ内では、文字列フォーマットを使って index
と fruit
を表示しています。enumerate
関数はデフォルトで 0 からカウントを始めますが、オプション引数の start を使って、カウントの開始点を別の値に指定することができます。
複数のリストやその他の反復可能オブジェクトを扱い、要素をペアで反復処理したい場合、または複数の反復可能オブジェクトを 1 つに結合したい場合に、zip()
関数が便利です。
## Python の for ループで zip() 関数を使う例
## 反復処理するサンプルリスト
fruits = ['apple', 'banana', 'cherry']
prices = [1.2, 3.5, 2.5]
## for ループと zip 関数を使ってリストを反復処理する
for fruit, price in zip(fruits, prices):
print(f"Fruit: {fruit}, Price: ${price}")
## 出力:
## Fruit: apple, Price: $1.2
## Fruit: banana, Price: $3.5
## Fruit: cherry, Price: $2.5
上記の例では、それぞれ apple
、banana
、cherry
と 1.2
、3.5
、2.5
の要素を含む 2 つのリスト fruits
と prices
を定義しています。
その後、zip()
関数を使って 2 つのリストの要素を for ループで反復処理します。zip()
関数は複数の反復可能オブジェクトを入力として受け取り、対応する位置の入力反復可能オブジェクトの要素を含むタプルを生成するイテレータを返します。上記の例では、アンパッキング演算子 (fruit
, price
) を使って、各タプルの要素をそれぞれ fruit
と price
という変数に割り当てています。ループ内では、文字列フォーマットを使って果物と価格を表示しています。
入力反復可能オブジェクトの長さが等しくない場合、zip()
関数は最短の反復可能オブジェクトの終端で処理を停止します。
この実験では、Python の for ループ文と range()
関数を使って要素のシーケンスを反復処理する方法を学びました。for ループと range()
関数の構文を学び、リスト、文字列、タプル、数値のシーケンスを反復処理するためのそれらの使用例を見ました。また、ネストされたシーケンスを反復処理するためにネストされた for ループをどのように使うかも学びました。
これで、for ループと range()
関数の基本を学んだので、これらのツールを使ってデータ処理、出力生成などのタスクを実行できるようになりました。