Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ For文 | セクション
データ分析のためのPython基礎
セクション 1.  25
single

single

bookFor文

メニューを表示するにはスワイプしてください

ループに特化したセクションへようこそ。

この章では、ループが繰り返し作業の自動化における重要なツールであり、リストやその他のイテラブルなデータ型を効率的に扱うために不可欠であることを解説します。

アレックスが食料品店での操作を簡素化するためにforループを活用する様子を紹介します。

Pythonにおけるforループの利用により、コレクション(イテラブルオブジェクト)の各要素に対して繰り返しコードブロックを実行できます。forループについて知っておくべきポイントは以下の通りです。

構文

forループを開始するには、forキーワードを使用し、itemのような変数名でシーケンス内の各要素を表します。続いてinキーワードと、groceryItemsのようなイテラブルオブジェクトを指定します。ループ内のコードブロックは、各要素ごとに一度ずつ実行されます。

この例では、itemがイテレータ変数としてgroceryItemsリストの各要素に順番にアクセスし、それぞれに対してprint()関数を実行します。

1234
groceryItems = ["milk", "eggs", "cheese", "butter"] for item in groceryItems: # Code to be executed print(item)
copy

反復処理は、コードブロックを繰り返し実行するプロセスを指します。Python では主に2種類の反復処理がサポートされています。

確定的反復処理

反復回数が事前に分かっている場合forループが代表例であり、シーケンスの終わりに達すると自動的に停止します。

不確定的反復処理

特定の条件が満たされるまで実行が続く場合で、通常はwhileループで処理されます。詳細は次章で解説します。

活用例

Python のforループは、あらゆるイテラブルオブジェクトliststuplesdictionariesstrings)で利用でき、要素ごとのデータ操作が可能です。

リスト内のアイテム、辞書のキーや値、文字列の各文字にアクセスする場合でも、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)
copy

辞書に対して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)
copy

イテレータ変数 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)
copy

キーと値の両方に同時にアクセスする必要がある場合、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.")
copy
Note
ノート

この例では、f-strings(フォーマット済み文字列リテラルとも呼ばれる)を使用して、変数を直接文字列内に埋め込んでいます。構文は簡単で、開き引用符 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.")
copy
Note
注意

ifループ内にfor文を配置しているため、ifブロックに追加のインデントが付与されています。前述の通り、インデントされた各コードブロックは、どこに配置されていても独立したものとして扱われます。重要なのは、インデントが一貫して正しいことです。

タスク

スワイプしてコーディングを開始

商品価格の合計

for ループを使用して価格リストを繰り返し処理し、商品の合計金額を計算します。

  1. 変数 total を作成し、0 に設定します。
  2. for ループを使って、price リスト内の各 prices を繰り返し処理します。
  3. ループ内で各 pricetotal 変数に加算します。
  4. ループ終了後、最終的な total を出力します。

解答

Switch to desktop実践的な練習のためにデスクトップに切り替える下記のオプションのいずれかを利用して、現在の場所から続行する
すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 1.  25
single

single

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

some-alt