Range-Funktio
Pythonin range()
-funktio on sisäänrakennettu funktio, joka generoi numerosarjan.
Sitä käytetään usein sekvenssin läpikäymiseen silmukoilla, erityisesti silloin, kun sinun täytyy suorittaa silmukka tietyn määrän kertoja.
Tämä on ihanteellista tehtävien käsittelyyn, jotka sisältävät ennustettavan toistokuvion, kuten hyllyjen täyttämisen tai myyntien aikatauluttamisen ruokakaupassa.
Katsotaanpa, kuinka Alex hyödyntää range()
-funktiota hallitakseen rutiinitehtäviä tehokkaasti ruokakauppaskenaariossamme:
Syntaksi ja Argumentit
range()
-funktio voi ottaa enintään kolme argumenttia, mikä tekee siitä monipuolisen erilaisiin silmukkaskenaarioihin.
Tässä on yleinen syntaksi range
-funktiolle:
python
start
: tämä on sekvenssin ensimmäinen numero . Se on valinnainen , ja jos et sisällytä sitä, sekvenssi alkaa0
:sta.stop
: tämä on sekvenssin viimeinen numero , mutta sekvenssi pysähtyy juuri ennen tätä numeroa . Tämä argumentti on pakollinen .step
: tämä on määrä, jonka lisäät (tai vähennät) jokaisen numeron välillä sekvenssissä. Se on valinnainen , ja jos et sisällytä sitä, sekvenssi kasvaa1
kerrallaan.
Nyt kun sinulla on käsitys range()
-funktion syntaksista, tutustutaan joihinkin esimerkkeihin nähdäksesi, miten kukin argumentti — start
, stop
ja step
— vaikuttaa silmukoiden käyttäytymiseen.
Yksi Argumentti
Kun range()
-funktiolle annetaan yksi argumentti, se käsittelee tämän stop
-parametrina.
Esimerkissämme se tuottaa sekvenssin, jossa on 7 elementtiä alkaen 0
:sta ja päättyen 6
:een. Silmukka iteraoi näiden elementtien yli, edustaen ensimmäisiä 7 päivää, jolloin kauppa on auki.
# 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}.")
Huom
Jono alkaa
0
:sta ja päättyy6
:een. Tämä johtuu siitä, että Python usein aloittaa laskemisen0
:sta, mikä vähentää tarpeen säätää indeksointia monissa tilanteissa.
Kaksi argumenttia
Kun annetaan kaksi argumenttia, kuten 25
(start
) ja 32
(stop
), range()
luo jonon 25
:stä 31
:een (koska stop
-arvo on poissuljettu jonosta).
# Planning seasonal sale days in the last week of December for day in range(25, 32): print(f"Seasonal sale on December {day}.")
Huom
Tällä indeksointimenetelmällä, jossa loppuelementti on poissuljettu, voit helposti laskea elementtien lukumäärän jonossa vähentämällä
start
-argumentinstop
-argumentista. Esimerkiksi,32 - 25 = 7
, mikä tarkoittaa, että jonossa on 7 elementtiä.
Kolme argumenttia
Lisäämällä kolmannen argumentin range()
:lle, otat käyttöön step
-arvon, joka määrittää lisäyksen jokaisen numeron välillä jonossa.
Tässä esimerkissä range()
ottaa 1
(start
), 13
(stop
) ja 3
(step
), tuottaen numerot 1, 4, 7, 10
. Nämä voivat edustaa työntekijöiden vuorojen alkamistunteja 12-tuntisen työpäivän aikana.
# 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}.")
Esimerkki Sovellus
range()
-funktion avulla voimme aikatauluttaa tehtävät jokaiselle viikonpäivälle varmistaaksemme, että kaikki myymälän osastot ovat katettuina.
Tämä silmukka suoritetaan 7 kertaa, koska range(7)
luo numerot 0
-6
(yhteensä 7 elementtiä). Jokaisessa silmukassa muuttuja day
saa arvon 0
-6
, jota käytetään sitten weekly_tasks
ja weekdays
listojen elementtien käsittelyyn.
# 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}")
Swipe to start coding
Käytä kahta listaa — weekdays
ja daily_promotions
— tulostaaksesi jokaiselle viikonpäivälle määrätyn tarjouksen.
- Käytä
for
-silmukkaarange()
-funktion kanssa käydäksesi läpi listan indeksit. - Jokaisessa iteraatiossa:
- Hae nykyinen
weekday
weekdays
-listasta. - Hae vastaava tarjous
daily_promotions
-listasta käyttäen samaa indeksiä.
- Hae nykyinen
- Tulosta molemmat arvot määritetyssä muodossa.
Tulostusvaatimukset
- Jokaiselle päivälle tulosta:
<weekday>: Tarjous <promotion>
Huom
Varmista, että molemmissa listoissa on sama määrä kohteita, jotta vältetään indeksointivirheet.
Ratkaisu
Kiitos palautteestasi!