Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Range-funktio | Silmukat
Johdatus Pythoniin

Pyyhkäise näyttääksesi valikon

book
Range-funktio

Pythonin range()-funktio on sisäänrakennettu funktio, joka luo numerosarjan.

Sitä käytetään usein silmukoissa, kun halutaan toistaa silmukka tietyn määrän kertoja.

Tämä on ihanteellinen ratkaisu tehtäviin, joissa toistuvuus on ennustettavaa, kuten hyllyjen täydennys tai myyntien aikataulutus ruokakaupassa.

Tarkastellaan, kuinka Alex hyödyntää range()-funktiota hoitaakseen rutiinitehtäviä ruokakaupassamme tehokkaasti:

Syntaksi ja argumentit

range()-funktio voi ottaa enintään kolme argumenttia, mikä tekee siitä monipuolisen erilaisiin silmukkatilanteisiin.

Tässä on range-funktion yleinen syntaksi:

python
  • start: sarjan ensimmäinen numero. Tämä on valinnainen, ja jos sitä ei määritetä, sarja alkaa arvosta 0.

  • stop: sarjan viimeinen numero, mutta sarja päättyy juuri ennen tätä arvoa. Tämä argumentti on pakollinen.

  • step: lisäyksen (tai vähennyksen) määrä jokaisen numeron välillä sarjassa. Tämä on valinnainen, ja jos sitä ei määritetä, sarja kasvaa arvolla 1 jokaisella askeleella.

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.

Tässä esimerkissä se tuottaa 7 alkion sarjan, joka alkaa arvosta 0 ja päättyy arvoon 6. Silmukka iteroi näiden alkioiden yli, mikä vastaa kaupan ensimmäistä 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}.")
copy

Huom

Jono alkaa arvosta 0 ja päättyy arvoon 6. Tämä johtuu siitä, että Pythonissa laskeminen alkaa usein arvosta 0, 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}.")
copy

Huom

Tällä indeksointitavalla, jossa loppuelementti jätetään pois, voit helposti laskea jonon alkioiden määrän vähentämällä start-argumentin stop-argumentista. Esimerkiksi, 32 - 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 muodostuvat 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}.")
copy

Esimerkkisovellus

range()-funktion avulla voidaan aikatauluttaa tehtävät jokaiselle viikonpäivälle varmistaen, että kaikki myymälän osastot tulevat hoidetuksi.

Tämä silmukka suoritetaan 7 kertaa, koska range(7) muodostaa luvut väliltä 06 (yhteensä 7 alkiota). Jokaisella kierroksella muuttuja day saa arvon väliltä 06, 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}")
copy
Tehtävä

Swipe to start coding

Käytä kahta listaaweekdays 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 weekday weekdays-listasta.
    • Hae vastaava tarjous daily_promotions-listasta samalla indeksillä.
  • 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

Switch to desktopVaihda työpöytään todellista harjoitusta vartenJatka siitä, missä olet käyttämällä jotakin alla olevista vaihtoehdoista
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 5. Luku 3

Kysy tekoälyä

expand
ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

book
Range-funktio

Pythonin range()-funktio on sisäänrakennettu funktio, joka luo numerosarjan.

Sitä käytetään usein silmukoissa, kun halutaan toistaa silmukka tietyn määrän kertoja.

Tämä on ihanteellinen ratkaisu tehtäviin, joissa toistuvuus on ennustettavaa, kuten hyllyjen täydennys tai myyntien aikataulutus ruokakaupassa.

Tarkastellaan, kuinka Alex hyödyntää range()-funktiota hoitaakseen rutiinitehtäviä ruokakaupassamme tehokkaasti:

Syntaksi ja argumentit

range()-funktio voi ottaa enintään kolme argumenttia, mikä tekee siitä monipuolisen erilaisiin silmukkatilanteisiin.

Tässä on range-funktion yleinen syntaksi:

python
  • start: sarjan ensimmäinen numero. Tämä on valinnainen, ja jos sitä ei määritetä, sarja alkaa arvosta 0.

  • stop: sarjan viimeinen numero, mutta sarja päättyy juuri ennen tätä arvoa. Tämä argumentti on pakollinen.

  • step: lisäyksen (tai vähennyksen) määrä jokaisen numeron välillä sarjassa. Tämä on valinnainen, ja jos sitä ei määritetä, sarja kasvaa arvolla 1 jokaisella askeleella.

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.

Tässä esimerkissä se tuottaa 7 alkion sarjan, joka alkaa arvosta 0 ja päättyy arvoon 6. Silmukka iteroi näiden alkioiden yli, mikä vastaa kaupan ensimmäistä 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}.")
copy

Huom

Jono alkaa arvosta 0 ja päättyy arvoon 6. Tämä johtuu siitä, että Pythonissa laskeminen alkaa usein arvosta 0, 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}.")
copy

Huom

Tällä indeksointitavalla, jossa loppuelementti jätetään pois, voit helposti laskea jonon alkioiden määrän vähentämällä start-argumentin stop-argumentista. Esimerkiksi, 32 - 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 muodostuvat 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}.")
copy

Esimerkkisovellus

range()-funktion avulla voidaan aikatauluttaa tehtävät jokaiselle viikonpäivälle varmistaen, että kaikki myymälän osastot tulevat hoidetuksi.

Tämä silmukka suoritetaan 7 kertaa, koska range(7) muodostaa luvut väliltä 06 (yhteensä 7 alkiota). Jokaisella kierroksella muuttuja day saa arvon väliltä 06, 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}")
copy
Tehtävä

Swipe to start coding

Käytä kahta listaaweekdays 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 weekday weekdays-listasta.
    • Hae vastaava tarjous daily_promotions-listasta samalla indeksillä.
  • 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

Switch to desktopVaihda työpöytään todellista harjoitusta vartenJatka siitä, missä olet käyttämällä jotakin alla olevista vaihtoehdoista
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 5. Luku 3
Switch to desktopVaihda työpöytään todellista harjoitusta vartenJatka siitä, missä olet käyttämällä jotakin alla olevista vaihtoehdoista
Pahoittelemme, että jotain meni pieleen. Mitä tapahtui?
some-alt