Range-funktio
range()-funktio Pythonissa on sisäänrakennettu funktio, joka luo numerosarjan.
Sitä käytetään usein sekvenssin läpikäymiseen silmukoissa, erityisesti kun silmukka täytyy suorittaa tietty määrä kertoja.
Tämä on ihanteellista tehtäviin, joissa toistojen määrä on ennustettavissa, kuten hyllyjen täydennys tai alennusmyyntien aikataulutus ruokakaupassa.
Tarkastellaan, miten Alex hyödyntää range()-funktiota hoitaakseen rutiinitehtäviä tehokkaasti ruokakauppaskenaariossamme:
Syntaksi ja argumentit
range()-funktio voi ottaa enintään kolme argumenttia, mikä tekee siitä monipuolisen erilaisiin silmukkatilanteisiin.
Tässä on range-funktion yleinen syntaksi:
range(start, stop, step)
start: tämä on sarjan ensimmäinen numero. Se on valinnainen, ja jos sitä ei määritetä, sarja alkaa arvosta0.stop: tämä on sarjan viimeinen numero, mutta sarja päättyy juuri ennen tätä numeroa. Tämä argumentti on pakollinen.step: tämä on määrä, joka lisätään (tai vähennetään) jokaisen numeron välillä sarjassa. Se on valinnainen, ja jos sitä ei määritetä, sarja kasvaa joka kerta1.
Nyt kun tunnet range()-funktion syntaksin, tarkastellaan esimerkkejä siitä, miten kukin argumentti — start, stop ja step — vaikuttaa silmukoiden toimintaan.
Yksi argumentti
Kun range()-funktiolle annetaan yksi argumentti, sitä käsitellään stop-parametrina.
Esimerkissämme se luo 7 alkion sarjan, joka alkaa arvosta 0 ja päättyy arvoon 6. Silmukka käy läpi nämä alkiot, jotka edustavat kaupan ensimmäisiä 7 aukiolopäivää.
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}.")
Huom
Jono alkaa arvosta
0ja päättyy arvoon6. Tämä johtuu siitä, että Pythonissa laskeminen alkaa usein arvosta0, mikä vähentää tarvetta säätää indeksointia monissa tilanteissa.
Kaksi argumenttia
Kun annetaan kaksi argumenttia, kuten 25 (start) ja 32 (stop), range() tuottaa jonon arvosta 25 arvoon 31 (koska stop-arvo ei sisälly jonomuotoon).
123# 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ä indeksointitavalla, jossa loppuelementti jätetään pois, voit helposti laskea jonon alkioiden määrän vähentämällä
start-argumentinstop-argumentista. Esimerkiksi32 - 25 = 7, mikä tarkoittaa, että jaksossa on 7 alkiota.
Kolme argumenttia
Lisäämällä kolmannen argumentin range()-funktioon otetaan käyttöön step-arvo, joka määrittää välin jokaisen luvun välillä jaksossa.
Tässä esimerkissä range() saa arvot 1 (start), 13 (stop) ja 3 (step), jolloin muodostuu luvut 1, 4, 7, 10. Nämä voivat kuvata työntekijöiden vuorojen aloitustunteja 12 tunnin työpäivän aikana.
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}.")
Esimerkkisovellus
range()-funktion avulla voidaan ajoittaa tehtäviä jokaiselle viikonpäivälle varmistaen, että kaikki myymälän osastot tulevat katetuiksi.
Tämä silmukka suoritetaan 7 kertaa, koska range(7) muodostaa luvut väliltä 0–6 (yhteensä 7 alkiota). Jokaisella kierroksella muuttuja day saa arvon 0–6, jota käytetään sekä weekly_tasks- että weekdays-listojen alkioiden hakemiseen.
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}")
Swipe to start coding
Käytä kahta listaa — weekdays ja daily_promotions — tulostaaksesi kullekin viikonpäivälle määritetyn tarjouksen.
- Käytä
for-silmukkaa yhdessärange()-funktion kanssa käydäksesi läpi listojen indeksit. - Jokaisella iteraatiolla:
- Hae nykyinen
weekdayweekdays-listasta. - Hae vastaava tarjous
daily_promotions-listasta samalla indeksillä.
- Hae nykyinen
- Tulosta molemmat arvot määritetyssä muodossa.
Tulostusvaatimukset
- Jokaiselle päivälle tulosta:
<weekday>: Promotion on <promotion>
Huom
Varmista, että molemmissa listoissa on sama määrä alkioita, jotta vältät indeksointivirheet.
Ratkaisu
Kiitos palautteestasi!
single
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Mahtavaa!
Completion arvosana parantunut arvoon 2.17
Range-funktio
Pyyhkäise näyttääksesi valikon
range()-funktio Pythonissa on sisäänrakennettu funktio, joka luo numerosarjan.
Sitä käytetään usein sekvenssin läpikäymiseen silmukoissa, erityisesti kun silmukka täytyy suorittaa tietty määrä kertoja.
Tämä on ihanteellista tehtäviin, joissa toistojen määrä on ennustettavissa, kuten hyllyjen täydennys tai alennusmyyntien aikataulutus ruokakaupassa.
Tarkastellaan, miten Alex hyödyntää range()-funktiota hoitaakseen rutiinitehtäviä tehokkaasti ruokakauppaskenaariossamme:
Syntaksi ja argumentit
range()-funktio voi ottaa enintään kolme argumenttia, mikä tekee siitä monipuolisen erilaisiin silmukkatilanteisiin.
Tässä on range-funktion yleinen syntaksi:
range(start, stop, step)
start: tämä on sarjan ensimmäinen numero. Se on valinnainen, ja jos sitä ei määritetä, sarja alkaa arvosta0.stop: tämä on sarjan viimeinen numero, mutta sarja päättyy juuri ennen tätä numeroa. Tämä argumentti on pakollinen.step: tämä on määrä, joka lisätään (tai vähennetään) jokaisen numeron välillä sarjassa. Se on valinnainen, ja jos sitä ei määritetä, sarja kasvaa joka kerta1.
Nyt kun tunnet range()-funktion syntaksin, tarkastellaan esimerkkejä siitä, miten kukin argumentti — start, stop ja step — vaikuttaa silmukoiden toimintaan.
Yksi argumentti
Kun range()-funktiolle annetaan yksi argumentti, sitä käsitellään stop-parametrina.
Esimerkissämme se luo 7 alkion sarjan, joka alkaa arvosta 0 ja päättyy arvoon 6. Silmukka käy läpi nämä alkiot, jotka edustavat kaupan ensimmäisiä 7 aukiolopäivää.
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}.")
Huom
Jono alkaa arvosta
0ja päättyy arvoon6. Tämä johtuu siitä, että Pythonissa laskeminen alkaa usein arvosta0, mikä vähentää tarvetta säätää indeksointia monissa tilanteissa.
Kaksi argumenttia
Kun annetaan kaksi argumenttia, kuten 25 (start) ja 32 (stop), range() tuottaa jonon arvosta 25 arvoon 31 (koska stop-arvo ei sisälly jonomuotoon).
123# 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ä indeksointitavalla, jossa loppuelementti jätetään pois, voit helposti laskea jonon alkioiden määrän vähentämällä
start-argumentinstop-argumentista. Esimerkiksi32 - 25 = 7, mikä tarkoittaa, että jaksossa on 7 alkiota.
Kolme argumenttia
Lisäämällä kolmannen argumentin range()-funktioon otetaan käyttöön step-arvo, joka määrittää välin jokaisen luvun välillä jaksossa.
Tässä esimerkissä range() saa arvot 1 (start), 13 (stop) ja 3 (step), jolloin muodostuu luvut 1, 4, 7, 10. Nämä voivat kuvata työntekijöiden vuorojen aloitustunteja 12 tunnin työpäivän aikana.
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}.")
Esimerkkisovellus
range()-funktion avulla voidaan ajoittaa tehtäviä jokaiselle viikonpäivälle varmistaen, että kaikki myymälän osastot tulevat katetuiksi.
Tämä silmukka suoritetaan 7 kertaa, koska range(7) muodostaa luvut väliltä 0–6 (yhteensä 7 alkiota). Jokaisella kierroksella muuttuja day saa arvon 0–6, jota käytetään sekä weekly_tasks- että weekdays-listojen alkioiden hakemiseen.
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}")
Swipe to start coding
Käytä kahta listaa — weekdays ja daily_promotions — tulostaaksesi kullekin viikonpäivälle määritetyn tarjouksen.
- Käytä
for-silmukkaa yhdessärange()-funktion kanssa käydäksesi läpi listojen indeksit. - Jokaisella iteraatiolla:
- Hae nykyinen
weekdayweekdays-listasta. - Hae vastaava tarjous
daily_promotions-listasta samalla indeksillä.
- Hae nykyinen
- Tulosta molemmat arvot määritetyssä muodossa.
Tulostusvaatimukset
- Jokaiselle päivälle tulosta:
<weekday>: Promotion on <promotion>
Huom
Varmista, että molemmissa listoissa on sama määrä alkioita, jotta vältät indeksointivirheet.
Ratkaisu
Kiitos palautteestasi!
single