Lesson 08: Loops (Ciklai) [LTU] - CodeAcademy-Online/python-level-1 GitHub Wiki
ciklai
Python Python kalboje turim du primityvius ciklus:
while
ciklasfor
ciklas
while
ciklas
Naudodami while
ciklą, galime vykdyti logiką tol, kol sąlyga yra teisinga:
i = 0
while i < 10:
print(i)
i += 1
Pastaba: nepamirškite padidinti i
, kitaip ciklas tęsis amžinai.
infinite loop
)
Nesibaigiantys ciklai (Šis ciklas neleis naudotojui kaip argumentą perduoti tuščios vietos, visada lauks, kol bus kas nors įvesta:
while True:
user_input = input("Enter your name: ")
if len(user_input) != 0:
break
print(f"You entered {user_input }")
for
ciklas
for
ciklas naudojamas iteruojant seką (list
, tuple
, 'dict' ir t.t).
Python kalboje šis ciklas kiek skiriasi nuo kitų kalbų, pagal tai kaip aprašomos sąlygos, tačiau esminė logika išlieka ta pati - iteruoti per tam tikrą rinkinį objektų.
Naudodami for
ciklą galime atlikti keletą veiksmų, kiekvienam list
, tuple
, 'set' ir t.t elementui.
for
su list
names = ["Albert", "Tom", "Leonardo"]
for name in names:
print(f"Greetings, {name}")
for
su strings
name = "Code Academy"
for character in name :
print(character)
for
su dict
:
my_dict = {"name": "Albert", "role": "scientist"}
for key, value in my_dict.items():
print(key, value)
for
su sets
, tuples
:
names = ("Albert", "Tom", "Leonardo")
for name in names:
print(f"Greetings, {name}")
names = {"Albert", "Tom", "Leonardo"}
for name in names:
print(f"Greetings, {name}")
range()
funkcija
Funkcija range()
grąžina skaičių seką, kuri pagal numatytuosius parametrus prasideda nuo 0, didėja per 1 (arba pagal numatytą parametrą) ir sustoja prieš nurodytą skaičių.
Sintaksė
range(start, stop, step)
argumentas | reikšmė |
---|---|
start | Neprivaloma. Sveikasis skaičius, nurodantis, nuo kurios pozicijos pradėti. Numatytoji reikšmė yra 0 |
stop | Būtina. Sveikasis skaičius, nurodantis, kurioje pozicijoje reikia sustoti (neįskaičiuota). |
žingsnis | Neprivaloma. Sveikasis skaičius, nurodantis žingsnio didinimą. Numatytoji reikšmė yra 1 |
x = range(3, 6)
for n in x:
print(n)
for n in range(10):
print(n)
break
Naudodami break
komandą, galime sustabdyti ciklą, net jei tarkim, while
sąlyga yra teisinga:
Šiame pavyzdyje turime apibrėžti indeksuojantį kintamąjį i
, kurio pradinė reikšmė 0
.
i = 1
while i < 6:
print(i)
if i == 3:
break
i += 1
continue
Naudodami continue
galime sustabdyti dabartinę iteraciją ir pradėti kitą:
i = 0
while i < 6:
i += 1
if i == 3:
continue
print(i)
🧠 Pratimai
- Sukurkite kintamuosius, kuriuose reprezentuotų vartotojo vardą ir slaptažodį. Pradėkite begalinį ciklą, leidžiantį įvesti vartotojo vardą ir slaptažodį. Jei duomenys teisingi, sustabdykite begalinį ciklą ir išspausdinkite pasisveikinimo pranešimą.
- Leiskite naudotojui įvesti 10 sveikųjų skaičių, tada spausdinkite šių įvestų skaičių sumą ir vidurkį.
- Sugeneruokite
dict
iš 10 skaitmenų (keys
): 1,2,3...10. Kiekvienamkey
turėtų būti priskirta atsitiktinio sveikojo skaičiaus vertė nuo 1 iki 100. - Sukurkite PIN kodo nulaužimo programą. Tarkime, PIN kodą sudaro 4 atsitiktiniai skaitmenys. Reikšmę galite saugoti kintamajame. Tada sukurkite ciklą, einantį per visas galimas kombinacijas, kol rasite tą, kurią įvedėte.
- Sukurkite programą, kuri leistų naudotojui įvesti skaičių seriją ir apskaičiuotų visų skaičių vidurkį. Programa taip pat turėtų išspausdinti visų skaičių
list'a
ir vidurkį.