Pythonのforループ

0 株式
0
0
0
0

導入

Pythonのforループは再帰関数です。リストなどのシーケンスオブジェクトがある場合、forループを使ってリスト内の項目を反復処理できます。forループの機能は、他のプログラミング言語とほとんど変わりません。この記事では、Pythonのforループを詳しく解説し、リストやタプルなど、様々なシーケンスを反復処理する方法を学びます。さらに、break文とcontinue文を使ってループの流れを制御する方法も学びます。.

forループを使用する場合

コード ブロックを複数回繰り返す必要がある場合、何回繰り返す必要があるかわからないときは、代わりに「while ループ」ステートメントを使用します。.

forループの構文

Python の for ループの基本的な構文は、以下のようになります。.

for itarator_variable in sequence_name:
Statements
. . .
Statements

Pythonのforループ構文の詳細

  • ステートメントの最初の単語はキーワード「for」で始まり、これは for ループの開始を意味します。.
  • 次に、シーケンスを反復処理し、ループ内でさまざまな機能を実行するために使用できる反復変数があります。.
  • 次は Python の「in」キーワードです。これは、反復変数にシーケンス内の要素をループするように指示します。.
  • 最後に、シーケンス変数があります。これは、リスト、タプル、またはその他のタイプの反復子にすることができます。.
  • ループ ステートメント セクションでは、反復変数を操作してさまざまな機能を実行できます。

forループを使用して文字列の個々の文字を出力する

Pythonの文字列は文字の並びです。プログラミングプログラムで文字列内の文字を個別に反復処理する必要がある場合は、forループを使用できます。.

やり方は次のとおりです。.

word="anaconda"
for letter in word:
print (letter)
a
n
a
c
o
n
d
a

このループが機能する理由は、Python が文字列全体をみるのではなく、「文字列」を文字のシーケンスとして扱うためです。.

for ループを使用して Python のリストまたはタプルを反復処理する

リストとタプルは反復可能なオブジェクトです。これらのオブジェクト内の要素をループ処理する方法を見てみましょう。.

words= ["Apple", "Banana", "Car", "Dolphin" ]
for word in words:
print (word)

出力:

Apple
Banana
Car
Dolphin

さて、ここでタプルの要素に取り組みましょう。.

nums = (1, 2, 3, 4)
sum_nums = 0
for num in nums:
sum_nums = sum_nums + num
print(f'Sum of numbers is {sum_nums}')
# Output
# Sum of numbers is 10

Pythonのネストされたforループ

for ループの中に別の for ループがある場合、ネストされた for ループと呼ばれます。ネストされた for ループには多くの用途があります。上記のリストの例を考えてみましょう。for ループはリスト内の個々の単語を出力します。しかし、リスト内の各単語の個々の文字を出力したい場合はどうすればよいでしょうか?

ここで、ネストされた for ループが最も効果的です。最初のループ(親ループ)は単語を一つずつループします。2番目のループ(子ループ)は各単語の文字をループします。.

words= ["Apple", "Banana", "Car", "Dolphin" ]
for word in words:
#This loop is fetching word from the list
print ("The following lines will print each letters of "+word)
for letter in word:
#This loop is fetching letter for the word
print (letter)
print("") #This print is used to print a blank line

出力:


ネストされたループは、ネストされた if ステートメントと構造的に似ています。

range() 関数を使用した for ループ

Pythonのrange()は組み込み関数の一つです。range関数は、forループを特定の回数だけ実行したい場合や、出力するオブジェクトの範囲を指定したい場合に非常に便利です。.

range() を使用する場合、1 ~ 3 個の整数引数を渡すことができます。

  • 始める シーケンスが開始する整数値を指定します。これが含まれていない場合、シーケンスは 0 から始まります。.
  • 停止 は常に必須であり、その数を超えない整数である。
  • ステップ 次の反復の増分量(負の数の場合は減分量)を決定します。これが省略された場合、デフォルトのステップは 1 になります。.

数字 1、2、3 を印刷する次の例を考えてみましょう。

for x in range(3):
print("Printing:", x)
# Output
# Printing: 0
# Printing: 1
# Printing: 2

range関数は、開始値と終了値に加えて、ステップという別のパラメータも受け取ります。このパラメータは、各カウントの間に何個の数字をスキップするかを指定します。.

以下の例では、ステップとして数字 3 を使用しており、出力される数字は前の数字 + 3 であることがわかります。.

for n in range(1, 10, 3):
print("Printing with step:", n)
# Output
# Printing with step: 1
# Printing with step: 4
# Printing with step: 7

また、ステップ引数に負の値を使用して後方に反復することもできますが、それに応じて開始引数と停止引数を調整する必要があります。

for i in range(100,0,-10):
print(i)

ここで、100は開始値、0は終了値、-10は範囲です。つまり、ループは100から始まり、0で終わり、反復ごとに10ずつ減少します。これは出力で次のように発生します。

Output
100
90
80
70
60
50
40
30
20
10

Python でプログラミングする場合、for ループでは反復処理のパラメータとしてシーケンス型 range() がよく使用されます。.

forループを使用したbreak文

break文は、forループを途中で終了するために使用されます。特定の条件が満たされたときにforループを中断するために使用されます。例えば、数値のリストがあり、ある数値が存在するかどうかを確認したいとします。数値のリストを反復処理し、もし数値が見つかった場合は、残りの要素を反復処理する必要がないため、ループを終了できます。.

この場合、 for ループとともに Python の if else 条件を使用します。.

nums = [1, 2, 3, 4, 5, 6]
n = 2
found = False
for num in nums:
if n == num:
found = True
break
print(f'List contains {n}: {found}')
# Output
# List contains 2: True

forループを含むcontinue文

forループ内でcontinue文を使用すると、特定の条件においてforループ本体の実行をスキップできます。例えば、数値のリストがあり、正の数の合計を出力したいとします。continue文を使用することで、負の数の場合にforループをスキップできます。.

nums = [1, 2, -3, 4, -5, 6]
sum_positives = 0
for num in nums:
if num < 0:
continue
sum_positives += num
print(f'Sum of Positive Numbers: {sum_positives}')

else ブロックを含む Python の for ループ

Pythonのforループではelseブロックを使用できます。elseブロックは、forループがbreak文で終了していない場合にのみ実行されます。例えば、すべての数値が偶数の場合のみ合計を出力する関数があるとします。奇数の場合は、break文を使用してforループを終了できます。elseブロック内で合計を出力することで、forループが正常に実行されたときに合計が表示されます。.

def print_sum_even_nums(even_nums):
total = 0
for x in even_nums:
if x % 2 != 0:
break
total += x
else:
print("For loop executed normally")
print(f'Sum of numbers {total}')
# this will print the sum
print_sum_even_nums([2, 4, 6, 8])
# this won't print the sum because of an odd number in the sequence
print_sum_even_nums([2, 4, 5, 8])
# Output
# For loop executed normally
# Sum of numbers 20

シーケンシャルデータ型を使用したループ

リストやその他のデータシーケンスも、forループの反復パラメータとして使用できます。range() を反復処理する代わりに、リストを定義してそのリストを反復処理することもできます。リストを変数に代入し、そのリストを反復処理します。

sharks = ['hammerhead', 'great white', 'dogfish', 'frilled', 'bullhead', 'requiem']
for shark in sharks:
print(shark)

この場合、リスト内の各項目を出力しています。変数 shark を使用しましたが、他の有効な名前で変数を呼び出しても、同じ出力が得られます。

Output
hammerhead
great white
dogfish
frilled
bullhead
requiem

上記の出力は、forループがリストを反復処理し、各行にリストの各項目を出力していることを示しています。リストや文字列、タプルなどのシーケンスベースのデータ型は反復処理が可能なため、forループでよく使用されます。これらのデータ型をrange()と組み合わせてリストに項目を追加できます。例:

sharks = ['hammerhead', 'great white', 'dogfish', 'frilled', 'bullhead', 'requiem']
for item in range(len(sharks)):
sharks.append('shark')
print(sharks)
Output
['hammerhead', 'great white', 'dogfish', 'frilled', 'bullhead', 'requiem', 'shark', 'shark', 'shark', 'shark', 'shark', 'shark']

ここでは、サメのリストの各項目に「shark」というプレースホルダ文字列を追加しています。また、forループを使用してリストを最初から作成することもできます。

integers = []
for i in range(10):
integers.append(i)
print(integers)

この例では、整数は空のリストに初期化されますが、 for ループによって次のようにリストが入力されます。

Output
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

同様に、文字列を反復処理することもできます。

sammy = 'Sammy'
for letter in sammy:
print(letter)
Output
S
a
m
m
y

タプルの反復処理は、上記のリストや文字列の反復処理と同じ形式で行われます。辞書の反復処理では、辞書の正しい要素を呼び出していることを確認するために、キーと値の構造を念頭に置くことが重要です。以下は、キーと値の両方を呼び出す例です。

sammy_shark = {'name': 'Sammy', 'animal': 'shark', 'color': 'blue', 'location': 'ocean'}
for key in sammy_shark:
print(key + ': ' + sammy_shark[key])
Output
name: Sammy
animal: shark
location: ocean
color: blue

forループで辞書を使用する場合、反復変数は辞書のキーに対応し、dictionary_variable[iterating_variable]は値に対応します。上記の例では、反復変数keyはキーを表し、sammy_shark[key]は値を表しています。ループは、連続したデータ型を反復処理して操作するためによく使用されます。.

結果

Pythonのforループは他のプログラミング言語と非常によく似ています。forループでは、break文とcontinue文を使って実行を変更できます。さらに、Pythonでは、オプションで別のループをブロックすることもできます。.

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

あなたも気に入るかもしれない