Knyga/Ciklai For: Skirtumas tarp puslapio versijų
Nėra keitimo santraukos |
Nėra keitimo santraukos |
||
| (nerodoma viena tarpinė versija, sukurta vieno naudotojo) | |||
| 1 eilutė: | 1 eilutė: | ||
{{navigation |previous=Loginiai reiškiniai |next=Suskaičiuoti iki 10}} | {{navigation |previous=Loginiai reiškiniai |next=Suskaičiuoti iki 10}} | ||
=== Ką išmoksi šiame skyriuje? === | |||
* Kaip veikia ciklas <code>for</code> | |||
* Kaip naudoti <code>range()</code> funkciją su vienu, dviem ar trim argumentais | |||
* Kaip pasikartojančiai vykdyti tą patį veiksmą | |||
* Kaip naudoti ciklą tam tikrą skaičių kartų | |||
* Kaip filtruoti reikšmes cikle naudojant <code>if</code> | |||
* Kaip generuoti skaičių sekas ir jų intervalus | |||
* Kaip pritaikyti <code>for</code> praktinėms užduotims (pvz., lentelėms, skaičiavimams) | |||
[[Vaizdas:Ff78cef7-79a9-4fe0-8d8a-a33766249c4d 2.png|center|frameless|940x940px|Ciklai]] | |||
=== Ciklas <code>for</code> === | === Ciklas <code>for</code> === | ||
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: | 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: | ||
<syntaxhighlight lang="python"> | <syntaxhighlight lang="python"> | ||
| 23 eilutė: | 34 eilutė: | ||
10 | 10 | ||
Išvestis atrodo labai pažįstama, tačiau programos kodas atrodo kitaip. Pirmoje eilutėje naudojama funkcija <code>range</code>. Funkcija <code>range</code> naudoja du argumentus, tokius kaip šie <code>range(pradžia, pabaiga)</code>, kurie nurodo intervalo galus. <code>pradžia</code> yra pirmasis intervalo skaičius. <code>pabaiga</code> yra vienu didesnis nei paskutinis intervalo skaičius. Atkreipk dėmesį, kad šį kodą galima parašyti ir trumpiau: | Išvestis atrodo labai pažįstama, tačiau programos kodas atrodo kitaip. Pirmoje eilutėje naudojama funkcija <code>range</code>. Funkcija <code>range</code> naudoja du argumentus, tokius kaip šie <code>range(pradžia, pabaiga)</code>, kurie nurodo intervalo galus. <code>pradžia</code> yra pirmasis intervalo skaičius. <code>pabaiga</code> yra vienu didesnis nei paskutinis intervalo skaičius. Tai reiškia, kad jei nori spausdinti iki 10, turi rašyti <code>range(1, 11)</code>, nes paskutinis skaičius neįtraukiamas. Atkreipk dėmesį, kad šį kodą galima parašyti ir trumpiau: | ||
<syntaxhighlight lang="python"> | <syntaxhighlight lang="python"> | ||
for skaičius in range(1, 11): | for skaičius in range(1, 11): | ||
| 58 eilutė: | 69 eilutė: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Šį uždavinį galime išspręsti kitu būdu. Tam galime pasinaudoti dar viena <code>range</code> funkcijos savybe. Funkcijai range galime paduoti trečią parametrą. Trečias parametras naudojamas sekančio sekos nario generavimui, jis nurodo kiek | Šį uždavinį galime išspręsti kitu būdu. Tam galime pasinaudoti dar viena <code>range</code> funkcijos savybe. Funkcijai range galime paduoti trečią parametrą. Trečias parametras naudojamas sekančio sekos nario generavimui, jis nurodo kiek padidėja sekančio elemento reikšmė Pavyzdžiui: | ||
<code>for i in range(1,10)</code> kintamasis i įgaus reikšmes | <code>for i in range(1,10)</code> kintamasis i įgaus reikšmes: 1,2,3,4,5,6,7,8,9 | ||
<code>for i in range(1,10,2)</code> kintamasis i įgaus reikšmes | <code>for i in range(1,10,2)</code> kintamasis i įgaus reikšmes: 1,3,5,7,9 | ||
<code>for i in range(2,10,2)</code> kintamasis i įgaus reikšmes | <code>for i in range(2,10,2)</code> kintamasis i įgaus reikšmes: 2,4,6,8 | ||
<code>for i in range(0,30,5)</code> kintamasis i įgaus reikšmes | <code>for i in range(0,30,5)</code> kintamasis i įgaus reikšmes: 0,5,10,15,20,25 | ||
Tad anksčiau minėtą užduotį galime išspręsti šitaip: | Tad anksčiau minėtą užduotį galime išspręsti šitaip: | ||
| 80 eilutė: | 91 eilutė: | ||
Viskas, ką galima padaryti naudojant <code>for</code> ciklą, taip pat gali būti padaryta naudojant <code>while</code> ciklą, bet <code>for</code> ciklas suteikia lengvą būdą pereiti per visus sąrašo elementus arba ką nors padaryti tam tikrą skaičių kartų. | Viskas, ką galima padaryti naudojant <code>for</code> ciklą, taip pat gali būti padaryta naudojant <code>while</code> ciklą, bet <code>for</code> ciklas suteikia lengvą būdą pereiti per visus sąrašo elementus arba ką nors padaryti tam tikrą skaičių kartų. | ||
=== Pratimai === | === Pratimai === | ||
1. Parašyk programą, kuri atspausdintų eglutę, pagal vartotojo įvesta eglutės aukštį. | 1. Parašyk programą, kuri atspausdintų eglutę, pagal vartotojo įvesta eglutės aukštį. | ||
| 128 eilutė: | 135 eilutė: | ||
daugybos_lentelė(įvestas_skaičius) | daugybos_lentelė(įvestas_skaičius) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| | |||
|- | |- | ||
|} | |} | ||
3. Parašyk programą, kuri | 3. Parašyk programą, kuri atspausdintų visus nelyginius skaičius nuo 1 iki n. Skaičių n turi įvesti vartotojas | ||
{| class="mw-collapsible mw-collapsed wikitable" | |||
! colspan="2" | Sprendimas | |||
|- | |||
| | |||
<syntaxhighlight lang="python"> | |||
n = int(input("Pasirink skaičių n")) | |||
for i in range(1,n,2): | |||
print (i) | |||
</syntaxhighlight> | |||
| | |||
|- | |||
| | |||
|} | |||
4. Parašyk programą, kuri suskaičiuotų visų teigiamų nelyginių skaičių sumą | |||
{| class="mw-collapsible mw-collapsed wikitable" | {| class="mw-collapsible mw-collapsed wikitable" | ||
| 144 eilutė: | 161 eilutė: | ||
| | | | ||
<syntaxhighlight lang="python"> | <syntaxhighlight lang="python"> | ||
suma = 0 | |||
#Pirmas dviženklis nelyginis skaičius yra 11, sekančius skaičius randame didindami per 2 | |||
for i in range(11,100,2): | |||
kvadratas = i*i | |||
suma += kvadratas | |||
print (suma) | |||
</syntaxhighlight> | </syntaxhighlight> | ||
| | |||
|- | |- | ||
| | |||
|} | |} | ||
{{navigation |previous=Loginiai reiškiniai |next=Suskaičiuoti iki 10}} | {{navigation |previous=Loginiai reiškiniai |next=Suskaičiuoti iki 10}} | ||
[[Category:Python Vadovėlis]] | [[Category:Python Vadovėlis]] | ||
Dabartinė 15:39, 5 rugpjūčio 2025 versija
Ką išmoksi šiame skyriuje?
- Kaip veikia ciklas
for - Kaip naudoti
range()funkciją su vienu, dviem ar trim argumentais - Kaip pasikartojančiai vykdyti tą patį veiksmą
- Kaip naudoti ciklą tam tikrą skaičių kartų
- Kaip filtruoti reikšmes cikle naudojant
if - Kaip generuoti skaičių sekas ir jų intervalus
- Kaip pritaikyti
forpraktinėms užduotims (pvz., lentelėms, skaičiavimams)

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. Tai reiškia, kad jei nori spausdinti iki 10, turi rašyti range(1, 11), nes paskutinis skaičius neįtraukiamas. Atkreipk dėmesį, kad šį kodą galima parašyti ir trumpiau:
for skaičius in range(1, 11):
print(skaičius)
range funkcija grąžina iteraciją (proceso kartojimas skirtas rezultatų sekos generavimui).
Kitas būdas naudoti for ciklą yra norint ką nors padaryti tam tikrą skaičių kartų. Štai trumpas kodas, kaip atspausdinti pirmuosius 9 „Fibonacci“ serijos skaičius:
a = 1
b = 1
for c in range(1, 10):
print(a, end=" ")
n = a + b
a = b
b = n
su stebėtinu rezultatu:
1 1 2 3 5 8 13 21 34
Pabandykime išspręsti kitą užduotį. Užduoties tikslas - išvesti visus lyginius skaičius mažesnius už n. Kur n - vartotojo įvedamas skaičius. Pirmasis būdas tai realizuoti yra cikle patikrinti ar skaičius lyginis. Tai darome patikrindami kad skaičiaus dalybos iš 2 liekana yra lygi 0. Štai programos kodas:
n = int(input("Pasirink skaičių n"))
for i in range(1,n):
# Patikriname ar skaičius lyginis
if i%2==0:
print (i)
Šį uždavinį galime išspręsti kitu būdu. Tam galime pasinaudoti dar viena range funkcijos savybe. Funkcijai range galime paduoti trečią parametrą. Trečias parametras naudojamas sekančio sekos nario generavimui, jis nurodo kiek padidėja sekančio elemento reikšmė Pavyzdžiui:
for i in range(1,10) kintamasis i įgaus reikšmes: 1,2,3,4,5,6,7,8,9
for i in range(1,10,2) kintamasis i įgaus reikšmes: 1,3,5,7,9
for i in range(2,10,2) kintamasis i įgaus reikšmes: 2,4,6,8
for i in range(0,30,5) kintamasis i įgaus reikšmes: 0,5,10,15,20,25
Tad anksčiau minėtą užduotį galime išspręsti šitaip:
n = int(input("Pasirink skaičių n"))
for i in range(2,n,2):
print (i)
Viskas, ką galima padaryti naudojant for ciklą, taip pat gali būti padaryta naudojant while ciklą, bet for ciklas suteikia lengvą būdą pereiti per visus sąrašo elementus arba ką nors padaryti tam tikrą 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 atspausdintų visus nelyginius skaičius nuo 1 iki n. Skaičių n turi įvesti vartotojas
| Sprendimas | |
|---|---|
n = int(input("Pasirink skaičių n"))
for i in range(1,n,2):
print (i)
|
|
4. Parašyk programą, kuri suskaičiuotų visų teigiamų nelyginių skaičių sumą
| Sprendimas | |
|---|---|
suma = 0
#Pirmas dviženklis nelyginis skaičius yra 11, sekančius skaičius randame didindami per 2
for i in range(11,100,2):
kvadratas = i*i
suma += kvadratas
print (suma)
|
|