# Ciklas for
# Apie ciklą for
Šis ciklas dažniausiai naudojamas kai yra žinoma kiek kartų jis turi būti vykdomas arba kai yra iteruojamas objektas (skaičių sąrašas, elementų rinkinys, ...).
# Sintaksė
for elementas in iteruojamas_objektas:
# vykdomas kodas
- iteruojamas_objektas - elementų rinkinys, sąrašas ir pan. - tai pro ką mes iteruojame su ciklu
- elementas - vienas elementas, viena dalis, iš iteruojamas_objektas
iteruojamas_objektas:
[40, 32, 73]
"labas"
range(1, 10)
# Pavyzdžiai (1)
# Pavyzdys 1
Kodas:
print('labas')
print('labas')
print('labas')
print()
# ta pati atliks ir sitas ciklas:
for sk in range(3):
print('labas')
Rezultatas:
labas
labas
labas
labas
labas
labas
# Pavyzdys 2
Kodas:
print('eilute nr 1')
print('eilute nr 2')
print('eilute nr 3')
print('eilute nr 4')
print()
for i in range(1, 5):
print(f'eilute nr {i}')
Rezultatas:
eilute nr 1
eilute nr 2
eilute nr 3
eilute nr 4
eilute nr 1
eilute nr 2
eilute nr 3
eilute nr 4
# Pavyzdys 3
Kodas:
for i in range(5):
print(i)
Rezultatas:
0
1
2
3
4
# Pavyzdys 4
Kodas:
for i in range(0, 5):
print(i)
Rezultatas:
0
1
2
3
4
# Pavyzdys 5
Kodas:
for i in range(1, 6):
print(i)
Rezultatas:
1
2
3
4
5
# Pavyzdys 6
Kodas:
for i in range(5):
print(i+1)
Rezultatas:
1
2
3
4
5
# Pavyzdys 7
Kodas:
for sk in range(5, 11):
print(f'skaicius: {sk}')
Rezultatas:
skaicius: 5
skaicius: 6
skaicius: 7
skaicius: 8
skaicius: 9
skaicius: 10
# Pavyzdys 8
Kodas:
for i in range(5, 16):
print(f'skaicius i = {i}')
Rezultatas:
skaicius i = 5
skaicius i = 6
skaicius i = 7
skaicius i = 8
skaicius i = 9
skaicius i = 10
skaicius i = 11
skaicius i = 12
skaicius i = 13
skaicius i = 14
skaicius i = 15
# Pavyzdys 9
Kodas:
for skaicius in range(2, 11):
if skaicius % 2 == 0:
print(f'skaicius {skaicius} yra lyginis')
Rezultatas:
skaicius 2 yra lyginis
skaicius 4 yra lyginis
skaicius 6 yra lyginis
skaicius 8 yra lyginis
skaicius 10 yra lyginis
# Pavyzdys 10
Kodas:
for skaicius in range(2, 11, 2):
print(f'skaicius {skaicius} yra lyginis')
Rezultatas:
skaicius 2 yra lyginis
skaicius 4 yra lyginis
skaicius 6 yra lyginis
skaicius 8 yra lyginis
skaicius 10 yra lyginis
# Pavyzdys 11
Kodas:
for sk in range(1, 13):
if sk % 2 == 0 or sk % 5 == 0:
print(f'skaicius {sk} dalinasi is 2 arba 5')
Rezultatas:
skaicius 2 dalinasi is 2 arba 5
skaicius 4 dalinasi is 2 arba 5
skaicius 5 dalinasi is 2 arba 5
skaicius 6 dalinasi is 2 arba 5
skaicius 8 dalinasi is 2 arba 5
skaicius 10 dalinasi is 2 arba 5
skaicius 12 dalinasi is 2 arba 5
# Pavyzdys 12
Kodas:
kiek = 5
for i in range(kiek):
print(i)
Rezultatas:
0
1
2
3
4
# Pavyzdys 13
Kodas:
pradzia = 7
pabaiga = 10
for i in range(pradzia, pabaiga + 1):
print(f'skaicius {i}')
Rezultatas:
skaicius 7
skaicius 8
skaicius 9
skaicius 10
# Pavyzdys 14
Kodas:
pradzia, pabaiga = 7, 10
for i in range(pradzia, pabaiga + 1):
print(f'skaicius {i}')
Rezultatas:
skaicius 7
skaicius 8
skaicius 9
skaicius 10
# Pavyzdys 15
Kodas:
for raide in "mano tekstas":
print(raide)
Rezultatas:
m
a
n
o
t
e
k
s
t
a
s
# Pavyzdys 16
Kodas:
tekstas = 'obelis'
for r in tekstas:
print(r * 10)
Rezultatas:
oooooooooo
bbbbbbbbbb
eeeeeeeeee
llllllllll
iiiiiiiiii
ssssssssss
# Pavyzdys 17
Kodas:
for el in [7, 4, 5, 32, 14, 78]:
print(el)
Rezultatas:
7
4
5
32
14
78
# Pavyzdys 18
Kodas:
for i in range(1, 4):
print('pirmo ciklo pradzia, i =', i)
for j in range(1, 4):
print('antras ciklas, j =', j)
print('pirmo ciklo iteracijos pabaiga')
Rezultatas:
pirmo ciklo pradzia, i = 1
antras ciklas, j = 1
antras ciklas, j = 2
antras ciklas, j = 3
pirmo ciklo iteracijos pabaiga
pirmo ciklo pradzia, i = 2
antras ciklas, j = 1
antras ciklas, j = 2
antras ciklas, j = 3
pirmo ciklo iteracijos pabaiga
pirmo ciklo pradzia, i = 3
antras ciklas, j = 1
antras ciklas, j = 2
antras ciklas, j = 3
pirmo ciklo iteracijos pabaiga
# Pavyzdys 19
Kodas:
for raide in "azuolas":
if raide == "l":
break
print(raide)
print("pabaiga")
Rezultatas:
a
z
u
o
pabaiga
# Pavyzdys 20
Kodas:
for raide in "azuolas":
if raide == "l":
continue
print(raide)
print("pabaiga")
Rezultatas:
a
z
u
o
a
s
pabaiga
# Užduotys (1)
# Užduotis 1
Su for pagalba penkis kartus išveskite savo vardą.
# Užduotis 2
Parašyti for, kuris išvestų kiekvieną skaičių pradedant nuo 0 ir baigiant 10.
# Užduotis 3
Parašyti for, kuris išvestų kas antrą skaičių pradedant 0 ir baigiant 15.
# Užduotis 4
Parašyti for, kuris išvestų kas trečią skaičių, pradedant 1 ir baigiant 20. Kiekvieną skaičių apskliausti laužtiniais skliaustais. Pvz.: [1][4][7]...
# Užduotis 5
Parašyti for, kuris eitų pro kiekvieną skaičių nuo 1 iki 20. Jame apsirašyti if sąlygą, kuri patikrintų ar dabartinis skaičius dalinasi iš 4, jei taip tai šį skaičių išvesti.
# Užduotis 6
Išveskite visus skaičius nuo 1 iki 15, prie kiekvieno jų nurodant tai lyginis ar nelyginis skaičius. Pvz:
1 - nelyginis
2 - lyginis
3 - nelyginis
...
# Užduotis 7
Susikurkite kintamuosius rėžių pradžiai ir pabaigai nusakyti. Patikrinkite, kad tai būtų validu (pradžia turi būti mažesnė nei pabaiga). Jei rėžiai tinkami, tuomet vykdyti for, kuris atskirose eilutėse išvestų kiekvieną skaičių iš tų rėžių, bei atskiriant tarpu - tų skaičių kvadratus.
# Užduotis 8
Susikurkite kintamuosius rėžių pradžiai ir pabaigai nusakyti. Patikrinkite, kad tai būtų validu (pradžia turi būti mažesnė nei pabaiga). Jei rėžiai tinkami, tuomet vykdyti for, kuris iš duotų skaičių išvestų visus nelyginius skaičius arba tuos, kurie dalinasi iš 8.
# Užduotis 9
Leiskite vartotojui įvesti savo vardą. Ciklą for vykdykite tiek kartų kiek tame varde yra raidžių. Visais atvejais išveskite tą patį pasisveikinimą, pavyzdžiui "Labas, Ieva" (ši eilutė kartotųsi 4 kartus).
# Užduotis 10
Susikurkite tokį ciklą: for elementas in [88, 65, 21, 26, 47]
Iš duotų skaičių išveskite visus skaičius, kurie yra lyginiai.
# Užduotis 11
Leiskite vartotojui nurodyti rėžių pradžią, pabaigą, žingsnį. Taip pat, kokius skaičius jis nori matyti (lyginius ar nelyginius). Patikrinkite ar rėžiai tinkami, jei taip vykdykite ciklą, kuris eitų per nurodytą rėžių, darant atitinkamą žingsnį. Išveskite tik tokius skaičius kokius vartotojas pasirinko (lyginius arba nelyginius).
# Užduotis 12
Su for pagalba, pamėginkite išvesti tokią eglutę:
*
**
***
****
*****
(papildomai) leiskite vartotojui pasirinkti kokio dydžio eglutė turėtų būti išvesta.
# Užduotis 13
Leiskite vartotojui įvesti bet kokį žodį, bei pasirinkti po kiek kartų turėtų būti pakartojama kiekviena raidė. Su ciklo pagalba išveskite kiekvieną raidę iš žodžio atskiroje eilutėje, taip pat, tą raidę eilutėje kartokite tiek kartų kiek pasirinko vartotojas (16 pvz).
# Užduotis 14
(papildomai, sunkiau) Be daugybos veiksmo programoje, sudauginkite du skaičius.
# Pavyzdžiai (2)
# Pavyzdys 21
Kodas:
suma = 0
for i in range(10):
suma += i
print(f'gauta suma: {suma}')
Rezultatas:
gauta suma: 45
# Pavyzdys 22
Kodas:
suma = 0
for i in range(10):
if i % 2 == 0:
suma += i
print(f'lyginiu suma: {suma}')
Rezultatas:
lyginiu suma: 20
# Užduotys (2)
# Užduotis 15
Raskite visų skaičių nuo 1 iki 100 sumą.
# Užduotis 16
Raskite visų lyginių skaičių nuo 20 iki 50 sumą.
# Užduotis 17
Raskite visų nelyginių skaičių nuo 30 iki 60 sumą.
# Užduotis 18
Rasti visų skaičių, žemesnių už 1000 ir kurie dalinasi iš 3 arba 5, sumą. Pavyzdys:
- Visi skaičiai mažesni už 10 ir kurie dalinasi iš 3 arba 5 yra: 3, 5, 6, 9.
- Šių skaičių suma yra 23.
Turite gauti 233168 atsakymą.
# Užduotis 19
The "Fizz-Buzz test" is an interview question designed to help filter out the 99.5% of programming job candidates who can't seem to program their way out of a wet paper bag. The text of the programming assignment is as follows:
"Write a program that prints the numbers from 1 to 100. But for multiples of three print "Fizz" instead of the number and for the multiples of five print "Buzz". For numbers which are multiples of both three and five print "FizzBuzz"."
# Užduotis 20
(sunkesnė) Parašyti for ciklą, kuris išvestų norimą kiekį fibonačiaus skaičių į ekraną. Fibonačiaus sekoje kiekvienas skaičius yra lygus prieš jį ėjusių dviejų skaičių sumai: 1, 1, 2, 3, 5, 8, 13, 21...
Galite remtis šiais žingsniais, bet nebūtinai:
- Susikurkite tris sveikųjų skaičių kintamuosius, kurie jums padės tai pasiekti.
- Pirmi du kintamieji saugos paskutinius du skaičius.
- Trečiasis bus šių pirmų dviejų skaičių suma.
- Pirmus du skaičius išveskite ne cikle, o prieš jį ir ciklą pradėkite vykdyti nuo 2, o ne nuo 0.
- Kiekvieno ciklo metu turite perskaičiuot trečiąjį skaičių (pirmų dviejų skaičių sudėtis), tuomet pirmasis skaičius yra lygus antram, o antrasis lygus trečiam, išvesti į ekraną trečią skaičių.
← Ciklai Ciklas while →