„Python“ kilpoms

Dėl ciklo pareiškimų

„Python“ naudoja „for loop“, norėdamas kartoti elementų sąrašą. Skirtingai nuo „C“ ar „Java“, kurie naudoja „for loop“, kad pakeistų vertę žingsniais ir pasiektų kažką, pvz., Masyvą, naudodami tą vertę.

Kilpos kartojasi per duomenų rinkimo duomenų struktūras, tokias kaip sąrašai, rinkiniai ir žodynai.

Pagrindinė sintaksė yra:

for value in list_of_values: # use value inside this block

Apskritai kaip iteratoriaus vertę galite naudoti bet ką, kur galima priskirti iteratoriaus įrašus. Pvz., Galite išpakuoti rinkinius iš jų sąrašo:

list_of_tuples = [(1,2), (3,4)] for a, b in list_of_tuples: print("a:", a, "b:", b)

Kita vertus, galite peržvelgti viską, kas yra kartojama. Galite iškviesti funkciją arba naudoti sąrašo pažodį.

for person in load_persons(): print("The name is:", person.name)
for character in ["P", "y", "t", "h", "o", "n"]: print("Give me a '{}'!".format(character))

Keletas „For“ kilpų naudojimo būdų:

Kartoti per diapazono () funkciją

for i in range(10): print(i)

Užuot funkcija, diapazonas iš tikrųjų yra nekintamas sekos tipas. Išvestyje bus pateikti rezultatai nuo apatinės ribos, ty 0 iki viršutinės ribos, ty 10, išskyrus 10. Pagal numatytuosius nustatymus apatinė riba arba pradinis indeksas yra nulis. Išvestis:

> 0 1 2 3 4 5 6 7 8 9 >

Be to, galima nurodyti apatinę sekos ribą ir net sekos žingsnį, pridedant antrą ir trečią parametrą.

for i in range(4,10,2): #From 4 to 9 using a step of two print(i)

Išvestis:

> 4 6 8 >

xrange () funkcija

Dažniausiai xrange ir diapazonas yra visiškai vienodi funkcionalumo požiūriu. Jie abu suteikia galimybę sugeneruoti sveikųjų skaičių sąrašą, kad ir kaip norėtumėte. Vienintelis skirtumas yra tas, kad diapazonas pateikia Python sąrašo objektą, o xrange - xrange objektą. Tai reiškia, kad „xrange“ faktiškai nekuria statinio sąrašo, kaip tai daro diapazonas. Tai sukuria vertes, kiek jums jų reikia, naudojant specialią techniką, vadinamą rezultatu. Ši technika naudojama kartu su objekto tipu, vadinamu generatoriais.

Dar vienas dalykas, kurį reikia pridėti. „Python 3.x“ xrange funkcija nebeegzistuoja. Diapazono funkcija dabar daro tai, ką daro xrange „Python 2.x“

Kartoti reikšmes sąraše arba pakete

A = ["hello", 1, 65, "thank you", [2, 3]] for value in A: print(value)

Išvestis:

> hello 1 65 thank you [2, 3] >

Kartoti žodžių klavišus (dar žinomus kaip „hashmap“)

fruits_to_colors = {"apple": "#ff0000", "lemon": "#ffff00", "orange": "#ffa500"} for key in fruits_to_colors: print(key, fruits_to_colors[key])

Išvestis:

> apple #ff0000 lemon #ffff00 orange #ffa500 >

Kartoti per du to paties dydžio sąrašus vienoje kilpoje su funkcija zip ()

A = ["a", "b", "c"] B = ["a", "d", "e"] for a, b in zip(A, B): print a, b, a == b 

Išvestis:

> a a True b d False c e False >

Kartokite sąrašą ir gaukite atitinkamą indeksą naudodami funkciją „surašyti“ ()

A = ["this", "is", "something", "fun"] for index,word in enumerate(A): print(index, word)

Išvestis:

> 0 this 1 is 2 something 3 fun >

Įprastas naudojimo atvejis yra iteracija per žodyną:

for name, phonenumber in contacts.items(): print(name, "is reachable under", phonenumber)

Jei būtinai reikia pasiekti dabartinį indeksą savo iteracijos, ar ne naudoti range(len(iterable))! Tai yra labai bloga praktika ir paskatins jus sukrėsti vyresnius „Python“ kūrėjus. enumerate()Vietoj to naudokite įmontuotą funkciją :

for index, item in enumerate(shopping_basket): print("Item", index, "is a", item)

už / dar teiginius

„Pyhton“ leidžia jums naudoti kitą su kilpomis, kitas atvejis vykdomas, kai nebuvo įvykdyta nė viena kilpos kūno sąlyga. Norėdami naudoti kitą, turime naudoti breakteiginį, kad galėtume išsiveržti iš kilpos esant patenkintai sąlygai. Jei neišsiplieskime, kita dalis bus vykdoma.

week_days = ['Monday','Tuesday','Wednesday','Thursday','Friday'] today = 'Saturday' for day in week_days: if day == today: print('today is a week day') break else: print('today is not a week day')

Minėtu atveju išvestis bus, today is not a week daynes pertrauka cikle niekada nebus įvykdyta.

Kartokite per sąrašą naudodamiesi tiesioginės linijos funkcija

Mes taip pat galėtume pakartoti eilutę naudodami „python“, pavyzdžiui, jei mums reikia iš sąrašo visus žodžius įvesti iš didžiųjų raidžių, mes galime tiesiog atlikti šiuos veiksmus:

A = ["this", "is", "awesome", "shinning", "star"] UPPERCASE = [word.upper() for word in A] print (UPPERCASE)

Išvestis:

> ['THIS', 'IS', 'AWESOME', 'SHINNING', 'STAR'] >

Daugiau informacijos:

  • „Python2“, skirtas kilpos dokumentacijai
  • „Python3“, skirtas kilpos dokumentacijai