You are on page 1of 25

Ciklai Ciklas while

1
Apie ciklą while
● Dažniausiai naudojamas kai nežinome kiek kartų ciklas turėtų būti
vykdomas. Pavyzdžiui:
○ Nuskaitinėjame failą, tačiau nežinome kiek teksto eilučių jame
yra.
○ Bandome iš vartotojo gauti duomenis, tačiau nežinome iš
kelinto karto jis sugebės suvesti duomenis tvarkingai.
○ Vykdome skaičiavimus ir norime juos vykdyti iki kol pasieksime
tinkamą rezultatą.
○ …

2
Sintaksė
while patikrinimo_salyga: ● patikrinimo_salyga - jeigu ši sąlyga
grąžina True tipo atsakymą, tuomet
# vykdomas kodas jei sąlyga True ciklas vykdo iteraciją
● Ciklas vykdo tiek iteracijų kiek
patikrinimo_salyga vis dar grąžina True

3
Pavyzdys 1
# nuo 0 iki 5 su for 0
1
for skaicius in range(5): 2
print(skaicius) 3
4
# nuo 0 iki 5 su while 0
1
skaicius = 0 2
3
while skaicius < 5: 4
print(skaicius)
skaicius += 1

4
Pavyzdys 2
tekstas = 'sita teksta isvedame' sita teksta isvedame
kiek_liko = 4 sita teksta isvedame
sita teksta isvedame
while kiek_liko > 0: sita teksta isvedame
print(tekstas)
kiek_liko -= 1

5
Pavyzdys 3
prekiu_kiekis = 24 turimas prekiu kiekis: 24
Kiek norite nupirkti? 10
while prekiu_kiekis > 0: nupirkote: 10
print(f'turimas prekiu kiekis: {prekiu_kiekis}')
nupirkta = int( input('Kiek norite nupirkti? ') ) turimas prekiu kiekis: 14
print(f'nupirkote: {nupirkta} \n') Kiek norite nupirkti? 5
prekiu_kiekis -= nupirkta nupirkote: 5

turimas prekiu kiekis: 9


Kiek norite nupirkti? 7
nupirkote: 7

turimas prekiu kiekis: 2


Kiek norite nupirkti? 3
nupirkote: 3

6
Pavyzdys 4
prekiu_kiekis = 24 turimas prekiu kiekis: 24
Kiek norite nupirkti? 14
while prekiu_kiekis > 0: nupirkote: 14
print(f'turimas prekiu kiekis: {prekiu_kiekis}')
pirkimo_kiekis = int( input('Kiek norite nupirkti? ') ) turimas prekiu kiekis: 10
if pirkimo_kiekis > prekiu_kiekis: Kiek norite nupirkti? 7
pirkimo_kiekis = prekiu_kiekis nupirkote: 7
print(f'nupirkote: {pirkimo_kiekis} \n')
prekiu_kiekis -= pirkimo_kiekis turimas prekiu kiekis: 3
Kiek norite nupirkti? 5
nupirkote: 3

7
Pavyzdys 5
import random 7
46
while True: 78
skaicius = random.randint(1, 100) 7
print(skaicius) 59
85
if skaicius % 7 == 0 and skaicius % 2 == 0: 14
print(f'skaicius {skaicius} dalinasi is 7 ir is 2') skaicius 14 dalinasi is 7 ir is 2
break

8
Pavyzdys 6
import random 25
16
skaicius = 1 81
10
while skaicius % 7 != 0 or skaicius % 2 != 0: 88
skaicius = random.randint(1, 100) 43
print(skaicius) 2
25
46
41
42

9
Pavyzdys 7
kartoti = 't' Iveskite du norimus skaicius (atskiriant enter):
8
while kartoti == 't': 7
print("Iveskite du norimus skaicius (atskiriant enter):") 8 + 7 = 15
pirmas = int( input() ) Ar norite kartoti? (t/n): t
antras = int( input() ) Iveskite du norimus skaicius (atskiriant enter):
print(f'{pirmas} + {antras} = {pirmas + antras}') 3
kartoti = input('Ar norite kartoti? (t/n): ') 2
3 + 2 = 5
print('Pabaiga') Ar norite kartoti? (t/n): n
Pabaiga

10
Pavyzdys 8
while True: Iveskite du norimus skaicius (atskiriant enter):
print("Iveskite du norimus skaicius (atskiriant enter):") 5
pirmas = int( input() ) 8
antras = int( input() ) 5 + 8 = 13
print(f'{pirmas} + {antras} = {pirmas + antras}') Ar norite kartoti? (t/n): t
kartoti = input('Ar norite kartoti? (t/n): ') Iveskite du norimus skaicius (atskiriant enter):
if kartoti != 't': 1
print('Daugiau nebekartojama') 4
break 1 + 4 = 5
Ar norite kartoti? (t/n): n
print('Pabaiga') Daugiau nebekartojama
Pabaiga

11
Pavyzdys 9
pradzia, pabaiga = 1, 100 Iveskite skaiciu tarp [1-100]: 877
Iveskite skaiciu tarp [1-100]: -417
skaicius = 0 Iveskite skaiciu tarp [1-100]: 54
Pabaiga
while skaicius < pradzia or skaicius > pabaiga: Ivestas skaicius: 54
skaicius = int( input('Iveskite skaiciu tarp [1-100]: ') )

print('Pabaiga')
print('Ivestas skaicius:', skaicius)

12
Pavyzdys 10
pradzia, pabaiga = 1, 100 Iveskite skaiciu tarp [1-100]: 741
Blogas rezis!
skaicius = 0 Iveskite skaiciu tarp [1-100]: -785
Blogas rezis!
while skaicius < pradzia or skaicius > pabaiga: Iveskite skaiciu tarp [1-100]: 64
skaicius = int( input('Iveskite skaiciu tarp [1-100]: ') ) Pabaiga
if skaicius < pradzia or skaicius > pabaiga: Ivestas skaicius: 64
print('Blogas rezis!')

print('Pabaiga')
print('Ivestas skaicius:', skaicius)

13
Pavyzdys 11
pradzia, pabaiga = 1, 100 Iveskite skaiciu tarp [1-100]: 748
Blogas rezis!
skaicius = 0 Iveskite skaiciu tarp [1-100]: -75
Blogas rezis!
while True: Iveskite skaiciu tarp [1-100]: 5
skaicius = int( input('Iveskite skaiciu tarp [1-100]: ') ) Pabaiga
if skaicius < pradzia or skaicius > pabaiga: Ivestas skaicius: 5
print('Blogas rezis!')
else:
break

print('Pabaiga')
print('Ivestas skaicius:', skaicius)

14
Pavyzdys 12
import random 4 lyginis
3
lyginiu_suma = 0 4 lyginis
lyginiu_kiekis = 0 7
1
while lyginiu_kiekis < 5: 1
skaicius = random.randint(1, 10) 7
if skaicius % 2 == 0: 6 lyginis
print(skaicius, 'lyginis') 10 lyginis
lyginiu_kiekis += 1 2 lyginis
lyginiu_suma += skaicius rasta lyginiu suma: 26
else:
print(skaicius)

print('rasta lyginiu suma:', lyginiu_suma)

15
Pavyzdys 13
import random Spekite skaiciu tarp 1 ir 10: 5
Spekite skaiciu tarp 1 ir 10: 1
slaptas = random.randint(1, 10) Spekite skaiciu tarp 1 ir 10: 2
spejimas = None Spekite skaiciu tarp 1 ir 10: 3
Spekite skaiciu tarp 1 ir 10: 4
while slaptas != spejimas: Spekite skaiciu tarp 1 ir 10: 6
spejimas = int(input('Spekite skaiciu tarp 1 ir 10: ')) Spekite skaiciu tarp 1 ir 10: 7
Spekite skaiciu tarp 1 ir 10: 8

16
Pavyzdys 14
import random Spekite skaiciu tarp 1 ir 10: 5
Deja nepavyko, bandykite dar karta
slaptas = random.randint(1, 10) Spekite skaiciu tarp 1 ir 10: 4
spejimas = None Deja nepavyko, bandykite dar karta
Spekite skaiciu tarp 1 ir 10: 3
while slaptas != spejimas: Deja nepavyko, bandykite dar karta
spejimas = int(input('Spekite skaiciu tarp 1 ir 10: ')) Spekite skaiciu tarp 1 ir 10: 2
if slaptas != spejimas: Deja nepavyko, bandykite dar karta
print('Deja nepavyko, bandykite dar karta') Spekite skaiciu tarp 1 ir 10: 1
else: Laimejote!
print('Laimejote!')

17
Pavyzdys 15
import random Spekite skaiciu tarp 1 ir 10: 5
Bandykite mazesni
slaptas = random.randint(1, 10) Spekite skaiciu tarp 1 ir 10: 3
spejimas = None Bandykite mazesni
Spekite skaiciu tarp 1 ir 10: 1
while slaptas != spejimas: Bandykite didesni
spejimas = int(input('Spekite skaiciu tarp 1 ir 10: ')) Spekite skaiciu tarp 1 ir 10: 2
if slaptas > spejimas: Atspejote!
print('Bandykite didesni')
elif slaptas < spejimas:
print('Bandykite mazesni')
else:
print('Atspejote!')

18
Pavyzdys 16
pazymiu_suma = 0 Iveskite pazymi: 7
pazymiu_kiekis = 0 Ar dar norite ivesti? (t/n) t
Iveskite pazymi: 9
dar_ivesti = 't' Ar dar norite ivesti? (t/n) t
Iveskite pazymi: 10
while dar_ivesti == 't': Ar dar norite ivesti? (t/n) n
pazymys = int(input('Iveskite pazymi: ')) Suvestu pazymiu vidurkis: 8.7
pazymiu_suma += pazymys
pazymiu_kiekis += 1
dar_ivesti = input('Ar dar norite ivesti? (t/n) ')

vidurkis = round(pazymiu_suma / pazymiu_kiekis, 1)


print('Suvestu pazymiu vidurkis:', vidurkis)

19
Pavyzdys 17
pazymiu_suma = 0 Iveskite tiek pazymiu kiek norite (atskiriant
pazymiu_kiekis = 0 enter)
Norint baigti irasykite 0
pazymys = -1 Iveskite pazymi: 7
Iveskite pazymi: 7
print('Iveskite tiek pazymiu kiek norite (atskiriant enter)') Iveskite pazymi: 8
print('Norint baigti irasykite 0') Iveskite pazymi: 0
Suvestu pazymiu vidurkis: 7.3
while pazymys != 0:
pazymys = int(input('Iveskite pazymi: '))
if pazymys != 0:
pazymiu_suma += pazymys
pazymiu_kiekis += 1

vidurkis = round(pazymiu_suma / pazymiu_kiekis, 1)


print('Suvestu pazymiu vidurkis:', vidurkis)
20
Užduotys (1/5)

1. Išveskite visus skaičius nuo 1 iki 20.


2. Išveskite visus skaičius nuo 1 iki 50. Prie kiekvieno lyginio skaičiaus
parašykite žodį "lyginis", o prie kiekvieno nelyginio – "nelyginis".
3. Išveskite visus skaičius nuo 25 iki 50. Vietoj skaičių, kurie dalinasi iš 3
išveskite tekstą "dalinasi iš 3".
4. Išveskite visus skaičius nuo 1 iki 100 arba iki tol kol pasitaikys toks, kuris
dalinasi iš 7.
5. Išvedinėkite visus skaičius nuo 1 iki tol kol pasitaikys skaičius, kuris
dalinasi iš 3 ir iš 5. 21
Užduotys (2/5)

6. Vartotojas turi suvesti rėžių pradžią ir pabaigą. Tačiau jūs turite patikrinti ar
nurodyti rėžiai yra geri (pradžia mažesnė už pabaigą). Liepkite vartotojui kartoti
įvedimą tol, kol rėžiai jau bus įvesti tinkamai. Turint tinkamus rėžius, išveskite visus
skaičius nuo rėžių pradžios iki pabaigos (šitam jau vietoj while galite naudoti for
ciklą), šalia kiekvieno skaičiaus išvedant jo kvadratą, bei ar jis lyginis / nelyginis.
7. Išveskite visus skaičius nuo 1 iki kol pasitaikys toks, kuris yra pirminis ir yra didesnis
nei 20.
8. Liepkite vartotojui įvedinėti bet kokius skaičius. Vykdykite įvedinėjimą iki kol įvestas
skaičius bus lygus 0. Raskite įvestų skaičių sumą.
22
Užduotys (3/5)

9. Leiskite vartotojui atlikti norimus skaičiavimus tiek kartų kiek jis nori. Pavyzdžiui,
leiskite vartotojui įvesti du skaičius, tuomet jam parodykite pačius skaičius,
veiksmus (sudėtis, atimtis, daugyba, dalyba) ir suskaičiuotus atsakymus (5 + 3 = 8; 5
- 3 = 2; ...). Kai atsakymai bus parodyti, vartotojas turi turėti galimybę pakartoti
skaičiavimus, todėl leiskite pasirinkti ar dar kartoti veiksmą, ar jau programa turėtų
baigti savo darbą.
10. Vartotojui išveskite pasirinkto skaičiaus daugybos lentelę (pvz, skaičiaus 5
daugybos lentelė būtų 5 * 1 = 5; 5 * 2 = 10; 5 * 3 = 15; ...). Leiskite vartotojui kartoti
veiksmą (tiek kartų kiek norės) ir gauti dar vieną daugybos lentelę su kitu pasirinktu
skaičiumi. 23
Užduotys (4/5)

11.Liepkite vartotojui įvesti kiek jis nori skaičių. Įvedimą sustabdykite tuomet,
kai vartototojas įves 0 ar -1, ar kitą jūsų pasirinktą skaičių ar simbolį.
Raskite vartotojo įvestų skaičių sumą, vidurkį.
12.Sukurkite studentų pažymių vidurkių skaičiuoklę (kaip pavyzdį galite
naudoti 17-ą pavyzdį). Tačiau tokia skaičiuoklė turėtų leisti skaičiuoti
vidurkį ne tik iš vieno studento pažymių, bet leistų pakartoti pažymių
įvedimą ir vidurkio skaičiavimą ant tiek studentų kiek reikia.

24
Užduotys (5/5)
13.Sukurkite skaičiaus atspėjimo užduotį. Leiskite vartotojui pasirinkti
žaidimo sudėtingumą (atsitiktinio skaičiaus rėžiai), ar suteikiamos
pagalbos (skaičius mažesnis / didesnis nei spėjamas), kiek spėjimų
leidžiama (neribotai, arba pvz iki 10 ėjimų), bei kiti pasirinkti parametrai.
Vartotojas šiuos parametrus pasirenka žaidimo pradžioje. Turite užtikrinti,
kad vartotojas pasirinko parametrus tik iš galimų - jeigu ne, liepkite
įvedimą pakartoti.

25

You might also like