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

bookRange-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 toistuvuus on ennustettavaa, kuten hyllyjen täyttö tai myyntien aikataulutus ruokakaupassa.

Tarkastellaan, kuinka Alex hyödyntää range()-funktiota rutiinitehtävien hallintaan ruokakauppaskenaariossamme tehokkaasti:

Syntaksi ja argumentit

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

Tässä on yleinen syntaksi range-funktiolle:

range(start, stop, step)
  • start: tämä on sarjan ensimmäinen numero. Se on valinnainen, ja jos sitä ei määritetä, sarja alkaa arvosta 0.
  • 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 arvolla 1 kerrallaan.

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 alkaen arvosta 0 ja päättyen 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}.")
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 tuloksena ovat luvut 1, 4, 7, 10. Nämä voivat kuvata työntekijöiden vuorojen alkamisaikoja 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 voimme aikatauluttaa tehtävät jokaiselle viikonpäivälle varmistaaksemme, että kaikki myymälän osastot tulevat hoidetuksi.

Tämä silmukka suoritetaan 7 kertaa, koska range(7) tuottaa luvut 06 (yhteensä 7 alkiota). Jokaisella kierroksella muuttuja day saa arvon 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

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 5. Luku 3
single

single

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

Suggested prompts:

Can you explain more about how the step argument works in range()?

What happens if I use a negative step value in range()?

Can you give more real-life examples of using range() in a grocery store?

close

bookRange-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 toistuvuus on ennustettavaa, kuten hyllyjen täyttö tai myyntien aikataulutus ruokakaupassa.

Tarkastellaan, kuinka Alex hyödyntää range()-funktiota rutiinitehtävien hallintaan ruokakauppaskenaariossamme tehokkaasti:

Syntaksi ja argumentit

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

Tässä on yleinen syntaksi range-funktiolle:

range(start, stop, step)
  • start: tämä on sarjan ensimmäinen numero. Se on valinnainen, ja jos sitä ei määritetä, sarja alkaa arvosta 0.
  • 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 arvolla 1 kerrallaan.

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 alkaen arvosta 0 ja päättyen 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}.")
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 tuloksena ovat luvut 1, 4, 7, 10. Nämä voivat kuvata työntekijöiden vuorojen alkamisaikoja 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 voimme aikatauluttaa tehtävät jokaiselle viikonpäivälle varmistaaksemme, että kaikki myymälän osastot tulevat hoidetuksi.

Tämä silmukka suoritetaan 7 kertaa, koska range(7) tuottaa luvut 06 (yhteensä 7 alkiota). Jokaisella kierroksella muuttuja day saa arvon 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
single

single

some-alt