Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Range-Funktio | Silmukat
Johdanto Python-Ohjelmointiin

Pyyhkäise näyttääksesi valikon

book
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 alkaa 0 :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 kasvaa 1 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.

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 0:sta ja päättyy 6:een. Tämä johtuu siitä, että Python usein aloittaa laskemisen 0: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).

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ä indeksointimenetelmällä, jossa loppuelementti on poissuljettu, voit helposti laskea elementtien lukumäärän jonossa vähentämällä start-argumentin stop-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.

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

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.

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 jokaiselle viikonpäivälle määrätyn tarjouksen.

  • Käytä for-silmukkaa range()-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ä.
  • 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

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
Pahoittelemme, että jotain meni pieleen. Mitä tapahtui?

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 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 alkaa 0 :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 kasvaa 1 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.

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 0:sta ja päättyy 6:een. Tämä johtuu siitä, että Python usein aloittaa laskemisen 0: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).

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ä indeksointimenetelmällä, jossa loppuelementti on poissuljettu, voit helposti laskea elementtien lukumäärän jonossa vähentämällä start-argumentin stop-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.

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

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.

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 jokaiselle viikonpäivälle määrätyn tarjouksen.

  • Käytä for-silmukkaa range()-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ä.
  • 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

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