Tässä artikkelissa opit toistamaan elementtisarjan käyttämällä silmukan eri muunnelmia.
Video: Python for Loop
Mikä on silmukalle Pythonissa?
Pythonin for-silmukkaa käytetään iteroimaan sekvenssin (luettelo, dupleksi, merkkijono) tai muiden iteroitavien objektien yli. Jakson toistamista kutsutaan kulkemiseksi.
Loopin syntaksi
for val peräkkäin: for of
Tässä val
on muuttuja, joka ottaa kohteen arvon sekvenssistä kussakin iteraatiossa.
Silmukka jatkuu, kunnes saavutamme sarjan viimeisen kohteen. For -silmukan runko erotetaan muusta koodista sisennyksen avulla.
Vuokaavio silmukasta
![](https://cdn.wiki-base.com/7695639/python_for_loop.jpg.webp)
Esimerkki: Python for Loop
# Program to find the sum of all numbers stored in a list # List of numbers numbers = (6, 5, 3, 8, 4, 2, 5, 4, 11) # variable to store the sum sum = 0 # iterate over the list for val in numbers: sum = sum+val print("The sum is", sum)
Kun suoritat ohjelmaa, tulos on:
Summa on 48
Alue () -toiminto
Voimme luoda numerosarjan range()
funktion avulla. range(10)
tuottaa numeroita 0-9 (10 numeroa).
Voimme myös määrittää alku-, lopetus- ja askelkokon range(start, stop,step_size)
. step_size on oletusarvoisesti 1, jos sitä ei toimiteta.
range
Kohde on "laiska" tavallaan, koska se ei tuota jokaisen numeron, että se "sisältää", kun luomme sen. Kuitenkin, se ei ole iteraattorin koska se tukee in
, len
ja __getitem__
toimintaa.
Tämä toiminto ei tallenna kaikkia arvoja muistiin; se olisi tehotonta. Joten se muistaa alun, lopetuksen, askelkokon ja luo seuraavan numeron tien päällä.
Pakottaaksemme tämän toiminnon tuottamaan kaikki kohteet, voimme käyttää toimintoa list()
.
Seuraava esimerkki selventää tätä.
print(range(10)) print(list(range(10))) print(list(range(2, 8))) print(list(range(2, 20, 3)))
Tuotos
alue (0, 10) (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) (2, 3, 4, 5, 6, 7) (2, 5, 8, 11, 14 , 17)
Voimme käyttää range()
funktiota for
silmukoina iteroimaan numerosarjan läpi. Se voidaan yhdistää len()
toimintoon iteroida sekvenssi indeksoinnin avulla. Tässä on esimerkki.
# Program to iterate through a list using indexing genre = ('pop', 'rock', 'jazz') # iterate over the list using index for i in range(len(genre)): print("I like", genre(i))
Tuotos
Pidän popista Pidän rockista Pidän jazzista
silmukalle muun kanssa
for
Silmukka voi olla valinnainen else
lohko samoin. else
Osa suoritetaan, jos tuotetta käytetty sekvenssi silmukka pakokaasuihin.
break
Avainsanaa voidaan pysäyttää silmukka. Tällaisissa tapauksissa toinen osa jätetään huomiotta.
Siksi for for -silmukan toinen osa suoritetaan, jos katkeamista ei tapahdu.
Tässä on esimerkki tämän havainnollistamiseksi.
digits = (0, 1, 5) for i in digits: print(i) else: print("No items left.")
Kun suoritat ohjelmaa, tulos on:
0 1 5 Ei tuotteita jäljellä.
Täällä for for loop tulostaa luettelon kohteita, kunnes silmukka loppuu. Kun for-silmukka loppuu, se suorittaa koodilohkon else
ja tulostaa Ei kohteita jäljellä.
Tätä for… else
lausetta voidaan käyttää break
avainsanan kanssa else
eston suorittamiseen vain, kun break
avainsanaa ei suoritettu. Otetaan esimerkki:
# program to display student's marks from record student_name = 'Soyuj' marks = ('James': 90, 'Jules': 55, 'Arthur': 77) for student in marks: if student == student_name: print(marks(student)) break else: print('No entry with that name found.')
Tuotos
Samannimistä merkintää ei löytynyt.