Knyga/Ciklai For
Ciklas for

Jei tau reikia atspausdinti skaičius nuo 1 iki 10. Gali tai padaryti 10 kartų parašydamas print komandą. Bet tai galima padaryti daug efektyviau. Ir štai naujas spausdinimo būdas:
nuo_vieno_iki_dešimt = range(1, 11)
for skaičius in nuo_vieno_iki_dešimt:
print(skaičius)
ir kodo išvestis būtų tokia:
1 2 3 4 5 6 7 8 9 10
Išvestis atrodo labai pažįstama, tačiau programos kodas atrodo kitaip. Pirmoje eilutėje naudojama funkcija range. Funkcija range naudoja du argumentus, tokius kaip šie range(pradžia, pabaiga), kurie nurodo intervalo galus. pradžia yra pirmasis intervalo skaičius. pabaiga yra vienu didesnis nei paskutinis intervalo skaičius. Atkreipk dėmesį, kad šį kodą galima parašyti ir trumpiau:
for skaičius in range(1, 11):
print(skaičius)
Kitas būdas naudoti for ciklą yra norint ką nors padaryti tam tikrą skaičių kartų. Štai trumpas kodas, kaip atspausdinti pirmuosius 20 Fibonačio sekos skaičius:
a = 1
b = 1
for c in range(1, 21):
print(a, end=" ")
n = a + b
a = b
b = n
su rezultatu:
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765
Viskas, ką galima padaryti naudojant for ciklą, taip pat gali būti padaryta naudojant while ciklą, su kuriuos susipažinsi sekančiame skyriuje, bet for ciklas suteikia lengvesnį būdą pereiti ką nors padaryti tam tikrą žinomą skaičių kartų.
Pratimai
1. Parašyk programą, kuri atspausdintų eglutę, pagal vartotojo įvesta eglutės aukštį.
Pvz. Įvestis = 3
Išvestis:
* ** ***
| Sprendimas | |
|---|---|
def spausdintiEglutę(aukstis):
for i in range(1, aukstis + 1):
print('*'*i)
spausdintiEglutę(3)
| |
2. Parašyk programą, kuri prašytų vartotojo įvesti skaičių ir išspausdintų to skaičiaus daugybos lentelę iki 10.
| Sprendimas | |
|---|---|
def daugybos_lentelė(skaičius):
for indeksas in range(1, 11):
print (skaičius, " * ", indeksas, " = ", skaičius * indeksas)
įvestas_skaičius = int(input("Įvesk skaičių: "))
daugybos_lentelė(įvestas_skaičius)
| |
3. Parašyk programą, kuri paprašytų sukurti stiprų slaptažodį. Reikalavimai stipriam slaptažodžiui:
- Jis turėtų būti sudarytas iš daugiau nei 6 simbolių
- Jis turėtų turėti bent vieną skaitmenį
- Jis turėtų turėti bent vieną specialų simbolį iš šio sąrašo: !#$?
Programa turėtų išvesti, ar slaptažodis pakankamai stiprus, ar ne.
| Sprendimas | |
|---|---|
def ar_turi_skaičių(slaptažodis):
skaičiai = "0123456789"
rezultatas = False
for raidė in slaptažodis:
if raidė in skaičiai:
rezultatas = True
break
return rezultatas
def ar_turi_simbolį(slaptažodis):
simboliai = "!#$?"
rezultatas = False
for raidė in slaptažodis:
if raidė in simboliai:
rezultatas = True
break
return rezultatas
def ar_slaptažodis_stiprus(slaptažodis):
ar_užtenka_simbolių = len(slaptažodis) > 6
ar_yra_skaitmuo = ar_turi_skaičių(slaptažodis)
ar_yra_simbolis = ar_turi_simbolį(slaptažodis)
return ar_užtenka_simbolių and ar_yra_skaitmuo and ar_yra_simbolis
įvestas_slaptažodis = input("Įvesk slaptažodį: ")
ar_stiprus = ar_slaptažodis_stiprus(įvestas_slaptažodis)
if ar_stiprus:
print ("Slaptažodis pakankamai stiprus")
else:
print ("Slaptažodis nepakankamai stiprus")
| |