single
range関数
メニューを表示するにはスワイプしてください
Pythonのrange()関数は、数値のシーケンスを生成する組み込み関数。
特定の回数だけループを繰り返す必要がある場合に、シーケンスを反復処理するためによく使用。
これは、棚の補充やセールのスケジューリングなど、予測可能な繰り返しパターンを伴うタスクの処理に最適。
食料品店のシナリオで、Alexがrange()関数を活用して日常業務を効率的に管理する方法を見てみましょう。
構文と引数
range()関数は最大3つの引数を取ることができ、さまざまなループ処理に対応可能。
range関数の一般的な構文は次の通り:
range(start, stop, step)
start: シーケンスの最初の数値。省略可能で、指定しない場合は0から開始。stop: シーケンスの最後の数値だが、シーケンスはこの数値の直前で終了。この引数は必須。step: シーケンス内の各数値の間で加算(または減算)する量。省略可能で、指定しない場合は1ずつ増加。
range()関数の構文を理解したところで、各引数—start、stop、step—がループの動作にどのように影響するか、いくつかの例で確認しましょう。
引数が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}.")
注意
シーケンスは
0から始まり、6で終わります。これはPythonが多くの場合0から数え始めるためであり、多くの場面でインデックス調整の必要性を減らします。
2つの引数
2つの引数、例えば25(start)と32(stop)を指定すると、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}.")
注意
このインデックス方法では、終了要素が除外されるため、
start引数からstop引数を引くことでシーケンス内の要素数を簡単に計算できます。例えば、32 - 25 = 7となり、シーケンスには7個の要素が含まれます。
3つの引数
range()に3番目の引数を追加すると、step値が導入され、シーケンス内の各数値の間隔を定義します。
この例では、range()は1(start)、13(stop)、3(step)を受け取り、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}.")
応用例
range()関数を使うことで、週の各日にタスクを割り当て、店舗のすべてのセクションがカバーされるようにできます。
このループは7回実行されます。range(7)は0から6までの数値(合計7個の要素)を生成します。各ループで、変数dayは0から6までの値を取り、その値を使ってweekly_tasksやweekdaysリストの要素にアクセスします。
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}")
スワイプしてコーディングを開始
2つのリスト — weekdays と daily_promotions — を使用して、各曜日に割り当てられたプロモーションを出力します。
forループとrange()関数を使ってリストのインデックスを反復処理します。- 各イテレーションで:
weekdaysリストから現在のweekdayを取得します。- 同じインデックスを使って
daily_promotionsから対応するプロモーションを取得します。
- 指定された形式で両方の値を出力します。
出力要件
- 各曜日ごとに、次の形式で出力してください:
<weekday>: Promotion on <promotion>
注意
インデックスエラーを防ぐため、両方のリストが同じ数の要素を持つことを確認してください。
解答
フィードバックありがとうございます!
single
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください