single
Forループ
メニューを表示するにはスワイプしてください
ループに特化したセクションへようこそ!
この章では、ループが繰り返し作業の自動化において重要な役割を果たし、リストやその他のイテラブルなデータ型を効率的に扱うために不可欠であることを解説します。
アレックスが食料品店での操作を簡素化するためにforループを活用する様子をご覧ください:
Pythonにおけるforループの使用により、コレクション(イテラブルオブジェクト)の各要素ごとにコードブロックを繰り返し実行できます。forループについて知っておくべきポイントは以下の通りです。
構文
forループを開始し、forキーワードの後にitemのような変数名でシーケンス内の各要素を表します。続いてinキーワードとgroceryItemsのようなイテラブルオブジェクトを指定します。ループ内のコードブロックは、各要素ごとに一度ずつ実行されます。
この例では、itemがイテレータ変数としてgroceryItemsリストの各要素に順番にアクセスし、それぞれに対してprint()関数を実行します。
1234groceryItems = ["milk", "eggs", "cheese", "butter"] for item in groceryItems: # Code to be executed print(item)
反復処理は、コードブロックを繰り返し実行するプロセスを指します。Python では主に2種類の反復処理がサポートされています。
確定的反復処理
反復回数が事前に分かっている場合。for ループが典型的な例であり、シーケンスの終わりに達すると自動的に停止します。
不確定的反復処理
特定の条件が満たされるまで実行が継続される場合で、通常は while ループで処理されます。詳細は次章で解説します。
利用例
Python の for ループは、任意のイテラブルオブジェクト(lists、tuples、dictionaries、strings)で利用でき、各要素ごとのデータ操作が可能です。
リスト内のアイテム、辞書のキーや値、文字列の各文字にアクセスする場合でも、for ループは繰り返し処理を簡潔に記述できる明確な構文を提供します。
以下は、リストと同様に文字列やタプルの要素を for ループで反復処理する方法です。
123456789# Print each letter in the string vegetable = "Carrot" for letter in vegetable: print(letter) # Tuple containing different categories of the grocery store categories = ("Produce", "Bakery", "Meat", "Dairy") for category in categories: print(category)
辞書に対してforループを使用する場合、辞書を直接反復処理するとデフォルトでキーをループします。
辞書を直接反復処理した場合の挙動は次のとおりです。
1234567# Dictionary of products and their stock counts productStock = {"milk": 120, "eggs": 200, "bread": 80} # Print each dictionary key print("Product list:") for product in productStock: print(product)
イテレータ変数 product は辞書のキーのみを参照している点に注目。
辞書の値を反復処理する場合、values() メソッドを使用。
キーを参照せずに値のみが必要な操作に便利。
1234567# Dictionary of products and their stock counts productStock = {"milk": 120, "eggs": 200, "bread": 80} # Print each dictionary value print("Stock counts:") for stock in productStock.values(): print(stock)
キーと値の両方に同時にアクセスする必要がある場合、items() メソッドを使うことで辞書のキーと値のペアをループ処理可能。
このメソッドを for ループで使用する際は、in キーワードの前に2つの変数(キー用の product と値用の stock)を指定。
1234567# Dictionary of products and their stock counts productStock = {"milk": 120, "eggs": 200, "bread": 80} # Print both the key and value for each dictionary item print("Inventory details:") for product, stock in productStock.items(): print(f"{product} has {stock} units in stock.")
注意
この例では、f文字列(フォーマット済み文字列リテラルとも呼ばれる)を使用して、変数を直接文字列内に埋め込んでいます。構文は簡単で、開き引用符
"の前にfを付け、文字列内の中括弧{}の中に変数や式を記述します。この方法により、print文で文字列と変数を組み合わせるのが非常に読みやすくなるため、習得しておく価値があります。
if/else、ブール演算子、for ループの知識を活用して、辞書で簡単な在庫チェックを実行可能。
123456789101112131415161718# Product names as keys and their stock levels as values inventory = { "milk": 120, "eggs": 30, "bread": 80, "apples": 10 } # The threshold stock level that triggers a restock minimum_stock = 50 # Evaluating stock levels and deciding if restocking is necessary print("Checking inventory status:") for product, quantity in inventory.items(): if quantity < minimum_stock: print(f"{product} requires restocking. Only {quantity} units remain.") else: print(f"{product} has adequate stock with {quantity} units available.")
注意
forループの中にif文を配置しているため、ifブロックに追加のインデントが付いていることに気付くかもしれません。前述の通り、インデントされた各コードブロックは、どこに配置されていても独立したものとして扱われます。重要なのは、それぞれの間でインデントが一貫して正しいことです。
スワイプしてコーディングを開始
商品価格の合計
for ループを使用して価格リストを繰り返し処理し、商品の合計金額を計算します。
- 変数
totalを作成し、0に設定します。 - for ループを使って、
priceリスト内の各pricesを繰り返し処理します。 - ループ内で各
priceをtotal変数に加算します。 - ループ終了後、最終的な
totalを出力します。
解答
フィードバックありがとうございます!
single
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください