Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ range関数 | ループ
Python入門
セクション 5.  3
single

single

bookrange関数

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

Pythonのrange()関数は、数値のシーケンスを生成する組み込み関数。

特定の回数だけループを繰り返す必要がある場合に、シーケンスを反復処理するためによく使用。

これは、棚の補充やセールのスケジューリングなど、予測可能な繰り返しパターンを伴うタスクの処理に最適。

食料品店のシナリオで、Alexがrange()関数を活用して日常業務を効率的に管理する方法を見てみましょう。

構文と引数

range()関数は最大3つの引数を取ることができ、さまざまなループ処理に対応可能。

range関数の一般的な構文は次の通り:

range(start, stop, step)
  • start: シーケンスの最初の数値省略可能で、指定しない場合は0から開始。
  • stop: シーケンスの最後の数値だが、シーケンスはこの数値の直前で終了。この引数は必須
  • step: シーケンス内の各数値の間で加算(または減算)する量省略可能で、指定しない場合は1ずつ増加。

range()関数の構文を理解したところで、各引数—startstopstep—がループの動作にどのように影響するか、いくつかの例で確認しましょう。

引数が1つの場合

range()関数に1つだけ引数を与えると、それはstopパラメータとして扱われる。

この例では、0から6までの7つの要素のシーケンスを生成。ループはこれらの要素を順に処理し、店舗が営業している最初の7日間を表現。

123
# Announce store opening every day for 7 days for day in range(7): print(f"Good morning! The store is now open on day {day}.")
copy

注意

シーケンスは0から始まり、6で終わります。これはPythonが多くの場合0から数え始めるためであり、多くの場面でインデックス調整の必要性を減らします

2つの引数

2つの引数、例えば25start)と32stop)を指定すると、range()25から31までのシーケンスを生成します(stopの値はシーケンスに含まれません)。

123
# Planning seasonal sale days in the last week of December for day in range(25, 32): print(f"Seasonal sale on December {day}.")
copy

注意

このインデックス方法では、終了要素が除外されるため、start引数からstop引数を引くことでシーケンス内の要素数を簡単に計算できます。例えば、32 - 25 = 7となり、シーケンスには7個の要素が含まれます。

3つの引数

range()に3番目の引数を追加すると、step値が導入され、シーケンス内の各数値の間隔を定義します。

この例では、range()1start)、13stop)、3step)を受け取り、1, 4, 7, 10という数値を生成します。これらは12時間勤務のスタッフシフトの開始時刻を表すことができます。

123
# Schedule staff shifts every three hours throughout a 12-hour day for hour in range(1, 13, 3): print(f"Staff shift starts at hour {hour}.")
copy

応用例

range()関数を使うことで、週の各日にタスクを割り当て、店舗のすべてのセクションがカバーされるようにできます。

このループは7回実行されます。range(7)0から6までの数値(合計7個の要素)を生成します。各ループで、変数day0から6までの値を取り、その値を使ってweekly_tasksweekdaysリストの要素にアクセスします。

123456789101112131415161718192021
# List of daily tasks for a week weekly_tasks = [ "Restock Fruits", "Clean Dairy Section", "Review Meat Inventory", "Restock Vegetables", "Check Bakery Expiry Dates", "Organize Front Displays", "Prepare Weekly Sales Report" ] # List of weekdays corresponding to each task weekdays = [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" ] # Loop through each day using the range function for day in range(7): task = weekly_tasks[day] # Access the task corresponding to the current day weekday = weekdays[day] # Access the corresponding weekday print(f"{weekday} Task: {task}")
copy
タスク

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

2つのリストweekdaysdaily_promotions — を使用して、各曜日に割り当てられたプロモーションを出力します。

  • for ループと range() 関数を使ってリストのインデックスを反復処理します。
  • 各イテレーションで:
    • weekdays リストから現在の weekday を取得します。
    • 同じインデックスを使って daily_promotions から対応するプロモーションを取得します。
  • 指定された形式で両方の値を出力します。

出力要件

  • 各曜日ごとに、次の形式で出力してください:
    <weekday>: Promotion on <promotion>

注意

インデックスエラーを防ぐため、両方のリストが同じ数の要素を持つことを確認してください。

解答

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

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

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

セクション 5.  3
single

single

AIに質問する

expand

AIに質問する

ChatGPT

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

some-alt