<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="lt">
	<id>https://wiki.angis.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Rokas</id>
	<title>wiki.angis.net - Naudotojo indėlis [lt]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.angis.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Rokas"/>
	<link rel="alternate" type="text/html" href="https://wiki.angis.net/w/Specialus:Ind%C4%97lis/Rokas"/>
	<updated>2026-05-03T09:48:37Z</updated>
	<subtitle>Naudotojo indėlis</subtitle>
	<generator>MediaWiki 1.35.0</generator>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Suskai%C4%8Diuoti_iki_10&amp;diff=4000</id>
		<title>Python Vadovėlis/Suskaičiuoti iki 10</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Suskai%C4%8Diuoti_iki_10&amp;diff=4000"/>
		<updated>2022-05-27T16:14:47Z</updated>

		<summary type="html">&lt;p&gt;Rokas: /* Ciklai kol (While loops) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{navigation |previous=Kas čia eina? |next=Pasirinkimai}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Ciklai kol (While loops) ===&lt;br /&gt;
Šiame skyriuje susipažinsi su ciklu &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt;(liet. kol). Kaip jau sužinojai praeitame skyriuje, kompiuteris įprastai programą pradeda skaityti ir vykdyti nuo pirmos eilutės ir taip eilutė po eilutės keliauja žemyn per visas duoto kodo eilutes. Tačiau ciklas &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; šią tvarką pakeičia ir dėl to kompiuteris priėjęs šią kodo vietą eilutes skaito iki galo, pagal šio ciklo nustatytą tvarką. Štai čia yra programos su ciklo &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; pavyzdžiu:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
a = 0            # PIRMA, nustatome pradinio kintamojo a reikšmę 0 (nuliui).&lt;br /&gt;
while a &amp;lt; 10:    # Kol kintamojo a vertė yra mažesnė nei 10, programa atlieka šiuos veiksmus:&lt;br /&gt;
    a = a + 1    # Padidina kintamojo a reikšmę 1 (vienu), visai taip kaip nurodyta: a = a + 1! &lt;br /&gt;
    print(a)     # Tuomet nurodome, kad spausdintų. Viskas tam, kad pamatytumėte, kokia yra dabartinė kintamojo a vertė.&lt;br /&gt;
                 # Ir visą šitą ciklą programa vykdo tol, kol kintamojo a reikšmė bus lygi 9!? Žr. Pastabą.&lt;br /&gt;
                 &lt;br /&gt;
                 # PASTABA:&lt;br /&gt;
                 # Kintamojo a vertė padidės 1&lt;br /&gt;
                 # su kiekvienu pakartojimu ar ciklu, kol pasieks nustatytą sąlygą ir sustos.&lt;br /&gt;
                 # pvz. a = 1, tada a = 2, tada a = 3 ir t.t., kol a bus lygus 9 (a = 9), tada...&lt;br /&gt;
                 # kodas baigs pridėjinėti po 1 prie a, nes taps lygus 10 (a = 10) kaip ir &lt;br /&gt;
                 # numatyta mūsų parašytoje sąlygoje. &lt;br /&gt;
                 # O kai mūsų nurodyta sąlyga yra patenkinama, programa atspausdina rezultatą.&lt;br /&gt;
                 #              --&lt;br /&gt;
                 # While a &amp;lt; 10: |&lt;br /&gt;
                 #     a = a + 1 |&amp;lt;--[ Ciklo Kol sąlygos blokas ]&lt;br /&gt;
                 #     print (a) |&lt;br /&gt;
                 #              --&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Na, o jeigu paleidžiame programą, tai turime štai tokį įdomų rezultatą: &lt;br /&gt;
&lt;br /&gt;
 1&lt;br /&gt;
 2&lt;br /&gt;
 3&lt;br /&gt;
 4&lt;br /&gt;
 5&lt;br /&gt;
 6&lt;br /&gt;
 7&lt;br /&gt;
 8&lt;br /&gt;
 9&lt;br /&gt;
 10&lt;br /&gt;
&lt;br /&gt;
(Tikriausiai iki šios pamokos net nesusimąstei, kad kompiuterį gali paversti pigiu skaičiuotuvu...)&lt;br /&gt;
&lt;br /&gt;
Na, o dabar pasiaiškinkime kaip veikia ši programa. Pirmiausia kompiuteris mato eilutę &amp;lt;code&amp;gt;a = 0&amp;lt;/code&amp;gt; ir nustato &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; reikšmę lygią nuliui. Tada programa mato sąlygą &amp;lt;code&amp;gt;while a &amp;lt; 10:&amp;lt;/code&amp;gt;, todėl kompiuteris patikrina, ar &amp;lt;code&amp;gt;a &amp;lt; 10&amp;lt;/code&amp;gt;. Kompiuteriui pirmą kartą matant šį teiginį, &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; yra lygus 0, ir akivaizdu, kad turima reikšmė yra mažesnė nei 10. Kitaip tariant, kol &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; yra mažesnis skaičius nei dešimt, tol kompiuteris tikrins teiginį ir kartos jį (t.y. pridėjinės po 1). Ciklas baigsis, kai &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; bus lygus dešimčiai. Kadangi šiame kode daugiau nieko nėra, tai programa sustoja.&lt;br /&gt;
&lt;br /&gt;
ĮSIDĖMĖK: Nepamiršk parašyti dvitaškio &amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt; eilutės pabaigoje, tik taip kompiuteris supras, kad čia yra komanda!&lt;br /&gt;
&lt;br /&gt;
Kitas ciklo &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; pavyzdys:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
a = 1&lt;br /&gt;
s = 0&lt;br /&gt;
print(&amp;quot;Įvesk skaičius, kuriuos nori pridėti prie sumos&amp;quot;)&lt;br /&gt;
print(&amp;quot;Norint išeiti, įvesk 0.&amp;quot;)&lt;br /&gt;
while a != 0:                           &lt;br /&gt;
    print(&amp;quot;Dabartinė suma:&amp;quot;, s)            &lt;br /&gt;
    a = float(input(&amp;quot;Skaičius? &amp;quot;))        &lt;br /&gt;
    s = s + a                            &lt;br /&gt;
print(&amp;quot;Galutinė suma =&amp;quot;, s)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Galimas programos scenarijus: &lt;br /&gt;
&lt;br /&gt;
 Įvesk skaičius, kuriuos nori pridėti prie sumos.&lt;br /&gt;
 Norint išeiti, įveskite 0.&lt;br /&gt;
 Dabartinė suma: 0&lt;br /&gt;
 Skaičius? '''200'''&lt;br /&gt;
 Dabartinė suma: 200.0&lt;br /&gt;
 Skaičius? '''-15.25'''&lt;br /&gt;
 Dabartinė suma: 184.75&lt;br /&gt;
 Skaičius? '''-151.85'''&lt;br /&gt;
 Dabartinė suma: 32.9&lt;br /&gt;
 Skaičius? '''10.00'''&lt;br /&gt;
 Dabartinė suma: 42.9&lt;br /&gt;
 Skaičius? '''0'''&lt;br /&gt;
 Galutinė suma = 42.9&lt;br /&gt;
&lt;br /&gt;
Atkreipk dėmesį, kad &amp;lt;code&amp;gt;print('Galutinė suma =', s)&amp;lt;/code&amp;gt; yra įvykdoma tik pačioje pabaigoje, kai jau ciklas būna nutrauktas. Komanda &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; veikia tik tas eilutes, kurios yra atitrauktos nuo krašto ir priklauso ciklo &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; blokui. &amp;lt;code&amp;gt;!=&amp;lt;/code&amp;gt; reiškia nelygu, taigi &amp;lt;code&amp;gt;while a != 0:&amp;lt;/code&amp;gt; reiškia tol, kol &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; nėra nulis, programa vykdo kodą.&lt;br /&gt;
&lt;br /&gt;
Ar pastebėjai, kad šiuo atveju &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; yra skaičius su reikšme po kablelio ir ne visi tokie skaičiai gali būti tiksliai atvaizduoti, kai naudojamas &amp;lt;code&amp;gt;!=&amp;lt;/code&amp;gt;. Pabandyk paleidęs programą įvesti 1.1&lt;br /&gt;
&lt;br /&gt;
==== Begaliniai ciklai (infinitive loops) arba niekada nesibaigaintys ciklai (Never Ending Loop)====&lt;br /&gt;
Dabar, kai jau išsiaiškinome, kas yra ciklas &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt;, pasižiūrėkime kaip atrodo niekada nesibaigiantys ciklai, kaip kad ir šis:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
while True:&lt;br /&gt;
   print(&amp;quot;Padėk! Užstrigau cikle!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Operatorius &amp;lt;code&amp;gt;==&amp;lt;/code&amp;gt; naudojamas abiejų operatoriaus pusių išraiškų lygybei patikrinti, kaip ir &amp;lt;code&amp;gt; &amp;lt; &amp;lt;/code&amp;gt; buvo naudojami norint pasakyt „mažiau nei“ (kitame skyriuje rasi išsamų visų palyginimo operatorių sąrašą). &lt;br /&gt;
&lt;br /&gt;
Ši mūsų sukurta programa spausdins &amp;lt;code&amp;gt;Padėk! Užstrigau cikle!&amp;lt;/code&amp;gt; visą amžinybę... Tol, kol pats ją sustabdysi, todėl kad ji visą laiką yra &amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt; (visada atitinka teigiamą reikšmę) ir niekada nesikeičia (''True'', lietuviškai ''teisinga'' arba ''tiesa'', paprastai programavime dar rašomas kaip 1). Kaip programą sustabdyti? Paprasčiausiai paspausk ctrl + c mygtukus.&lt;br /&gt;
&lt;br /&gt;
=== Pavyzdžiai ===&lt;br /&gt;
==== Fibonačio skaičių seka ====&lt;br /&gt;
Fibonačio skaičių seka – sveikųjų skaičių seka. Seka prasideda šiais skaičiais: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233. Kiekvienas šios sekos skaičius lygus dviejų prieš jį einančių skaičių sumai. Toliau parodysiu, kaip gali atvaizduoti pirmus dvidešimt Fibonačio skaičius 3 skirtingais būdais.&lt;br /&gt;
&lt;br /&gt;
'''Fibonacci-metodas1.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Ši programa skaičiuoja Fibonačio seką&lt;br /&gt;
a = 0&lt;br /&gt;
b = 1&lt;br /&gt;
pradinis_skačius = 0&lt;br /&gt;
maksimalus_skaičius = 20&lt;br /&gt;
&lt;br /&gt;
while pradinis_skačius &amp;lt; maksimalus_skaičius:&lt;br /&gt;
    pradinis_skačius = pradinis_skačius + 1&lt;br /&gt;
    print(a, end = &amp;quot; &amp;quot;)  # Atkreipkite dėmesį į end = &amp;quot; &amp;quot; spausdinimo funkcijos argumentuose  &lt;br /&gt;
                       # būtent tai neleidžia sukurti naujos eilutės.&lt;br /&gt;
    senas_a = a    # turime sekti, nes mes jį keičiame.&lt;br /&gt;
    a = b&lt;br /&gt;
    b = senas_a + b&lt;br /&gt;
print()  # gauna naują (tuščią) eilutę.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Išvestis :&lt;br /&gt;
 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181&lt;br /&gt;
&lt;br /&gt;
Įsidėmėk, kad išvestis yra vienoje eilutėje dėl papildomų argumentų &amp;lt;code&amp;gt;end = &amp;quot; &amp;quot;&amp;lt;/code&amp;gt; funkcijos &amp;lt;code&amp;gt;print&amp;lt;/code&amp;gt; argumentuose.&lt;br /&gt;
&lt;br /&gt;
'''Fibonacci-metodas2.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Supaprastintas ir greitesnis Fibonačio sekos apskaičiavimo metodas&lt;br /&gt;
a = 0&lt;br /&gt;
b = 1&lt;br /&gt;
pradinis_skačius = 0&lt;br /&gt;
maksimalus_skaičius = 10&lt;br /&gt;
&lt;br /&gt;
while pradinis_skačius &amp;lt; maksimalus_skaičius:&lt;br /&gt;
    pradinis_skačius = pradinis_skačius + 1&lt;br /&gt;
    print(a, b, end=&amp;quot; &amp;quot;)  # Įsidėmėk end=&amp;quot; &amp;quot;&lt;br /&gt;
    a = a + b    &lt;br /&gt;
    b = a + b&lt;br /&gt;
print()  # gauna naują (tuščią) eilutę.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Išvestis:&lt;br /&gt;
 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181&lt;br /&gt;
&lt;br /&gt;
'''Fibonacci-metodas3.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
a = 0&lt;br /&gt;
b = 1&lt;br /&gt;
pradinis_skačius = 0&lt;br /&gt;
maksimalus_skaičius = 20&lt;br /&gt;
&lt;br /&gt;
#kai ciklas prasideda, mes jame pasiliekame&lt;br /&gt;
while pradinis_skačius &amp;lt; maksimalus_skaičius:&lt;br /&gt;
    pradinis_skačius += 1&lt;br /&gt;
    senas_a = a&lt;br /&gt;
    a = a + b&lt;br /&gt;
    b = senas_a&lt;br /&gt;
    print(senas_a,end=&amp;quot; &amp;quot;)&lt;br /&gt;
print()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Išvestis:&lt;br /&gt;
 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181&lt;br /&gt;
&lt;br /&gt;
==== Įvesk slaptažodį ====&lt;br /&gt;
'''Slaptaždis.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Laukia, kol bus įvestas slaptažodis. Naudok „ctrl+ C“, kad sustabdytum programą&lt;br /&gt;
# be slaptažodžio&lt;br /&gt;
&lt;br /&gt;
#atkreipk dėmesį, kad tai neturi būti slaptažodis, kad&lt;br /&gt;
# ciklas while turi prasisukti bent kartą.&lt;br /&gt;
slaptažodis= str()&lt;br /&gt;
&lt;br /&gt;
# įsidėmėk != reiškia nelygu&lt;br /&gt;
while slaptažodis!= &amp;quot;Angis&amp;quot;:&lt;br /&gt;
    slaptažodis = input(&amp;quot;Slaptažodis: &amp;quot;)&lt;br /&gt;
print(&amp;quot;Prisijungimas sėkmingas&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kaip programa veikia:&lt;br /&gt;
 Slaptažodis: '''auo'''&lt;br /&gt;
 Slaptažodis: '''y22'''&lt;br /&gt;
 Slaptažodis: '''slaptažodis'''&lt;br /&gt;
 Slaptažodis: '''Sezamai atsiverk''&lt;br /&gt;
 Slaptažodis: '''Angis'''&lt;br /&gt;
 Prisijungimas sėkmingas&lt;br /&gt;
&lt;br /&gt;
=== Pratimai ===&lt;br /&gt;
Parašyk programą, kuri prašo vartotojo įvesti skaičius tol, kol jis įveda &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;. Tada programa turi išvesti skaičių vidurkį. Gali remtis skyriuje aptartu skaičių sumos pavyzdžiu.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot;&lt;br /&gt;
! colspan=2 | Sprendimas &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
vardas = input(&amp;quot;Koks tavo prisijungimo vardas?: &amp;quot;)&lt;br /&gt;
slaptažodis = input(&amp;quot;Koks tavo slaptažodis: &amp;quot;)&lt;br /&gt;
print(&amp;quot;Kad užrakintum kompiuterį, parašyk: užrakinti&amp;quot;)&lt;br /&gt;
įvesta_komanda = None&lt;br /&gt;
input1 = None&lt;br /&gt;
input2 = None&lt;br /&gt;
while įvesta_komanda != &amp;quot;užrakinti&amp;quot;:&lt;br /&gt;
    įvesta_komanda = input(&amp;quot;Kokia tavo komanda: &amp;quot;)&lt;br /&gt;
&lt;br /&gt;
while input1 != vardas:&lt;br /&gt;
    input1 = input(&amp;quot;Tavo prisijungimo vardas: &amp;quot;)&lt;br /&gt;
&lt;br /&gt;
while input2 != slaptažodis:&lt;br /&gt;
    input2 = input(&amp;quot;Tavo slaptažodis: &amp;quot;)&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Prisijungimas sėkmingas&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jei nori, kad programa veiktų nepertraukiamai, tiesiog pridėk &amp;lt;code&amp;gt;while 1 == 1: &amp;lt;/code&amp;gt;prieš visą programą. Tik nepamiršk, kad reikia visą likusią programos dalį, t.y. ciklo bloką reikia atitraukti nuo krašto.&lt;br /&gt;
&lt;br /&gt;
Kitas sprendimo būdas&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
vardas = input('Nustatyti vardą: ')&lt;br /&gt;
slaptažodis = input('Nustatyti slaptažodį: ')&lt;br /&gt;
while 1 == 1:&lt;br /&gt;
    vardospėjimas=&amp;quot;&amp;quot;&lt;br /&gt;
    slaptažodžiospėjimas=&amp;quot;&amp;quot;&lt;br /&gt;
    raktas=&amp;quot;&amp;quot;&lt;br /&gt;
    while (vardospėjimas!= vardas) or (slaptažodžiospėjimas!= slaptažodis):&lt;br /&gt;
        vardospėjimas = input('Vardas? ')&lt;br /&gt;
        slaptažodžiospėjimas= input('Slaptažodis? ')&lt;br /&gt;
    print(&amp;quot;Labas,&amp;quot;, vardas, &amp;quot;. Parašyk užrakinti, kad užrakintum.&amp;quot;)&lt;br /&gt;
    while raktas != &amp;quot;užrakinti&amp;quot;:&lt;br /&gt;
        raktas = input(&amp;quot;&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Atkreipk dėmesį į &amp;lt;code&amp;gt;or&amp;lt;/code&amp;gt;, kuris yra prie &amp;lt;code&amp;gt;(vardospėjimas!= vardas) or (slaptažodžiospėjimas!= slaptažodis)&amp;lt;/code&amp;gt;, kurių dar neįvedėme. Pabandyk suprasti šią logiką ir kaip ji veikia.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Kas čia eina? |next=Pasirinkimai}}&lt;/div&gt;</summary>
		<author><name>Rokas</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Suskai%C4%8Diuoti_iki_10&amp;diff=3999</id>
		<title>Python Vadovėlis/Suskaičiuoti iki 10</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Suskai%C4%8Diuoti_iki_10&amp;diff=3999"/>
		<updated>2022-05-27T08:28:36Z</updated>

		<summary type="html">&lt;p&gt;Rokas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{navigation |previous=Kas čia eina? |next=Pasirinkimai}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Ciklai kol (While loops) ===&lt;br /&gt;
Šiame skyriuje susipažinsi su ciklu &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt;(liet. kol). Kaip jau sužinojai praeitame skyriuje, kompiuteris įprastai programą pradeda skaityti ir vykdyti nuo pirmos eilutės ir taip eilutė po eilutės keliauja žemyn per visas duoto kodo eilutes. Tačiau ciklas &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; šią tvarką pakeičia ir dėl to kompiuteris priėjęs šią kodo vietą eilutes skaito iki galo, pagal šio ciklo nustatytą tvarką. Štai čia yra programos su ciklo &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; pavyzdžiu:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
a = 0            # PIRMA, nustatome pradinio kintamojo a reikšmę 0 (nuliui).&lt;br /&gt;
while a &amp;lt; 10:    # Kol kintamojo a vertė yra mažesnė nei 10, programa atlieka šiuos veiksmus:&lt;br /&gt;
    a = a + 1    # Padidina kintamojo a reikšmę 1 (vienu), visai taip kaip nurodyta: a = a + 1! &lt;br /&gt;
    print(a)     # Tuomet nurodome, kad spausdintų. Viskas tam, kad pamatytumėte, kokia yra dabartinė kintamojo a vertė.&lt;br /&gt;
                 # Ir visą šitą ciklą programa vykdo tol, kol kintamojo a reikšmė bus lygi 9!? Žr. Pastabą.&lt;br /&gt;
                 &lt;br /&gt;
                 # PASTABA:&lt;br /&gt;
                 # Kintamojo a vertė padidės 1&lt;br /&gt;
                 # su kiekvienu pakartojimu ar ciklu, kol pasieks nustatytą sąlygą ir sustos.&lt;br /&gt;
                 # pvz. a = 1, tada a = 2, tada a = 3 ir t.t., kol a bus lygus 9 (a = 9), tada...&lt;br /&gt;
                 # kodas baigs pridėjinėti po 1 prie a, nes taps lygus 10 (a = 10) kaip ir &lt;br /&gt;
                 # numatyta mūsų parašytoje sąlygoje. &lt;br /&gt;
                 # O kai mūsų nurodyta sąlyga yra patenkinama, programa atspausdina rezultatą.&lt;br /&gt;
                 #              --&lt;br /&gt;
                 # While a &amp;lt; 10: |&lt;br /&gt;
                 #     a = a + 1 |&amp;lt;--[ Ciklo Kol sąlygos blokas ]&lt;br /&gt;
                 #     print (a) |&lt;br /&gt;
                 #              --&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Na, o jeigu paleidžiame programą, tai turime štai tokį įdomų rezultatą: &lt;br /&gt;
&lt;br /&gt;
 1&lt;br /&gt;
 2&lt;br /&gt;
 3&lt;br /&gt;
 4&lt;br /&gt;
 5&lt;br /&gt;
 6&lt;br /&gt;
 7&lt;br /&gt;
 8&lt;br /&gt;
 9&lt;br /&gt;
 10&lt;br /&gt;
&lt;br /&gt;
(Tikriausiai iki šios pamokos net nesusimąstei, kad kompiuterį gali paversti pigiu skaičiuotuvu...)&lt;br /&gt;
&lt;br /&gt;
Na, o dabar pasiaiškinkime kaip veikia ši programa. Pirmiausia kompiuteris mato eilutę &amp;lt;code&amp;gt;a = 0&amp;lt;/code&amp;gt; ir nustato &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; reikšmę lygią nuliui. Tada programa mato sąlygą &amp;lt;code&amp;gt;while a &amp;lt; 10:&amp;lt;/code&amp;gt;, todėl kompiuteris patikrina, ar &amp;lt;code&amp;gt;a &amp;lt; 10&amp;lt;/code&amp;gt;. Kompiuteriui pirmą kartą matant šį teiginį, &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; yra lygus 0, ir akivaizdu, kad turima reikšmė yra mažesnė nei 10. Kitaip tariant, kol &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; yra mažesnis skaičius nei dešimt, tol kompiuteris tikrins teiginį ir kartos jį (t.y. pridėjinės po 1). Ciklas baigsis, kai &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; bus lygus dešimčiai. Kadangi šiame kode daugiau nieko nėra, tai programa sustoja.&lt;br /&gt;
&lt;br /&gt;
ĮSIDĖMĖK: Nepamiršk parašyti dvitaškio &amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt; eilutės pabaigoje, tik taip kompiuteris supras, kad čia yra komanda!&lt;br /&gt;
&lt;br /&gt;
Kitas ciklo &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; pavyzdys:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
a = 1&lt;br /&gt;
s = 0&lt;br /&gt;
print(&amp;quot;Įvesk skaičius, kuriuos nori pridėti prie sumos.&amp;quot;)&lt;br /&gt;
print(&amp;quot;Norint išeiti, įvesk 0.&amp;quot;)&lt;br /&gt;
while a != 0:                           &lt;br /&gt;
    print(&amp;quot;Dabartinė suma:&amp;quot;, s)            &lt;br /&gt;
    a = float(input(&amp;quot;Skaičius? &amp;quot;))        &lt;br /&gt;
    s = s + a                            &lt;br /&gt;
print(&amp;quot;Galutinė suma =&amp;quot;, s)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Galimas programos scenarijus: &lt;br /&gt;
&lt;br /&gt;
 Įvesk skaičius, kuriuos nori pridėti prie sumos.&lt;br /&gt;
 Norint išeiti, įveskite 0.&lt;br /&gt;
 Dabartinė suma: 0&lt;br /&gt;
 Skaičius? '''200'''&lt;br /&gt;
 Dabartinė suma: 200.0&lt;br /&gt;
 Skaičius? '''-15.25'''&lt;br /&gt;
 Dabartinė suma: 184.75&lt;br /&gt;
 Skaičius? '''-151.85'''&lt;br /&gt;
 Dabartinė suma: 32.9&lt;br /&gt;
 Skaičius? '''10.00'''&lt;br /&gt;
 Dabartinė suma: 42.9&lt;br /&gt;
 Skaičius? '''0'''&lt;br /&gt;
 Galutinė suma = 42.9&lt;br /&gt;
&lt;br /&gt;
Atkreipk dėmesį, kad &amp;lt;code&amp;gt;print('Galutinė suma =', s)&amp;lt;/code&amp;gt; yra įvykdoma tik pačioje pabaigoje, kai jau ciklas būna nutrauktas. Komanda &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; veikia tik tas eilutes, kurios yra atitrauktos nuo krašto ir priklauso ciklo &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; blokui. &amp;lt;code&amp;gt;!=&amp;lt;/code&amp;gt; reiškia nelygu, taigi &amp;lt;code&amp;gt;while a != 0:&amp;lt;/code&amp;gt; reiškia tol, kol &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; nėra nulis, programa vykdo kodą.&lt;br /&gt;
&lt;br /&gt;
Ar pastebėjai, kad šiuo atveju &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; yra skaičius su reikšme po kablelio ir ne visi tokie skaičiai gali būti tiksliai atvaizduoti, kai naudojamas &amp;lt;code&amp;gt;!=&amp;lt;/code&amp;gt;. Pabandyk paleidęs programą įvesti 1.1&lt;br /&gt;
&lt;br /&gt;
==== Begaliniai ciklai (infinitive loops) arba niekada nesibaigaintys ciklai (Never Ending Loop)====&lt;br /&gt;
Dabar, kai jau išsiaiškinome, kas yra ciklas &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt;, pasižiūrėkime kaip atrodo niekada nesibaigiantys ciklai, kaip kad ir šis:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
while True:&lt;br /&gt;
   print(&amp;quot;Padėk! Užstrigau cikle!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Operatorius &amp;lt;code&amp;gt;==&amp;lt;/code&amp;gt; naudojamas abiejų operatoriaus pusių išraiškų lygybei patikrinti, kaip ir &amp;lt;code&amp;gt; &amp;lt; &amp;lt;/code&amp;gt; buvo naudojami norint pasakyt „mažiau nei“ (kitame skyriuje rasi išsamų visų palyginimo operatorių sąrašą). &lt;br /&gt;
&lt;br /&gt;
Ši mūsų sukurta programa spausdins &amp;lt;code&amp;gt;Padėk! Užstrigau cikle!&amp;lt;/code&amp;gt; visą amžinybę... Tol, kol pats ją sustabdysi, todėl kad ji visą laiką yra &amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt; (visada atitinka teigiamą reikšmę) ir niekada nesikeičia (''True'', lietuviškai ''teisinga'' arba ''tiesa'', paprastai programavime dar rašomas kaip 1). Kaip programą sustabdyti? Paprasčiausiai paspausk ctrl + c mygtukus.&lt;br /&gt;
&lt;br /&gt;
=== Pavyzdžiai ===&lt;br /&gt;
==== Fibonačio skaičių seka ====&lt;br /&gt;
Fibonačio skaičių seka – sveikųjų skaičių seka. Seka prasideda šiais skaičiais: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233. Kiekvienas šios sekos skaičius lygus dviejų prieš jį einančių skaičių sumai. Toliau parodysiu, kaip gali atvaizduoti pirmus dvidešimt Fibonačio skaičius 3 skirtingais būdais.&lt;br /&gt;
&lt;br /&gt;
'''Fibonacci-metodas1.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Ši programa skaičiuoja Fibonačio seką&lt;br /&gt;
a = 0&lt;br /&gt;
b = 1&lt;br /&gt;
pradinis_skačius = 0&lt;br /&gt;
maksimalus_skaičius = 20&lt;br /&gt;
&lt;br /&gt;
while pradinis_skačius &amp;lt; maksimalus_skaičius:&lt;br /&gt;
    pradinis_skačius = pradinis_skačius + 1&lt;br /&gt;
    print(a, end = &amp;quot; &amp;quot;)  # Atkreipkite dėmesį į end = &amp;quot; &amp;quot; spausdinimo funkcijos argumentuose  &lt;br /&gt;
                       # būtent tai neleidžia sukurti naujos eilutės.&lt;br /&gt;
    senas_a = a    # turime sekti, nes mes jį keičiame.&lt;br /&gt;
    a = b&lt;br /&gt;
    b = senas_a + b&lt;br /&gt;
print()  # gauna naują (tuščią) eilutę.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Išvestis :&lt;br /&gt;
 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181&lt;br /&gt;
&lt;br /&gt;
Įsidėmėk, kad išvestis yra vienoje eilutėje dėl papildomų argumentų &amp;lt;code&amp;gt;end = &amp;quot; &amp;quot;&amp;lt;/code&amp;gt; funkcijos &amp;lt;code&amp;gt;print&amp;lt;/code&amp;gt; argumentuose.&lt;br /&gt;
&lt;br /&gt;
'''Fibonacci-metodas2.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Supaprastintas ir greitesnis Fibonačio sekos apskaičiavimo metodas&lt;br /&gt;
a = 0&lt;br /&gt;
b = 1&lt;br /&gt;
pradinis_skačius = 0&lt;br /&gt;
maksimalus_skaičius = 10&lt;br /&gt;
&lt;br /&gt;
while pradinis_skačius &amp;lt; maksimalus_skaičius:&lt;br /&gt;
    pradinis_skačius = pradinis_skačius + 1&lt;br /&gt;
    print(a, b, end=&amp;quot; &amp;quot;)  # Įsidėmėk end=&amp;quot; &amp;quot;&lt;br /&gt;
    a = a + b    &lt;br /&gt;
    b = a + b&lt;br /&gt;
print()  # gauna naują (tuščią) eilutę.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Išvestis:&lt;br /&gt;
 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181&lt;br /&gt;
&lt;br /&gt;
'''Fibonacci-metodas3.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
a = 0&lt;br /&gt;
b = 1&lt;br /&gt;
pradinis_skačius = 0&lt;br /&gt;
maksimalus_skaičius = 20&lt;br /&gt;
&lt;br /&gt;
#kai ciklas prasideda, mes jame pasiliekame&lt;br /&gt;
while pradinis_skačius &amp;lt; maksimalus_skaičius:&lt;br /&gt;
    pradinis_skačius += 1&lt;br /&gt;
    senas_a = a&lt;br /&gt;
    a = a + b&lt;br /&gt;
    b = senas_a&lt;br /&gt;
    print(senas_a,end=&amp;quot; &amp;quot;)&lt;br /&gt;
print()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Išvestis:&lt;br /&gt;
 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181&lt;br /&gt;
&lt;br /&gt;
==== Įvesk slaptažodį ====&lt;br /&gt;
'''Slaptaždis.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Laukia, kol bus įvestas slaptažodis. Naudok „ctrl+ C“, kad sustabdytum programą&lt;br /&gt;
# be slaptažodžio&lt;br /&gt;
&lt;br /&gt;
#atkreipk dėmesį, kad tai neturi būti slaptažodis, kad&lt;br /&gt;
# ciklas while turi prasisukti bent kartą.&lt;br /&gt;
slaptažodis= str()&lt;br /&gt;
&lt;br /&gt;
# įsidėmėk != reiškia nelygu&lt;br /&gt;
while slaptažodis!= &amp;quot;Angis&amp;quot;:&lt;br /&gt;
    slaptažodis = input(&amp;quot;Slaptažodis: &amp;quot;)&lt;br /&gt;
print(&amp;quot;Prisijungimas sėkmingas&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kaip programa veikia:&lt;br /&gt;
 Slaptažodis: '''auo'''&lt;br /&gt;
 Slaptažodis: '''y22'''&lt;br /&gt;
 Slaptažodis: '''slaptažodis'''&lt;br /&gt;
 Slaptažodis: '''Sezamai atsiverk''&lt;br /&gt;
 Slaptažodis: '''Angis'''&lt;br /&gt;
 Prisijungimas sėkmingas&lt;br /&gt;
&lt;br /&gt;
=== Pratimai ===&lt;br /&gt;
Parašyk programą, kuri prašo vartotojo įvesti skaičius tol, kol jis įveda &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;. Tada programa turi išvesti skaičių vidurkį. Gali remtis skyriuje aptartu skaičių sumos pavyzdžiu.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot;&lt;br /&gt;
! colspan=2 | Sprendimas &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
vardas = input(&amp;quot;Koks tavo prisijungimo vardas?: &amp;quot;)&lt;br /&gt;
slaptažodis = input(&amp;quot;Koks tavo slaptažodis: &amp;quot;)&lt;br /&gt;
print(&amp;quot;Kad užrakintum kompiuterį, parašyk: užrakinti&amp;quot;)&lt;br /&gt;
įvesta_komanda = None&lt;br /&gt;
input1 = None&lt;br /&gt;
input2 = None&lt;br /&gt;
while įvesta_komanda != &amp;quot;užrakinti&amp;quot;:&lt;br /&gt;
    įvesta_komanda = input(&amp;quot;Kokia tavo komanda: &amp;quot;)&lt;br /&gt;
&lt;br /&gt;
while input1 != vardas:&lt;br /&gt;
    input1 = input(&amp;quot;Tavo prisijungimo vardas: &amp;quot;)&lt;br /&gt;
&lt;br /&gt;
while input2 != slaptažodis:&lt;br /&gt;
    input2 = input(&amp;quot;Tavo slaptažodis: &amp;quot;)&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Prisijungimas sėkmingas&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jei nori, kad programa veiktų nepertraukiamai, tiesiog pridėk &amp;lt;code&amp;gt;while 1 == 1: &amp;lt;/code&amp;gt;prieš visą programą. Tik nepamiršk, kad reikia visą likusią programos dalį, t.y. ciklo bloką reikia atitraukti nuo krašto.&lt;br /&gt;
&lt;br /&gt;
Kitas sprendimo būdas&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
vardas = input('Nustatyti vardą: ')&lt;br /&gt;
slaptažodis = input('Nustatyti slaptažodį: ')&lt;br /&gt;
while 1 == 1:&lt;br /&gt;
    vardospėjimas=&amp;quot;&amp;quot;&lt;br /&gt;
    slaptažodžiospėjimas=&amp;quot;&amp;quot;&lt;br /&gt;
    raktas=&amp;quot;&amp;quot;&lt;br /&gt;
    while (vardospėjimas!= vardas) or (slaptažodžiospėjimas!= slaptažodis):&lt;br /&gt;
        vardospėjimas = input('Vardas? ')&lt;br /&gt;
        slaptažodžiospėjimas= input('Slaptažodis? ')&lt;br /&gt;
    print(&amp;quot;Labas,&amp;quot;, vardas, &amp;quot;. Parašyk užrakinti, kad užrakintum.&amp;quot;)&lt;br /&gt;
    while raktas != &amp;quot;užrakinti&amp;quot;:&lt;br /&gt;
        raktas = input(&amp;quot;&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Atkreipk dėmesį į &amp;lt;code&amp;gt;or&amp;lt;/code&amp;gt;, kuris yra prie &amp;lt;code&amp;gt;(vardospėjimas!= vardas) or (slaptažodžiospėjimas!= slaptažodis)&amp;lt;/code&amp;gt;, kurių dar neįvedėme. Pabandyk suprasti šią logiką ir kaip ji veikia.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Kas čia eina? |next=Pasirinkimai}}&lt;/div&gt;</summary>
		<author><name>Rokas</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Bumerangas&amp;diff=3933</id>
		<title>Bumerangas</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Bumerangas&amp;diff=3933"/>
		<updated>2022-04-14T12:44:18Z</updated>

		<summary type="html">&lt;p&gt;Rokas: Naujas puslapis: Žaidimas Bumerangas&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Žaidimas Bumerangas&lt;/div&gt;</summary>
		<author><name>Rokas</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Mesa&amp;diff=3932</id>
		<title>Mesa</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Mesa&amp;diff=3932"/>
		<updated>2022-04-14T12:41:57Z</updated>

		<summary type="html">&lt;p&gt;Rokas: Naujas puslapis: Zaidimas&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Zaidimas&lt;/div&gt;</summary>
		<author><name>Rokas</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Suskai%C4%8Diuoti_iki_10&amp;diff=3899</id>
		<title>Python Vadovėlis/Suskaičiuoti iki 10</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Suskai%C4%8Diuoti_iki_10&amp;diff=3899"/>
		<updated>2022-03-09T14:51:43Z</updated>

		<summary type="html">&lt;p&gt;Rokas: /* Ciklai kol (While loops) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Ciklai kol (While loops) ===&lt;br /&gt;
Šiame skyriuje susipažinsi su ciklu &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt;(liet. kol). Kaip jau sužinojai praeitame skyriuje, kompiuteris įprastai programą pradeda skaityti ir vykdyti nuo pirmos eilutės ir taip eilutė po eilutės keliauja žemyn per visas duoto kodo eilutes. Tačiau ciklas &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; šią tvarką pakeičia ir dėl to kompiuteris priėjęs šią kodo vietą eilutes skaito iki galo, pagal šio ciklo nustatytą tvarką. Štai čia yra programos su ciklo &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; pavyzdžiu:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
a = 0            # PIRMA, nustatome pradinio kintamojo a reikšmę 0 (nuliui).&lt;br /&gt;
while a &amp;lt; 10:    # Kol kintamojo a vertė yra mažesnė nei 10, programa atlieka šiuos veiksmus:&lt;br /&gt;
    a = a + 1    # Padidina kintamojo a reikšmę 1 (vienu), visai taip kaip nurodyta: a = a + 1! &lt;br /&gt;
    print(a)     # Tuomet nurodome, kad spausdintų. Viskas tam, kad pamatytumėte, kokia yra dabartinė kintamojo a vertė.&lt;br /&gt;
                 # Ir visą šitą ciklą programa vykdo tol, kol kintamojo a reikšmė bus lygi 9!? Žr. Pastabą.&lt;br /&gt;
                 &lt;br /&gt;
                 # PASTABA:&lt;br /&gt;
                 # Kintamojo a vertė padidės 1&lt;br /&gt;
                 # su kiekvienu pakartojimu ar ciklu, kol pasieks nustatytą sąlygą ir sustos.&lt;br /&gt;
                 # pvz. a = 1, tada a = 2, tada a = 3 ir t.t., kol a bus lygus 9 (a = 9), tada...&lt;br /&gt;
                 # kodas baigs pridėjinėti po 1 prie a, nes taps lygus 10 (a = 10) kaip ir &lt;br /&gt;
                 # numatyta mūsų parašytoje sąlygoje. &lt;br /&gt;
                 # O kai mūsų nurodyta sąlyga yra patenkinama, programa atspausdina rezultatą.&lt;br /&gt;
                 #              --&lt;br /&gt;
                 # While a &amp;lt; 10: |&lt;br /&gt;
                 #     a = a + 1 |&amp;lt;--[ Ciklo Kol sąlygos blokas ]&lt;br /&gt;
                 #     print (a) |&lt;br /&gt;
                 #              --&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Na, o jeigu paleidžiame programą, tai turime štai tokį įdomų rezultatą: &lt;br /&gt;
&lt;br /&gt;
 1&lt;br /&gt;
 2&lt;br /&gt;
 3&lt;br /&gt;
 4&lt;br /&gt;
 5&lt;br /&gt;
 6&lt;br /&gt;
 7&lt;br /&gt;
 8&lt;br /&gt;
 9&lt;br /&gt;
 10&lt;br /&gt;
&lt;br /&gt;
(Tikriausiai iki šios pamokos net nesusimąstei, kad kompiuterį gali paversti pigiu skaičiuotuvu...)&lt;br /&gt;
&lt;br /&gt;
Na, o dabar pasiaiškinkime kaip veikia ši programa. Pirmiausia kompiuteris mato eilutę &amp;lt;code&amp;gt;a = 0&amp;lt;/code&amp;gt; ir nustato &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; reikšmę lygią nuliui. Tada programa mato sąlygą &amp;lt;code&amp;gt;while a &amp;lt; 10:&amp;lt;/code&amp;gt;, todėl kompiuteris patikrina, ar &amp;lt;code&amp;gt;a &amp;lt; 10&amp;lt;/code&amp;gt;. Kompiuteriui pirmą kartą matant šį teiginį, &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; yra lygus 0, ir akivaizdu, kad turima reikšmė yra mažesnė nei 10. Kitaip tariant, kol &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; yra mažesnis skaičius nei dešimt, tol kompiuteris tikrins teiginį ir kartos jį (t.y. pridėjinės po 1). Ciklas baigsis, kai &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; bus lygus dešimčiai. Kadangi šiame kode daugiau nieko nėra, tai programa sustoja.&lt;br /&gt;
&lt;br /&gt;
ĮSIDĖMĖK: Nepamiršk parašyti dvitaškio &amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt; eilutės pabaigoje, tik taip kompiuteris supras, kad čia yra komanda!&lt;br /&gt;
&lt;br /&gt;
Kitas ciklo &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; pavyzdys:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
a = 1&lt;br /&gt;
s = 0&lt;br /&gt;
print('Įvesk skaičius, kuriuos nori pridėti prie sumos.')&lt;br /&gt;
print('Norint išeiti, įvesk 0.')&lt;br /&gt;
while a != 0:                           &lt;br /&gt;
    print('Dabartinė suma:', s)            &lt;br /&gt;
    a = float(input('Skaičius? '))        &lt;br /&gt;
    s = s + a                            &lt;br /&gt;
print('Galutinė suma =', s)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Galimas programos scenarijus: &lt;br /&gt;
&lt;br /&gt;
 Įvesk skaičius, kuriuos nori pridėti prie sumos.&lt;br /&gt;
 Norint išeiti, įveskite 0.&lt;br /&gt;
 Dabartinė suma: 0&lt;br /&gt;
 Skaičius? '''200'''&lt;br /&gt;
 Dabartinė suma: 200.0&lt;br /&gt;
 Skaičius? '''-15.25'''&lt;br /&gt;
 Dabartinė suma: 184.75&lt;br /&gt;
 Skaičius? '''-151.85'''&lt;br /&gt;
 Dabartinė suma: 32.9&lt;br /&gt;
 Skaičius? '''10.00'''&lt;br /&gt;
 Dabartinė suma: 42.9&lt;br /&gt;
 Skaičius? '''0'''&lt;br /&gt;
 Galutinė suma = 42.9&lt;br /&gt;
&lt;br /&gt;
Atkreipk dėmesį, kad &amp;lt;code&amp;gt;print('Galutinė suma =', s)&amp;lt;/code&amp;gt; yra įvykdoma tik pačioje pabaigoje, kai jau ciklas būna nutrauktas. Komanda &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; veikia tik tas eilutes, kurios yra atitrauktos nuo krašto ir priklauso ciklo &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; blokui. &amp;lt;code&amp;gt;!=&amp;lt;/code&amp;gt; reiškia nelygu, taigi &amp;lt;code&amp;gt;while a! = 0:&amp;lt;/code&amp;gt; reiškia tol, kol &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; nėra nulis, programa vykdo kodą.&lt;br /&gt;
&lt;br /&gt;
Ar pastebėjai, kad šiuo atveju &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; yra skaičius su reikšme po kablelio ir ne visi tokie skaičiai gali būti tiksliai atvaizduoti, kai naudojamas &amp;lt;code&amp;gt;!=&amp;lt;/code&amp;gt;. Pabandyk paleidęs programą įvesti 1.1&lt;br /&gt;
&lt;br /&gt;
==== Begaliniai ciklai (infinitive loops) arba niekada nesibaigaintys ciklai (Never Ending Loop)====&lt;br /&gt;
Dabar, kai jau išsiaiškinome, kas yra ciklas &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt;, pasižiūrėkime kaip atrodo niekada nesibaigiantys ciklai, kaip kad ir šis:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
while True:&lt;br /&gt;
   print(&amp;quot;Padėk! Užstrigau cikle!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Operatorius &amp;lt;code&amp;gt;== &amp;lt;/code&amp;gt; naudojamas abiejų operatoriaus pusių išraiškų lygybei patikrinti, kaip ir &amp;lt;code&amp;gt; &amp;lt; &amp;lt;/code&amp;gt; buvo naudojami norint pasakyt „mažiau nei“ (kitame skyriuje rasi išsamų visų palyginimo operatorių sąrašą). &lt;br /&gt;
&lt;br /&gt;
Ši mūsų sukurta programa spausdins &amp;lt;code&amp;gt;Padėk! Užstrigau cikle!&amp;lt;/code&amp;gt; visą amžinybę... Tol, kol pats ją sustabdysi, todėl kad ji visą laiką yra &amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt; (visada atitinka teigiamą reikšmę) ir niekada nesikeičia (True paprastai programavime dar rašomas kaip 1). Kaip programą sustabdyti? Paprasčiausiai paspausk ctrl + c mygtukus.&lt;br /&gt;
&lt;br /&gt;
=== Pavyzdžiai ===&lt;br /&gt;
==== Fibonačio seka ====&lt;br /&gt;
'''Fibonacci-metodas1.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Ši programa skaičiuoja Fibonačio seką&lt;br /&gt;
a = 0&lt;br /&gt;
b = 1&lt;br /&gt;
pradinis_skačius = 0&lt;br /&gt;
maksimalus_skaičius = 20&lt;br /&gt;
&lt;br /&gt;
while pradinis_skačius &amp;lt; maksimalus_skaičius:&lt;br /&gt;
    pradinis_skačius = pradinis_skačius + 1&lt;br /&gt;
    print(a, end = &amp;quot; &amp;quot;)  # Atkreipkite dėmesį į end = &amp;quot; &amp;quot; spausdinimo funkcijos argumentuose  &lt;br /&gt;
                       # būtent tai neleidžia sukurti naujos eilutės.&lt;br /&gt;
    senas_a = a    # turime sekti, nes mes jį keičiame.&lt;br /&gt;
    a = b&lt;br /&gt;
    b = senas_a + b&lt;br /&gt;
print()  # gauna naują (tuščią) eilutę.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Išvestis :&lt;br /&gt;
 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181&lt;br /&gt;
&lt;br /&gt;
Įsidėmėk, kad išvestis yra vienoje eilutėje dėl papildomų argumentų &amp;lt;code&amp;gt;end = &amp;quot; &amp;quot;&amp;lt;/code&amp;gt; funkcijos &amp;lt;code&amp;gt;print&amp;lt;/code&amp;gt; argumentuose.&lt;br /&gt;
&lt;br /&gt;
'''Fibonacci-metodas2.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Supaprastintas ir greitesnis Fibonačio sekos apskaičiavimo metodas&lt;br /&gt;
a = 0&lt;br /&gt;
b = 1&lt;br /&gt;
pradinis_skačius = 0&lt;br /&gt;
maksimalus_skaičius = 10&lt;br /&gt;
&lt;br /&gt;
while pradinis_skačius &amp;lt; maksimalus_skaičius:&lt;br /&gt;
    pradinis_skačius = pradinis_skačius + 1&lt;br /&gt;
    print(a, b, end=&amp;quot; &amp;quot;)  # Įsidėmėk end=&amp;quot; &amp;quot;&lt;br /&gt;
    a = a + b    &lt;br /&gt;
    b = a + b&lt;br /&gt;
print()  # gauna naują (tuščią) eilutę.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Išvestis:&lt;br /&gt;
 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181&lt;br /&gt;
&lt;br /&gt;
'''Fibonacci-metodas3.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
a = 0&lt;br /&gt;
b = 1&lt;br /&gt;
pradinis_skačius = 0&lt;br /&gt;
maksimalus_skaičius = 20&lt;br /&gt;
&lt;br /&gt;
#kai ciklas prasideda, mes jame pasiliekame&lt;br /&gt;
while pradinis_skačius &amp;lt; maksimalus_skaičius:&lt;br /&gt;
    pradinis_skačius += 1&lt;br /&gt;
    senas_a = a&lt;br /&gt;
    a = a + b&lt;br /&gt;
    b = senas_a&lt;br /&gt;
    print(senas_a,end=&amp;quot; &amp;quot;)&lt;br /&gt;
print()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Išvestis:&lt;br /&gt;
 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181&lt;br /&gt;
&lt;br /&gt;
==== Įvesk slaptažodį ====&lt;br /&gt;
'''Slaptaždis.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Laukia, kol bus įvestas slaptažodis. Naudok „ctrl+ C“, kad sustabdytum programą&lt;br /&gt;
# be slaptažodžio&lt;br /&gt;
&lt;br /&gt;
#atkreipk dėmesį, kad tai neturi būti slaptažodis, kad&lt;br /&gt;
# ciklas while turi prasisukti bent kartą.&lt;br /&gt;
slaptažodis= str()&lt;br /&gt;
&lt;br /&gt;
# įsidėmėk != reiškia nelygu&lt;br /&gt;
while slaptažodis!= &amp;quot;Angis&amp;quot;:&lt;br /&gt;
    slaptažodis = input(&amp;quot;Slaptažodis: &amp;quot;)&lt;br /&gt;
print(&amp;quot;Prisijungimas sėkmingas&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kaip programa veikia:&lt;br /&gt;
 Slaptažodis: '''auo'''&lt;br /&gt;
 Slaptažodis: '''y22'''&lt;br /&gt;
 Slaptažodis: '''slaptažodis'''&lt;br /&gt;
 Slaptažodis: '''Sezamai atsiverk''&lt;br /&gt;
 Slaptažodis: '''Angis'''&lt;br /&gt;
 Prisijungimas sėkmingas&lt;br /&gt;
&lt;br /&gt;
=== Užduotis===&lt;br /&gt;
Parašyk programą, kuri prašo: vartotojo prisijungimo vardo ir slaptažodžio. Tada, kai vartotojas įveda „užrakinti“, jis turi įvesti savo vardą ir slaptažodį, kad atrakintų programą.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot;&lt;br /&gt;
! colspan=2 | Sprendimas &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
vardas = input(&amp;quot;Koks tavo prisijungimo vardas?: &amp;quot;)&lt;br /&gt;
slaptažodis = input(&amp;quot;Koks tavo slaptažodis: &amp;quot;)&lt;br /&gt;
print(&amp;quot;Kad užrakintum kompiuterį, parašyk: užrakinti&amp;quot;)&lt;br /&gt;
įvesta_komanda = None&lt;br /&gt;
input1 = None&lt;br /&gt;
input2 = None&lt;br /&gt;
while įvesta_komanda != &amp;quot;užrakinti&amp;quot;:&lt;br /&gt;
    įvesta_komanda = input(&amp;quot;Kokia tavo komanda: &amp;quot;)&lt;br /&gt;
&lt;br /&gt;
while input1 != vardas:&lt;br /&gt;
    input1 = input(&amp;quot;Tavo prisijungimo vardas: &amp;quot;)&lt;br /&gt;
&lt;br /&gt;
while input2 != slaptažodis:&lt;br /&gt;
    input2 = input(&amp;quot;Tavo slaptažodis: &amp;quot;)&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Prisijungimas sėkmingas&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jei nori, kad programa veiktų nepertraukiamai, tiesiog pridėk &amp;lt;code&amp;gt;while 1 == 1: &amp;lt;/code&amp;gt;prieš visą programą. Tik nepamiršk, kad reikia visą likusią programos dalį, t.y. ciklo bloką reikia atitraukti nuo krašto.&lt;br /&gt;
&lt;br /&gt;
Kitas sprendimo būdas&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
vardas = input('Nustatyti vardą: ')&lt;br /&gt;
slaptažodis = input('Nustatyti slaptažodį: ')&lt;br /&gt;
while 1 == 1:&lt;br /&gt;
    vardospėjimas=&amp;quot;&amp;quot;&lt;br /&gt;
    slaptažodžiospėjimas=&amp;quot;&amp;quot;&lt;br /&gt;
    raktas=&amp;quot;&amp;quot;&lt;br /&gt;
    while (vardospėjimas!= vardas) or (slaptažodžiospėjimas!= slaptažodis):&lt;br /&gt;
        vardospėjimas = input('Vardas? ')&lt;br /&gt;
        slaptažodžiospėjimas= input('Slaptažodis? ')&lt;br /&gt;
    print(&amp;quot;Labas,&amp;quot;, vardas, &amp;quot;. Parašyk užrakinti, kad užrakintum.&amp;quot;)&lt;br /&gt;
    while raktas != &amp;quot;užrakinti&amp;quot;:&lt;br /&gt;
        raktas = input(&amp;quot;&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Atkreipk dėmesį į &amp;lt;code&amp;gt;or&amp;lt;/code&amp;gt;, kuris yra prie &amp;lt;code&amp;gt;(vardospėjimas!= vardas) or (slaptažodžiospėjimas!= slaptažodis)&amp;lt;/code&amp;gt;, kurių dar neįvedėme. Pabandyk suprasti šią logiką ir kaip ji veikia.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Kas čia eina? |next=Pasirinkimai}}&lt;/div&gt;</summary>
		<author><name>Rokas</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Suskai%C4%8Diuoti_iki_10&amp;diff=3898</id>
		<title>Python Vadovėlis/Suskaičiuoti iki 10</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Suskai%C4%8Diuoti_iki_10&amp;diff=3898"/>
		<updated>2022-03-09T14:44:49Z</updated>

		<summary type="html">&lt;p&gt;Rokas: /* Ciklai kol (While loops) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Ciklai kol (While loops) ===&lt;br /&gt;
Šiame skyriuje susipažinsi su ciklu &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt;(liet. kol). Kaip jau sužinojai praeitame skyriuje, kompiuteris įprastai programą pradeda skaityti ir vykdyti nuo pirmos eilutės ir taip eilutė po eilutės keliauja žemyn per visas duoto kodo eilutes. Tačiau ciklas &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; šią tvarką pakeičia ir dėl to kompiuteris priėjęs šią kodo vietą eilutes skaito iki galo, pagal šio ciklo nustatytą tvarką. Štai čia yra programos su ciklo &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; pavyzdžiu:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
a = 0            # PIRMA, nustatome pradinio kintamojo a reikšmę 0 (nuliui).&lt;br /&gt;
while a &amp;lt; 10:    # Kol kintamojo a vertė yra mažesnė nei 10, programa atlieka šiuos veiksmus:&lt;br /&gt;
    a = a + 1    # Padidina kintamojo a reikšmę 1 (vienu), visai taip kaip nurodyta: a = a + 1! &lt;br /&gt;
    print(a)     # Tuomet nurodome, kad spausdintų. Viskas tam, kad pamatytumėte, kokia yra dabartinė kintamojo a vertė.&lt;br /&gt;
                 # Ir visą šitą ciklą programa vykdo tol, kol kintamojo a reikšmė bus lygi 9!? Žr. Pastabą.&lt;br /&gt;
                 &lt;br /&gt;
                 # PASTABA:&lt;br /&gt;
                 # Kintamojo a vertė padidės 1&lt;br /&gt;
                 # su kiekvienu pakartojimu ar ciklu, kol pasieks nustatytą sąlygą ir sustos.&lt;br /&gt;
                 # pvz. a = 1, tada a = 2, tada a = 3 ir t.t., kol a bus lygus 9 (a = 9), tada...&lt;br /&gt;
                 # kodas baigs pridėjinėti po 1 prie a, nes taps lygus 10 (a = 10) kaip ir numatyta mūsų parašytoje sąlygoje. &lt;br /&gt;
                 # O kai mūsų nurodyta sąlyga yra patenkinama, programa atspausdina rezultatą.&lt;br /&gt;
                 #              --&lt;br /&gt;
                 # While a &amp;lt; 10: |&lt;br /&gt;
                 #     a = a + 1 |&amp;lt;--[ Ciklo Kol sąlygos blokas ]&lt;br /&gt;
                 #     print (a) |&lt;br /&gt;
                 #              --&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Na, o jeigu paleidžiame programą, tai turime štai tokį įdomų rezultatą: &lt;br /&gt;
&lt;br /&gt;
 1&lt;br /&gt;
 2&lt;br /&gt;
 3&lt;br /&gt;
 4&lt;br /&gt;
 5&lt;br /&gt;
 6&lt;br /&gt;
 7&lt;br /&gt;
 8&lt;br /&gt;
 9&lt;br /&gt;
 10&lt;br /&gt;
&lt;br /&gt;
(Tikriausiai iki šios pamokos net nesusimąstei, kad kompiuterį gali paversti pigiu skaičiuotuvu...)&lt;br /&gt;
&lt;br /&gt;
Na, o dabar pasiaiškinkime kaip veikia ši programa. Pirmiausia kompiuteris mato eilutę &amp;lt;code&amp;gt;a = 0&amp;lt;/code&amp;gt; ir nustato &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; reikšmę lygią nuliui. Tada programa mato sąlygą &amp;lt;code&amp;gt;while a &amp;lt; 10:&amp;lt;/code&amp;gt;, todėl kompiuteris patikrina, ar &amp;lt;code&amp;gt;a &amp;lt; 10&amp;lt;/code&amp;gt;. Kompiuteriui pirmą kartą matant šį teiginį, &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; yra lygus 0, ir akivaizdu, kad turima reikšmė yra mažesnė nei 10. Kitaip tariant, kol &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; yra mažesnis skaičius nei dešimt, tol kompiuteris tikrins teiginį ir kartos jį (t.y. pridėjinės po 1). Ciklas baigsis, kai &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; bus lygus dešimčiai. Kadangi šiame kode daugiau nieko nėra, tai programa sustoja.&lt;br /&gt;
&lt;br /&gt;
ĮSIDĖMĖK: Nepamiršk parašyti dvitaškio &amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt; eilutės pabaigoje, tik taip kompiuteris supras, kad čia yra komanda!&lt;br /&gt;
&lt;br /&gt;
Kitas ciklo &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; pavyzdys:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
a = 1&lt;br /&gt;
s = 0&lt;br /&gt;
print('Įvesk skaičius, kuriuos nori pridėti prie sumos.')&lt;br /&gt;
print('Norint išeiti, įvesk 0.')&lt;br /&gt;
while a != 0:                           &lt;br /&gt;
    print('Dabartinė suma:', s)            &lt;br /&gt;
    a = float(input('Skaičius? '))        &lt;br /&gt;
    s = s + a                            &lt;br /&gt;
print('Galutinė suma =', s)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Galimas programos scenarijus: &lt;br /&gt;
&lt;br /&gt;
 Įvesk skaičius, kuriuos nori pridėti prie sumos.&lt;br /&gt;
 Norint išeiti, įveskite 0.&lt;br /&gt;
 Dabartinė suma: 0&lt;br /&gt;
 Skaičius? '''200'''&lt;br /&gt;
 Dabartinė suma: 200.0&lt;br /&gt;
 Skaičius? '''-15.25'''&lt;br /&gt;
 Dabartinė suma: 184.75&lt;br /&gt;
 Skaičius? '''-151.85'''&lt;br /&gt;
 Dabartinė suma: 32.9&lt;br /&gt;
 Skaičius? '''10.00'''&lt;br /&gt;
 Dabartinė suma: 42.9&lt;br /&gt;
 Skaičius? '''0'''&lt;br /&gt;
 Galutinė suma = 42.9&lt;br /&gt;
&lt;br /&gt;
Atkreipk dėmesį, kad &amp;lt;code&amp;gt;print('Galutinė suma =', s)&amp;lt;/code&amp;gt; yra įvykdoma tik pačioje pabaigoje, kai jau ciklas būna nutrauktas. Komanda &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; veikia tik tas eilutes, kurios yra atitrauktos nuo krašto ir priklauso ciklo &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; blokui. &amp;lt;code&amp;gt;!=&amp;lt;/code&amp;gt; reiškia nelygu, taigi &amp;lt;code&amp;gt;while a! = 0:&amp;lt;/code&amp;gt; reiškia tol, kol &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; nėra nulis, programa vykdo kodą.&lt;br /&gt;
&lt;br /&gt;
Ar pastebėjai, kad šiuo atveju &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; yra skaičius su reikšme po kablelio ir ne visi tokie skaičiai gali būti tiksliai atvaizduoti, kai naudojamas &amp;lt;code&amp;gt;!=&amp;lt;/code&amp;gt;. Pabandyk paleidęs programą įvesti 1.1&lt;br /&gt;
&lt;br /&gt;
==== Begaliniai ciklai (infinitive loops) arba niekada nesibaigaintys ciklai (Never Ending Loop)====&lt;br /&gt;
Dabar, kai jau išsiaiškinome, kas yra ciklas &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt;, pasižiūrėkime kaip atrodo niekada nesibaigiantys ciklai, kaip kad ir šis:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
while True:&lt;br /&gt;
   print(&amp;quot;Padėk! Užstrigau cikle!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Operatorius &amp;lt;code&amp;gt;== &amp;lt;/code&amp;gt; naudojamas abiejų operatoriaus pusių išraiškų lygybei patikrinti, kaip ir &amp;lt;code&amp;gt; &amp;lt; &amp;lt;/code&amp;gt; buvo naudojami norint pasakyt „mažiau nei“ (kitame skyriuje rasi išsamų visų palyginimo operatorių sąrašą). &lt;br /&gt;
&lt;br /&gt;
Ši mūsų sukurta programa spausdins &amp;lt;code&amp;gt;Padėk! Užstrigau cikle!&amp;lt;/code&amp;gt; visą amžinybę... Tol, kol pats ją sustabdysi, todėl kad ji visą laiką yra &amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt; (visada atitinka teigiamą reikšmę) ir niekada nesikeičia (True paprastai programavime dar rašomas kaip 1). Kaip programą sustabdyti? Paprasčiausiai paspausk ctrl + c mygtukus.&lt;br /&gt;
&lt;br /&gt;
=== Pavyzdžiai ===&lt;br /&gt;
==== Fibonačio seka ====&lt;br /&gt;
'''Fibonacci-metodas1.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Ši programa skaičiuoja Fibonačio seką&lt;br /&gt;
a = 0&lt;br /&gt;
b = 1&lt;br /&gt;
pradinis_skačius = 0&lt;br /&gt;
maksimalus_skaičius = 20&lt;br /&gt;
&lt;br /&gt;
while pradinis_skačius &amp;lt; maksimalus_skaičius:&lt;br /&gt;
    pradinis_skačius = pradinis_skačius + 1&lt;br /&gt;
    print(a, end = &amp;quot; &amp;quot;)  # Atkreipkite dėmesį į end = &amp;quot; &amp;quot; spausdinimo funkcijos argumentuose  &lt;br /&gt;
                       # būtent tai neleidžia sukurti naujos eilutės.&lt;br /&gt;
    senas_a = a    # turime sekti, nes mes jį keičiame.&lt;br /&gt;
    a = b&lt;br /&gt;
    b = senas_a + b&lt;br /&gt;
print()  # gauna naują (tuščią) eilutę.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Išvestis :&lt;br /&gt;
 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181&lt;br /&gt;
&lt;br /&gt;
Įsidėmėk, kad išvestis yra vienoje eilutėje dėl papildomų argumentų &amp;lt;code&amp;gt;end = &amp;quot; &amp;quot;&amp;lt;/code&amp;gt; funkcijos &amp;lt;code&amp;gt;print&amp;lt;/code&amp;gt; argumentuose.&lt;br /&gt;
&lt;br /&gt;
'''Fibonacci-metodas2.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Supaprastintas ir greitesnis Fibonačio sekos apskaičiavimo metodas&lt;br /&gt;
a = 0&lt;br /&gt;
b = 1&lt;br /&gt;
pradinis_skačius = 0&lt;br /&gt;
maksimalus_skaičius = 10&lt;br /&gt;
&lt;br /&gt;
while pradinis_skačius &amp;lt; maksimalus_skaičius:&lt;br /&gt;
    pradinis_skačius = pradinis_skačius + 1&lt;br /&gt;
    print(a, b, end=&amp;quot; &amp;quot;)  # Įsidėmėk end=&amp;quot; &amp;quot;&lt;br /&gt;
    a = a + b    &lt;br /&gt;
    b = a + b&lt;br /&gt;
print()  # gauna naują (tuščią) eilutę.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Išvestis:&lt;br /&gt;
 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181&lt;br /&gt;
&lt;br /&gt;
'''Fibonacci-metodas3.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
a = 0&lt;br /&gt;
b = 1&lt;br /&gt;
pradinis_skačius = 0&lt;br /&gt;
maksimalus_skaičius = 20&lt;br /&gt;
&lt;br /&gt;
#kai ciklas prasideda, mes jame pasiliekame&lt;br /&gt;
while pradinis_skačius &amp;lt; maksimalus_skaičius:&lt;br /&gt;
    pradinis_skačius += 1&lt;br /&gt;
    senas_a = a&lt;br /&gt;
    a = a + b&lt;br /&gt;
    b = senas_a&lt;br /&gt;
    print(senas_a,end=&amp;quot; &amp;quot;)&lt;br /&gt;
print()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Išvestis:&lt;br /&gt;
 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181&lt;br /&gt;
&lt;br /&gt;
==== Įvesk slaptažodį ====&lt;br /&gt;
'''Slaptaždis.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Laukia, kol bus įvestas slaptažodis. Naudok „ctrl+ C“, kad sustabdytum programą&lt;br /&gt;
# be slaptažodžio&lt;br /&gt;
&lt;br /&gt;
#atkreipk dėmesį, kad tai neturi būti slaptažodis, kad&lt;br /&gt;
# ciklas while turi prasisukti bent kartą.&lt;br /&gt;
slaptažodis= str()&lt;br /&gt;
&lt;br /&gt;
# įsidėmėk != reiškia nelygu&lt;br /&gt;
while slaptažodis!= &amp;quot;Angis&amp;quot;:&lt;br /&gt;
    slaptažodis = input(&amp;quot;Slaptažodis: &amp;quot;)&lt;br /&gt;
print(&amp;quot;Prisijungimas sėkmingas&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kaip programa veikia:&lt;br /&gt;
 Slaptažodis: '''auo'''&lt;br /&gt;
 Slaptažodis: '''y22'''&lt;br /&gt;
 Slaptažodis: '''slaptažodis'''&lt;br /&gt;
 Slaptažodis: '''Sezamai atsiverk''&lt;br /&gt;
 Slaptažodis: '''Angis'''&lt;br /&gt;
 Prisijungimas sėkmingas&lt;br /&gt;
&lt;br /&gt;
=== Užduotis===&lt;br /&gt;
Parašyk programą, kuri prašo: vartotojo prisijungimo vardo ir slaptažodžio. Tada, kai vartotojas įveda „užrakinti“, jis turi įvesti savo vardą ir slaptažodį, kad atrakintų programą.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot;&lt;br /&gt;
! colspan=2 | Sprendimas &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
vardas = input(&amp;quot;Koks tavo prisijungimo vardas?: &amp;quot;)&lt;br /&gt;
slaptažodis = input(&amp;quot;Koks tavo slaptažodis: &amp;quot;)&lt;br /&gt;
print(&amp;quot;Kad užrakintum kompiuterį, parašyk: užrakinti&amp;quot;)&lt;br /&gt;
įvesta_komanda = None&lt;br /&gt;
input1 = None&lt;br /&gt;
input2 = None&lt;br /&gt;
while įvesta_komanda != &amp;quot;užrakinti&amp;quot;:&lt;br /&gt;
    įvesta_komanda = input(&amp;quot;Kokia tavo komanda: &amp;quot;)&lt;br /&gt;
&lt;br /&gt;
while input1 != vardas:&lt;br /&gt;
    input1 = input(&amp;quot;Tavo prisijungimo vardas: &amp;quot;)&lt;br /&gt;
&lt;br /&gt;
while input2 != slaptažodis:&lt;br /&gt;
    input2 = input(&amp;quot;Tavo slaptažodis: &amp;quot;)&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Prisijungimas sėkmingas&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jei nori, kad programa veiktų nepertraukiamai, tiesiog pridėk &amp;lt;code&amp;gt;while 1 == 1: &amp;lt;/code&amp;gt;prieš visą programą. Tik nepamiršk, kad reikia visą likusią programos dalį, t.y. ciklo bloką reikia atitraukti nuo krašto.&lt;br /&gt;
&lt;br /&gt;
Kitas sprendimo būdas&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
vardas = input('Nustatyti vardą: ')&lt;br /&gt;
slaptažodis = input('Nustatyti slaptažodį: ')&lt;br /&gt;
while 1 == 1:&lt;br /&gt;
    vardospėjimas=&amp;quot;&amp;quot;&lt;br /&gt;
    slaptažodžiospėjimas=&amp;quot;&amp;quot;&lt;br /&gt;
    raktas=&amp;quot;&amp;quot;&lt;br /&gt;
    while (vardospėjimas!= vardas) or (slaptažodžiospėjimas!= slaptažodis):&lt;br /&gt;
        vardospėjimas = input('Vardas? ')&lt;br /&gt;
        slaptažodžiospėjimas= input('Slaptažodis? ')&lt;br /&gt;
    print(&amp;quot;Labas,&amp;quot;, vardas, &amp;quot;. Parašyk užrakinti, kad užrakintum.&amp;quot;)&lt;br /&gt;
    while raktas != &amp;quot;užrakinti&amp;quot;:&lt;br /&gt;
        raktas = input(&amp;quot;&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Atkreipk dėmesį į &amp;lt;code&amp;gt;or&amp;lt;/code&amp;gt;, kuris yra prie &amp;lt;code&amp;gt;(vardospėjimas!= vardas) or (slaptažodžiospėjimas!= slaptažodis)&amp;lt;/code&amp;gt;, kurių dar neįvedėme. Pabandyk suprasti šią logiką ir kaip ji veikia.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Kas čia eina? |next=Pasirinkimai}}&lt;/div&gt;</summary>
		<author><name>Rokas</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Mano_klas%C4%97s&amp;diff=3813</id>
		<title>Mano klasės</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Mano_klas%C4%97s&amp;diff=3813"/>
		<updated>2022-01-26T10:11:34Z</updated>

		<summary type="html">&lt;p&gt;Rokas: /* Ką man reikia daryti jeigu noriu prisijungti prie mokytojo(-os) sukurtos klasės? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Naujas puslapis apie “Mano klasės” funkcionalumą.&lt;br /&gt;
&lt;br /&gt;
=== „Mano klasės“ ===&lt;br /&gt;
 &lt;br /&gt;
„Mano klasės“ sukurtos padėti tavo Informacinių technologijų mokytojui (-ai) naudoti Angies platformą pamokase ir/ar būreliuse, ar kartu su tavimi spręsti lygių užduotis. Matydamas tavo kodą ir progresą mokytojas(-a) galės atsakyti į tavo klausimus ir padėti pereiti lygius.&lt;br /&gt;
&lt;br /&gt;
=== Nelankau mokyklos, ar man reikia kažką daryti? ===&lt;br /&gt;
&lt;br /&gt;
Ne, ši informacija ir naujas funkcionalumas skirtas tik tiems vartotojams, kurių Informacinių klasių mokytojai nusprendė naudoti Angį pamokose/būreliuse/užsiėmimuse ir susitarė su moksleiviais, kad sukurs klasę. &lt;br /&gt;
&lt;br /&gt;
=== Kaip „Mano klasės“ veikia? ===&lt;br /&gt;
&lt;br /&gt;
Mokytojai sukuria klases prie kurių kviečia prisijungti moksleivius, kuriems veda Informacinių technologijų pamokas/būrelius/užsiėmimus.&lt;br /&gt;
&lt;br /&gt;
=== Ką man reikia daryti jeigu noriu prisijungti prie mokytojo(-os) sukurtos klasės? ===&lt;br /&gt;
&lt;br /&gt;
Prie mokytojo(-os) sukurtos klasės galima prisijungti šiais būdais: &lt;br /&gt;
&lt;br /&gt;
* Naudojant mokytojo(-os) sukurtą klasės kodą, kuris yra unikalus ir naudojamas tik tavo klasės;&lt;br /&gt;
* Jeigu tavo paskyros informacijoje tavo mokykla ir klasė užpildyta teisingai; &lt;br /&gt;
* Jeigu užpildysi savo paskyroje mokyklos ir klasės informaciją teisingai po to, kai mokytojas(-a) jau bus sukūrę tavo klasę;&lt;br /&gt;
&lt;br /&gt;
'''Jeigu naudojiesi mokytojo(-os) sukurtu klasės kodu''' - tau jį reikės suvesti paskyros informacijos skiltyje „Mokyklos informacija“.&lt;br /&gt;
&lt;br /&gt;
Klasės kodo suvedimo laukelis atrodo taip:&lt;br /&gt;
[[Vaizdas:Klasės kodo suvedimui skirtas laukelis.png|alt=Klasės kodo suvedimui skirtas laukelis|center|miniatiūra|800x800px|Klasės kodo suvedimui skirtas laukelis]]&lt;br /&gt;
&lt;br /&gt;
'''Jeigu esi pilnai užpildęs(-iusi) savo klasės informaciją''' ir tavo mokytojas(-a) sukuria klasę - gausi informacinę žinutę su klausimu ar nori savo mokytojui(-ai) leisti matyti tavo paskyros informaciją, jeigu taip - sutikimo žinutėje reikia paspausti mygtuką „Sutinku“ ir būsi pridėtas(-a) prie klasės. &lt;br /&gt;
Žinutė pasirodys pagrindiniame lange ir tavo paskyros informacijos skiltyje „Mokyklos informacija“. &lt;br /&gt;
Informacinė žinutė atrodo taip: &lt;br /&gt;
[[Vaizdas:Informacinė sutikimo žinutė.png|alt=Informacinė sutikimo žinutė|center|frame|Informacinė sutikimo žinutė]]&lt;br /&gt;
'''Jeigu mokyklos informaciją supildei po to, kai mokytojas(-a) sukūrė klasę''' - gausi informacinę žinutę su klausimu ar nori pasidalinti savo duomenimis savo mokytoju(-a). Davus sutikimą - būsi pridėtas(-a) prie klasės. &lt;br /&gt;
Žinutė pasirodys pagrindiniame lange ir paskyros informacijos skiltyje „Mokyklos informacija“. &lt;br /&gt;
Informacinė žinutė atrodo taip:&lt;br /&gt;
[[Vaizdas:Informacinė sutikimo žinutė.png|alt=Informacinė sutikimo žinutė|center|frame|Informacinė sutikimo žinutė]]&lt;br /&gt;
Suvedus klasės kodą ar davus sutikimą, kad motytojas(-a) matytų tavo informaciją - būsi pridėtas(-a) prie savo klasės ir tavo mokytojas(-a) matys tavo lygių kodus, progresą, slapyvardį,  vardą ir pavardę (jeigu ši informacija yra tavo paskyroje). Daugiau tau nieko daryti nebereikia.&lt;br /&gt;
&lt;br /&gt;
=== Ar mano Angies progresas pasikeis, jeigu prisijungsiu prie klasės? ===&lt;br /&gt;
&lt;br /&gt;
Prisijungimas prie klasės neturi jokios įtakos Angies lygių sprendimui, progresui, organizuojamiems konkursams ar kt..&lt;br /&gt;
&lt;br /&gt;
=== Ar galiu atsisakyti prisijungti prie klasės? === &lt;br /&gt;
&lt;br /&gt;
Taip, jeigu nenori, kad tave pridėtų prie mokytojo(-os) sukurtos klasės - gali nesutikti, tada informacinėje sutikimo žinutėje tau reikia spausti mygtuką “Nesutinku„.&lt;br /&gt;
[[Vaizdas:Informacinė sutikimo žinutė.png|alt=Informacinė sutikimo žinutė|center|frame|Informacinė sutikimo žinutė]]&lt;br /&gt;
Jeigu persigalvojai ir nori, kad mokytojas(-a) nebematytų tavo duomenų, nors sutikimą jau buvai davęs(-usi) - visada gali atisakyti dalintis duomenimis, tau tereikia savo paskyros informacijos skiltyje „Mokyklos informacija“ atšaukti savo sutikimą.&lt;br /&gt;
Atsisakymo laukelis atrodo taip: &lt;br /&gt;
[[Vaizdas:Atsisakymo laukelis.png|alt=Atsisakymo laukelis|center|frame|Atsisakymo laukelis]]&lt;br /&gt;
Atsisakius rodyti savo informaciją mokytojui(-ai) tavo duomenys iš karto bus ištrinami iš tavo klasės, o tavo paskyrai, progresui ar kitai informacijai tai jokios įtakos neturės.&lt;br /&gt;
&lt;br /&gt;
=== Kokią mano informaciją matys mokytojas jeigu prisijungsiu prie savo klasės? ===&lt;br /&gt;
&lt;br /&gt;
Lygių kodus, progresą, slapyvardį, vardą ir pavardę (jeigu ši informacija yra tavo paskyroje).&lt;br /&gt;
&lt;br /&gt;
Šią informaciją matys TIK tavo Informacinių technologijų klasės/būrelio/užsiėmimo mokytojas(-a), kitiems ši informacija nebus prieinama. &lt;br /&gt;
Daugiau informacijos kokiais duomenimis dalinamės galima rasti [http://Privatumo%20politikoje https://angis.net/#/privatumo-politika]. &lt;br /&gt;
&lt;br /&gt;
''Jeigu turi papildomų klausimų - kreipkis adresu: info@angis.net''&lt;/div&gt;</summary>
		<author><name>Rokas</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Mano_klas%C4%97s&amp;diff=3812</id>
		<title>Mano klasės</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Mano_klas%C4%97s&amp;diff=3812"/>
		<updated>2022-01-26T10:10:46Z</updated>

		<summary type="html">&lt;p&gt;Rokas: /* Ar galiu atsisakyti prisijungti prie klasės? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Naujas puslapis apie “Mano klasės” funkcionalumą.&lt;br /&gt;
&lt;br /&gt;
=== „Mano klasės“ ===&lt;br /&gt;
 &lt;br /&gt;
„Mano klasės“ sukurtos padėti tavo Informacinių technologijų mokytojui (-ai) naudoti Angies platformą pamokase ir/ar būreliuse, ar kartu su tavimi spręsti lygių užduotis. Matydamas tavo kodą ir progresą mokytojas(-a) galės atsakyti į tavo klausimus ir padėti pereiti lygius.&lt;br /&gt;
&lt;br /&gt;
=== Nelankau mokyklos, ar man reikia kažką daryti? ===&lt;br /&gt;
&lt;br /&gt;
Ne, ši informacija ir naujas funkcionalumas skirtas tik tiems vartotojams, kurių Informacinių klasių mokytojai nusprendė naudoti Angį pamokose/būreliuse/užsiėmimuse ir susitarė su moksleiviais, kad sukurs klasę. &lt;br /&gt;
&lt;br /&gt;
=== Kaip „Mano klasės“ veikia? ===&lt;br /&gt;
&lt;br /&gt;
Mokytojai sukuria klases prie kurių kviečia prisijungti moksleivius, kuriems veda Informacinių technologijų pamokas/būrelius/užsiėmimus.&lt;br /&gt;
&lt;br /&gt;
=== Ką man reikia daryti jeigu noriu prisijungti prie mokytojo(-os) sukurtos klasės? ===&lt;br /&gt;
&lt;br /&gt;
Prie mokytojo(-os) sukurtos klasės galima prisijungti šiais būdais: &lt;br /&gt;
&lt;br /&gt;
* Naudojant mokytojo(-os) sukurtą klasės kodą, kuris yra unikalus ir naudojamas tik tavo klasės;&lt;br /&gt;
* Jeigu tavo paskyros informacijoje tavo mokykla ir klasė užpildyta teisingai; &lt;br /&gt;
* Jeigu užpildysi savo paskyroje mokyklos ir klasės informaciją teisingai po to, kai mokytojas(-a) jau bus sukūrę tavo klasę;&lt;br /&gt;
&lt;br /&gt;
'''Jeigu naudojiesi mokytojo(-os) sukurtu klasės kodu''' - tau jį reikės suvesti paskyros informacijos skiltyje „Mokyklos informacija“.&lt;br /&gt;
&lt;br /&gt;
Klasės kodo suvedimo laukelis atrodo taip:&lt;br /&gt;
[[Vaizdas:Klasės kodo suvedimui skirtas laukelis.png|alt=Klasės kodo suvedimui skirtas laukelis|center|miniatiūra|800x800px|Klasės kodo suvedimui skirtas laukelis]]&lt;br /&gt;
&lt;br /&gt;
'''Jeigu esi pilnai užpildęs(-iusi) savo klasės informaciją''' ir tavo mokytojas(-a) sukuria klasę - gausi informacinę žinutę su klausimu ar nori savo mokytojui(-ai) leisti matyti tavo paskyros informaciją, jeigu taip - sutikimo žinutėje reikia paspausti mygtuką „Taip“ ir būsi pridėtas(-a) prie klasės. &lt;br /&gt;
Žinutė pasirodys pagrindiniame lange ir tavo paskyros informacijos skiltyje „Mokyklos informacija“. &lt;br /&gt;
Informacinė žinutė atrodo taip: &lt;br /&gt;
[[Vaizdas:Informacinė sutikimo žinutė.png|alt=Informacinė sutikimo žinutė|center|frame|Informacinė sutikimo žinutė]]&lt;br /&gt;
'''Jeigu mokyklos informaciją supildei po to, kai mokytojas(-a) sukūrė klasę''' - gausi informacinę žinutę su klausimu ar nori pasidalinti savo duomenimis savo mokytoju(-a). Davus sutikimą - būsi pridėtas(-a) prie klasės. &lt;br /&gt;
Žinutė pasirodys pagrindiniame lange ir paskyros informacijos skiltyje „Mokyklos informacija“. &lt;br /&gt;
Informacinė žinutė atrodo taip:&lt;br /&gt;
[[Vaizdas:Informacinė sutikimo žinutė.png|alt=Informacinė sutikimo žinutė|center|frame|Informacinė sutikimo žinutė]]&lt;br /&gt;
Suvedus klasės kodą ar davus sutikimą, kad motytojas(-a) matytų tavo informaciją - būsi pridėtas(-a) prie savo klasės ir tavo mokytojas(-a) matys tavo lygių kodus, progresą, slapyvardį,  vardą ir pavardę (jeigu ši informacija yra tavo paskyroje). Daugiau tau nieko daryti nebereikia. &lt;br /&gt;
&lt;br /&gt;
=== Ar mano Angies progresas pasikeis, jeigu prisijungsiu prie klasės? ===&lt;br /&gt;
&lt;br /&gt;
Prisijungimas prie klasės neturi jokios įtakos Angies lygių sprendimui, progresui, organizuojamiems konkursams ar kt..&lt;br /&gt;
&lt;br /&gt;
=== Ar galiu atsisakyti prisijungti prie klasės? === &lt;br /&gt;
&lt;br /&gt;
Taip, jeigu nenori, kad tave pridėtų prie mokytojo(-os) sukurtos klasės - gali nesutikti, tada informacinėje sutikimo žinutėje tau reikia spausti mygtuką “Nesutinku„.&lt;br /&gt;
[[Vaizdas:Informacinė sutikimo žinutė.png|alt=Informacinė sutikimo žinutė|center|frame|Informacinė sutikimo žinutė]]&lt;br /&gt;
Jeigu persigalvojai ir nori, kad mokytojas(-a) nebematytų tavo duomenų, nors sutikimą jau buvai davęs(-usi) - visada gali atisakyti dalintis duomenimis, tau tereikia savo paskyros informacijos skiltyje „Mokyklos informacija“ atšaukti savo sutikimą.&lt;br /&gt;
Atsisakymo laukelis atrodo taip: &lt;br /&gt;
[[Vaizdas:Atsisakymo laukelis.png|alt=Atsisakymo laukelis|center|frame|Atsisakymo laukelis]]&lt;br /&gt;
Atsisakius rodyti savo informaciją mokytojui(-ai) tavo duomenys iš karto bus ištrinami iš tavo klasės, o tavo paskyrai, progresui ar kitai informacijai tai jokios įtakos neturės.&lt;br /&gt;
&lt;br /&gt;
=== Kokią mano informaciją matys mokytojas jeigu prisijungsiu prie savo klasės? ===&lt;br /&gt;
&lt;br /&gt;
Lygių kodus, progresą, slapyvardį, vardą ir pavardę (jeigu ši informacija yra tavo paskyroje).&lt;br /&gt;
&lt;br /&gt;
Šią informaciją matys TIK tavo Informacinių technologijų klasės/būrelio/užsiėmimo mokytojas(-a), kitiems ši informacija nebus prieinama. &lt;br /&gt;
Daugiau informacijos kokiais duomenimis dalinamės galima rasti [http://Privatumo%20politikoje https://angis.net/#/privatumo-politika]. &lt;br /&gt;
&lt;br /&gt;
''Jeigu turi papildomų klausimų - kreipkis adresu: info@angis.net''&lt;/div&gt;</summary>
		<author><name>Rokas</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Mano_klas%C4%97s&amp;diff=3811</id>
		<title>Mano klasės</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Mano_klas%C4%97s&amp;diff=3811"/>
		<updated>2022-01-26T10:09:57Z</updated>

		<summary type="html">&lt;p&gt;Rokas: /* Ką man reikia daryti jeigu noriu prisijungti prie mokytojo(-os) sukurtos klasės? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Naujas puslapis apie “Mano klasės” funkcionalumą.&lt;br /&gt;
&lt;br /&gt;
=== „Mano klasės“ ===&lt;br /&gt;
 &lt;br /&gt;
„Mano klasės“ sukurtos padėti tavo Informacinių technologijų mokytojui (-ai) naudoti Angies platformą pamokase ir/ar būreliuse, ar kartu su tavimi spręsti lygių užduotis. Matydamas tavo kodą ir progresą mokytojas(-a) galės atsakyti į tavo klausimus ir padėti pereiti lygius.&lt;br /&gt;
&lt;br /&gt;
=== Nelankau mokyklos, ar man reikia kažką daryti? ===&lt;br /&gt;
&lt;br /&gt;
Ne, ši informacija ir naujas funkcionalumas skirtas tik tiems vartotojams, kurių Informacinių klasių mokytojai nusprendė naudoti Angį pamokose/būreliuse/užsiėmimuse ir susitarė su moksleiviais, kad sukurs klasę. &lt;br /&gt;
&lt;br /&gt;
=== Kaip „Mano klasės“ veikia? ===&lt;br /&gt;
&lt;br /&gt;
Mokytojai sukuria klases prie kurių kviečia prisijungti moksleivius, kuriems veda Informacinių technologijų pamokas/būrelius/užsiėmimus.&lt;br /&gt;
&lt;br /&gt;
=== Ką man reikia daryti jeigu noriu prisijungti prie mokytojo(-os) sukurtos klasės? ===&lt;br /&gt;
&lt;br /&gt;
Prie mokytojo(-os) sukurtos klasės galima prisijungti šiais būdais: &lt;br /&gt;
&lt;br /&gt;
* Naudojant mokytojo(-os) sukurtą klasės kodą, kuris yra unikalus ir naudojamas tik tavo klasės;&lt;br /&gt;
* Jeigu tavo paskyros informacijoje tavo mokykla ir klasė užpildyta teisingai; &lt;br /&gt;
* Jeigu užpildysi savo paskyroje mokyklos ir klasės informaciją teisingai po to, kai mokytojas(-a) jau bus sukūrę tavo klasę;&lt;br /&gt;
&lt;br /&gt;
'''Jeigu naudojiesi mokytojo(-os) sukurtu klasės kodu''' - tau jį reikės suvesti paskyros informacijos skiltyje „Mokyklos informacija“.&lt;br /&gt;
&lt;br /&gt;
Klasės kodo suvedimo laukelis atrodo taip:&lt;br /&gt;
[[Vaizdas:Klasės kodo suvedimui skirtas laukelis.png|alt=Klasės kodo suvedimui skirtas laukelis|center|miniatiūra|800x800px|Klasės kodo suvedimui skirtas laukelis]]&lt;br /&gt;
&lt;br /&gt;
'''Jeigu esi pilnai užpildęs(-iusi) savo klasės informaciją''' ir tavo mokytojas(-a) sukuria klasę - gausi informacinę žinutę su klausimu ar nori savo mokytojui(-ai) leisti matyti tavo paskyros informaciją, jeigu taip - sutikimo žinutėje reikia paspausti mygtuką „Taip“ ir būsi pridėtas(-a) prie klasės. &lt;br /&gt;
Žinutė pasirodys pagrindiniame lange ir tavo paskyros informacijos skiltyje „Mokyklos informacija“. &lt;br /&gt;
Informacinė žinutė atrodo taip: &lt;br /&gt;
[[Vaizdas:Informacinė sutikimo žinutė.png|alt=Informacinė sutikimo žinutė|center|frame|Informacinė sutikimo žinutė]]&lt;br /&gt;
'''Jeigu mokyklos informaciją supildei po to, kai mokytojas(-a) sukūrė klasę''' - gausi informacinę žinutę su klausimu ar nori pasidalinti savo duomenimis savo mokytoju(-a). Davus sutikimą - būsi pridėtas(-a) prie klasės. &lt;br /&gt;
Žinutė pasirodys pagrindiniame lange ir paskyros informacijos skiltyje „Mokyklos informacija“. &lt;br /&gt;
Informacinė žinutė atrodo taip:&lt;br /&gt;
[[Vaizdas:Informacinė sutikimo žinutė.png|alt=Informacinė sutikimo žinutė|center|frame|Informacinė sutikimo žinutė]]&lt;br /&gt;
Suvedus klasės kodą ar davus sutikimą, kad motytojas(-a) matytų tavo informaciją - būsi pridėtas(-a) prie savo klasės ir tavo mokytojas(-a) matys tavo lygių kodus, progresą, slapyvardį,  vardą ir pavardę (jeigu ši informacija yra tavo paskyroje). Daugiau tau nieko daryti nebereikia. &lt;br /&gt;
&lt;br /&gt;
=== Ar mano Angies progresas pasikeis, jeigu prisijungsiu prie klasės? ===&lt;br /&gt;
&lt;br /&gt;
Prisijungimas prie klasės neturi jokios įtakos Angies lygių sprendimui, progresui, organizuojamiems konkursams ar kt..&lt;br /&gt;
&lt;br /&gt;
=== Ar galiu atsisakyti prisijungti prie klasės? === &lt;br /&gt;
&lt;br /&gt;
Taip, jeigu nenori, kad tave pridėtų prie mokytojo(-os) sukurtos klasės - gali nesutikti, tada informacinėje sutikimo žinutėje tau reikia spausti mygtuką “Ne„.&lt;br /&gt;
[[Vaizdas:Informacinė sutikimo žinutė.png|alt=Informacinė sutikimo žinutė|center|frame|Informacinė sutikimo žinutė]]&lt;br /&gt;
Jeigu persigalvojai ir nori, kad mokytojas(-a) nebematytų tavo duomenų, nors sutikimą jau buvai davęs(-usi) - visada gali atisakyti dalintis duomenimis, tau tereikia savo paskyros informacijos skiltyje „Mokyklos informacija“ atšaukti savo sutikimą.&lt;br /&gt;
Atsisakymo laukelis atrodo taip: &lt;br /&gt;
[[Vaizdas:Atsisakymo laukelis.png|alt=Atsisakymo laukelis|center|frame|Atsisakymo laukelis]]&lt;br /&gt;
Atsisakius rodyti savo informaciją mokytojui(-ai) tavo duomenys iš karto bus ištrinami iš tavo klasės, o tavo paskyrai, progresui ar kitai informacijai tai jokios įtakos neturės. &lt;br /&gt;
&lt;br /&gt;
=== Kokią mano informaciją matys mokytojas jeigu prisijungsiu prie savo klasės? ===&lt;br /&gt;
&lt;br /&gt;
Lygių kodus, progresą, slapyvardį, vardą ir pavardę (jeigu ši informacija yra tavo paskyroje).&lt;br /&gt;
&lt;br /&gt;
Šią informaciją matys TIK tavo Informacinių technologijų klasės/būrelio/užsiėmimo mokytojas(-a), kitiems ši informacija nebus prieinama. &lt;br /&gt;
Daugiau informacijos kokiais duomenimis dalinamės galima rasti [http://Privatumo%20politikoje https://angis.net/#/privatumo-politika]. &lt;br /&gt;
&lt;br /&gt;
''Jeigu turi papildomų klausimų - kreipkis adresu: info@angis.net''&lt;/div&gt;</summary>
		<author><name>Rokas</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Vaizdas:Atsisakymo_laukelis.png&amp;diff=3810</id>
		<title>Vaizdas:Atsisakymo laukelis.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Vaizdas:Atsisakymo_laukelis.png&amp;diff=3810"/>
		<updated>2022-01-26T10:09:25Z</updated>

		<summary type="html">&lt;p&gt;Rokas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Atsisakymo laukelis&lt;/div&gt;</summary>
		<author><name>Rokas</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Vaizdas:Informacin%C4%97_sutikimo_%C5%BEinut%C4%97.png&amp;diff=3809</id>
		<title>Vaizdas:Informacinė sutikimo žinutė.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Vaizdas:Informacin%C4%97_sutikimo_%C5%BEinut%C4%97.png&amp;diff=3809"/>
		<updated>2022-01-26T10:06:53Z</updated>

		<summary type="html">&lt;p&gt;Rokas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Informacinė sutikimo žinutė&lt;/div&gt;</summary>
		<author><name>Rokas</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Vaizdas:Klas%C4%97s_kodo_suvedimui_skirtas_laukelis.png&amp;diff=3808</id>
		<title>Vaizdas:Klasės kodo suvedimui skirtas laukelis.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Vaizdas:Klas%C4%97s_kodo_suvedimui_skirtas_laukelis.png&amp;diff=3808"/>
		<updated>2022-01-26T10:04:12Z</updated>

		<summary type="html">&lt;p&gt;Rokas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Klasės kodo suvedimui skirtas laukelis&lt;/div&gt;</summary>
		<author><name>Rokas</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Mano_klas%C4%97s&amp;diff=3807</id>
		<title>Mano klasės</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Mano_klas%C4%97s&amp;diff=3807"/>
		<updated>2022-01-26T10:00:24Z</updated>

		<summary type="html">&lt;p&gt;Rokas: /* Kaip „Mano klasės“ veikia? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Naujas puslapis apie “Mano klasės” funkcionalumą.&lt;br /&gt;
&lt;br /&gt;
=== „Mano klasės“ ===&lt;br /&gt;
 &lt;br /&gt;
„Mano klasės“ sukurtos padėti tavo Informacinių technologijų mokytojui (-ai) naudoti Angies platformą pamokase ir/ar būreliuse, ar kartu su tavimi spręsti lygių užduotis. Matydamas tavo kodą ir progresą mokytojas(-a) galės atsakyti į tavo klausimus ir padėti pereiti lygius.&lt;br /&gt;
&lt;br /&gt;
=== Nelankau mokyklos, ar man reikia kažką daryti? ===&lt;br /&gt;
&lt;br /&gt;
Ne, ši informacija ir naujas funkcionalumas skirtas tik tiems vartotojams, kurių Informacinių klasių mokytojai nusprendė naudoti Angį pamokose/būreliuse/užsiėmimuse ir susitarė su moksleiviais, kad sukurs klasę. &lt;br /&gt;
&lt;br /&gt;
=== Kaip „Mano klasės“ veikia? ===&lt;br /&gt;
&lt;br /&gt;
Mokytojai sukuria klases prie kurių kviečia prisijungti moksleivius, kuriems veda Informacinių technologijų pamokas/būrelius/užsiėmimus.&lt;br /&gt;
&lt;br /&gt;
[[Vaizdas:Klasės kodo suvedimo laukelis.png|kairėje|Klasės kodo suvedimo laukelis]]&lt;br /&gt;
&lt;br /&gt;
=== Ką man reikia daryti jeigu noriu prisijungti prie mokytojo(-os) sukurtos klasės? ===&lt;br /&gt;
&lt;br /&gt;
Prie mokytojo(-os) sukurtos klasės galima prisijungti šiais būdais: &lt;br /&gt;
&lt;br /&gt;
* Naudojant mokytojo(-os) sukurtą klasės kodą, kuris yra unikalus ir naudojamas tik tavo klasės;&lt;br /&gt;
* Jeigu tavo paskyros informacijoje tavo mokykla ir klasė užpildyta teisingai; &lt;br /&gt;
* Jeigu užpildysi savo paskyroje mokyklos ir klasės informaciją teisingai po to, kai mokytojas(-a) jau bus sukūrę tavo klasę;&lt;br /&gt;
&lt;br /&gt;
'''Jeigu naudojiesi mokytojo(-os) sukurtu klasės kodu''' - tau jį reikės suvesti paskyros informacijos skiltyje „Mokyklos informacija“.&lt;br /&gt;
&lt;br /&gt;
Klasės kodo suvedimo laukelis atrodo taip:&lt;br /&gt;
&lt;br /&gt;
PAVEIKSLELIS&lt;br /&gt;
&lt;br /&gt;
'''Jeigu esi pilnai užpildęs(-iusi) savo klasės informaciją''' ir tavo mokytojas(-a) sukuria klasę - gausi informacinę žinutę su klausimu ar nori savo mokytojui(-ai) leisti matyti tavo paskyros informaciją, jeigu taip - sutikimo žinutėje reikia paspausti mygtuką „Taip“ ir būsi pridėtas(-a) prie klasės. &lt;br /&gt;
Žinutė pasirodys pagrindiniame lange ir tavo paskyros informacijos skiltyje „Mokyklos informacija“. &lt;br /&gt;
Informacinė žinutė atrodo taip: &lt;br /&gt;
&lt;br /&gt;
PAVEIKSLELIS&lt;br /&gt;
&lt;br /&gt;
'''Jeigu mokyklos informaciją supildei po to, kai mokytojas(-a) sukūrė klasę''' - gausi informacinę žinutę su klausimu ar nori pasidalinti savo duomenimis savo mokytoju(-a). Davus sutikimą - būsi pridėtas(-a) prie klasės. &lt;br /&gt;
Žinutė pasirodys pagrindiniame lange ir paskyros informacijos skiltyje „Mokyklos informacija“. &lt;br /&gt;
Informacinė žinutė atrodo taip: &lt;br /&gt;
&lt;br /&gt;
PAVEIKSLELIS&lt;br /&gt;
&lt;br /&gt;
Suvedus klasės kodą ar davus sutikimą, kad motytojas(-a) matytų tavo informaciją - būsi pridėtas(-a) prie savo klasės ir tavo mokytojas(-a) matys tavo lygių kodus, progresą, slapyvardį,  vardą ir pavardę (jeigu ši informacija yra tavo paskyroje). Daugiau tau nieko daryti nebereikia. &lt;br /&gt;
&lt;br /&gt;
=== Ar mano Angies progresas pasikeis, jeigu prisijungsiu prie klasės? ===&lt;br /&gt;
&lt;br /&gt;
Prisijungimas prie klasės neturi jokios įtakos Angies lygių sprendimui, progresui, organizuojamiems konkursams ar kt..&lt;br /&gt;
&lt;br /&gt;
=== Ar galiu atsisakyti prisijungti prie klasės? === &lt;br /&gt;
&lt;br /&gt;
Taip, jeigu nenori, kad tave pridėtų prie mokytojo(-os) sukurtos klasės - gali nesutikti, tada informacinėje sutikimo žinutėje tau reikia spausti mygtuką “Ne„.&lt;br /&gt;
&lt;br /&gt;
PAVEIKSLELIS&lt;br /&gt;
&lt;br /&gt;
Jeigu persigalvojai ir nori, kad mokytojas(-a) nebematytų tavo duomenų, nors sutikimą jau buvai davęs(-usi) - visada gali atisakyti dalintis duomenimis, tau tereikia savo paskyros informacijos skiltyje „Mokyklos informacija“ atšaukti savo sutikimą.&lt;br /&gt;
Atsisakymo laukelis atrodo taip: &lt;br /&gt;
&lt;br /&gt;
Atsisakius rodyti savo informaciją mokytojui(-ai) tavo duomenys iš karto bus ištrinami iš tavo klasės, o tavo paskyrai, progresui ar kitai informacijai tai jokios įtakos neturės. &lt;br /&gt;
&lt;br /&gt;
=== Kokią mano informaciją matys mokytojas jeigu prisijungsiu prie savo klasės? ===&lt;br /&gt;
&lt;br /&gt;
Lygių kodus, progresą, slapyvardį, vardą ir pavardę (jeigu ši informacija yra tavo paskyroje).&lt;br /&gt;
&lt;br /&gt;
Šią informaciją matys TIK tavo Informacinių technologijų klasės/būrelio/užsiėmimo mokytojas(-a), kitiems ši informacija nebus prieinama. &lt;br /&gt;
Daugiau informacijos kokiais duomenimis dalinamės galima rasti [http://Privatumo%20politikoje https://angis.net/#/privatumo-politika]. &lt;br /&gt;
&lt;br /&gt;
''Jeigu turi papildomų klausimų - kreipkis adresu: info@angis.net''&lt;/div&gt;</summary>
		<author><name>Rokas</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Mano_klas%C4%97s&amp;diff=3805</id>
		<title>Mano klasės</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Mano_klas%C4%97s&amp;diff=3805"/>
		<updated>2022-01-24T10:56:33Z</updated>

		<summary type="html">&lt;p&gt;Rokas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Naujas puslapis apie “Mano klasės” funkcionalumą.&lt;br /&gt;
&lt;br /&gt;
=== „Mano klasės“ ===&lt;br /&gt;
 &lt;br /&gt;
„Mano klasės“ sukurtos padėti tavo Informacinių technologijų mokytojui (-ai) naudoti Angies platformą pamokase ir/ar būreliuse, ar kartu su tavimi spręsti lygių užduotis. Matydamas tavo kodą ir progresą mokytojas(-a) galės atsakyti į tavo klausimus ir padėti pereiti lygius.&lt;br /&gt;
&lt;br /&gt;
=== Nelankau mokyklos, ar man reikia kažką daryti? ===&lt;br /&gt;
&lt;br /&gt;
Ne, ši informacija ir naujas funkcionalumas skirtas tik tiems vartotojams, kurių Informacinių klasių mokytojai nusprendė naudoti Angį pamokose/būreliuse/užsiėmimuse ir susitarė su moksleiviais, kad sukurs klasę. &lt;br /&gt;
&lt;br /&gt;
=== Kaip „Mano klasės“ veikia? ===&lt;br /&gt;
&lt;br /&gt;
Mokytojai sukuria klases prie kurių kviečia prisijungti moksleivius, kuriems veda Informacinių technologijų pamokas/būrelius/užsiėmimus. &lt;br /&gt;
&lt;br /&gt;
=== Ką man reikia daryti jeigu noriu prisijungti prie mokytojo(-os) sukurtos klasės? ===&lt;br /&gt;
&lt;br /&gt;
Prie mokytojo(-os) sukurtos klasės galima prisijungti šiais būdais: &lt;br /&gt;
&lt;br /&gt;
* Naudojant mokytojo(-os) sukurtą klasės kodą, kuris yra unikalus ir naudojamas tik tavo klasės;&lt;br /&gt;
* Jeigu tavo paskyros informacijoje tavo mokykla ir klasė užpildyta teisingai; &lt;br /&gt;
* Jeigu užpildysi savo paskyroje mokyklos ir klasės informaciją teisingai po to, kai mokytojas(-a) jau bus sukūrę tavo klasę;&lt;br /&gt;
&lt;br /&gt;
'''Jeigu naudojiesi mokytojo(-os) sukurtu klasės kodu''' - tau jį reikės suvesti paskyros informacijos skiltyje „Mokyklos informacija“.&lt;br /&gt;
&lt;br /&gt;
Klasės kodo suvedimo laukelis atrodo taip:&lt;br /&gt;
&lt;br /&gt;
PAVEIKSLELIS&lt;br /&gt;
&lt;br /&gt;
'''Jeigu esi pilnai užpildęs(-iusi) savo klasės informaciją''' ir tavo mokytojas(-a) sukuria klasę - gausi informacinę žinutę su klausimu ar nori savo mokytojui(-ai) leisti matyti tavo paskyros informaciją, jeigu taip - sutikimo žinutėje reikia paspausti mygtuką „Taip“ ir būsi pridėtas(-a) prie klasės. &lt;br /&gt;
Žinutė pasirodys pagrindiniame lange ir tavo paskyros informacijos skiltyje „Mokyklos informacija“. &lt;br /&gt;
Informacinė žinutė atrodo taip: &lt;br /&gt;
&lt;br /&gt;
PAVEIKSLELIS&lt;br /&gt;
&lt;br /&gt;
'''Jeigu mokyklos informaciją supildei po to, kai mokytojas(-a) sukūrė klasę''' - gausi informacinę žinutę su klausimu ar nori pasidalinti savo duomenimis savo mokytoju(-a). Davus sutikimą - būsi pridėtas(-a) prie klasės. &lt;br /&gt;
Žinutė pasirodys pagrindiniame lange ir paskyros informacijos skiltyje „Mokyklos informacija“. &lt;br /&gt;
Informacinė žinutė atrodo taip: &lt;br /&gt;
&lt;br /&gt;
PAVEIKSLELIS&lt;br /&gt;
&lt;br /&gt;
Suvedus klasės kodą ar davus sutikimą, kad motytojas(-a) matytų tavo informaciją - būsi pridėtas(-a) prie savo klasės ir tavo mokytojas(-a) matys tavo lygių kodus, progresą, slapyvardį,  vardą ir pavardę (jeigu ši informacija yra tavo paskyroje). Daugiau tau nieko daryti nebereikia. &lt;br /&gt;
&lt;br /&gt;
=== Ar mano Angies progresas pasikeis, jeigu prisijungsiu prie klasės? ===&lt;br /&gt;
&lt;br /&gt;
Prisijungimas prie klasės neturi jokios įtakos Angies lygių sprendimui, progresui, organizuojamiems konkursams ar kt..&lt;br /&gt;
&lt;br /&gt;
=== Ar galiu atsisakyti prisijungti prie klasės? === &lt;br /&gt;
&lt;br /&gt;
Taip, jeigu nenori, kad tave pridėtų prie mokytojo(-os) sukurtos klasės - gali nesutikti, tada informacinėje sutikimo žinutėje tau reikia spausti mygtuką “Ne„.&lt;br /&gt;
&lt;br /&gt;
PAVEIKSLELIS&lt;br /&gt;
&lt;br /&gt;
Jeigu persigalvojai ir nori, kad mokytojas(-a) nebematytų tavo duomenų, nors sutikimą jau buvai davęs(-usi) - visada gali atisakyti dalintis duomenimis, tau tereikia savo paskyros informacijos skiltyje „Mokyklos informacija“ atšaukti savo sutikimą.&lt;br /&gt;
Atsisakymo laukelis atrodo taip: &lt;br /&gt;
&lt;br /&gt;
Atsisakius rodyti savo informaciją mokytojui(-ai) tavo duomenys iš karto bus ištrinami iš tavo klasės, o tavo paskyrai, progresui ar kitai informacijai tai jokios įtakos neturės. &lt;br /&gt;
&lt;br /&gt;
=== Kokią mano informaciją matys mokytojas jeigu prisijungsiu prie savo klasės? ===&lt;br /&gt;
&lt;br /&gt;
Lygių kodus, progresą, slapyvardį, vardą ir pavardę (jeigu ši informacija yra tavo paskyroje).&lt;br /&gt;
&lt;br /&gt;
Šią informaciją matys TIK tavo Informacinių technologijų klasės/būrelio/užsiėmimo mokytojas(-a), kitiems ši informacija nebus prieinama. &lt;br /&gt;
Daugiau informacijos kokiais duomenimis dalinamės galima rasti [http://Privatumo%20politikoje https://angis.net/#/privatumo-politika]. &lt;br /&gt;
&lt;br /&gt;
''Jeigu turi papildomų klausimų - kreipkis adresu: info@angis.net''&lt;/div&gt;</summary>
		<author><name>Rokas</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Mano_klases&amp;diff=3804</id>
		<title>Mano klases</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Mano_klases&amp;diff=3804"/>
		<updated>2022-01-24T10:51:03Z</updated>

		<summary type="html">&lt;p&gt;Rokas: Rokas pervadino puslapį Mano klases į Mano klasės&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#PERADRESAVIMAS [[Mano klasės]]&lt;/div&gt;</summary>
		<author><name>Rokas</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Mano_klas%C4%97s&amp;diff=3803</id>
		<title>Mano klasės</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Mano_klas%C4%97s&amp;diff=3803"/>
		<updated>2022-01-24T10:51:03Z</updated>

		<summary type="html">&lt;p&gt;Rokas: Rokas pervadino puslapį Mano klases į Mano klasės&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Naujas puslapis apie “Mano klasės” funkcionalumą.&lt;br /&gt;
&lt;br /&gt;
=== „Mano klasės“ ===&lt;br /&gt;
 &lt;br /&gt;
„Mano klasės“ sukurtos padėti tavo Informacinių technologijų mokytojui (-ai) naudoti Angies platformą pamokase ir/ar būreliuse, ar kartu su tavimi spręsti lygių užduotis. Matydamas tavo kodą ir progresą mokytojas(-a) galės atsakyti į tavo klausimus ir padėti pereiti lygius.&lt;br /&gt;
&lt;br /&gt;
=== Nelankau mokyklos, ar man reikia kažką daryti? ===&lt;br /&gt;
&lt;br /&gt;
Ne, ši informacija ir naujas funkcionalumas skirtas tik tiems vartotojams, kurių Informacinių klasių mokytojai nusprendė naudoti Angį pamokose/būreliuse/užsiėmimuse ir susitarė su moksleiviais, kad sukurs klasę. &lt;br /&gt;
&lt;br /&gt;
=== Kaip „Mano klasės“ veikia? ===&lt;br /&gt;
&lt;br /&gt;
Mokytojai sukuria klases prie kurių kviečia prisijungti moksleivius, kuriems veda Informacinių technologijų pamokas/būrelius/užsiėmimus. &lt;br /&gt;
&lt;br /&gt;
=== Ką man reikia daryti jeigu noriu prisijungti prie mokytojo(-os) sukurtos klasės? ===&lt;br /&gt;
&lt;br /&gt;
Prie mokytojo(-os) sukurtos klasės galima prisijungti šiais būdais: &lt;br /&gt;
&lt;br /&gt;
* Naudojant mokytojo(-os) sukurtą klasės kodą, kuris yra unikalus ir naudojamas tik tavo klasės;&lt;br /&gt;
* Jeigu tavo paskyros informacijoje tavo mokykla ir klasė užpildyta teisingai; &lt;br /&gt;
* Jeigu užpildysi savo paskyroje mokyklos ir klasės informaciją teisingai po to, kai mokytojas(-a) jau bus sukūrę tavo klasę;&lt;br /&gt;
&lt;br /&gt;
'''Jeigu naudojiesi mokytojo(-os) sukurtu klasės kodu''' - tau jį reikės suvesti paskyros informacijos skiltyje „Mokyklos informacija“.&lt;br /&gt;
&lt;br /&gt;
Klasės kodo suvedimo laukelis atrodo taip:&lt;br /&gt;
&lt;br /&gt;
PAVEIKSLELIS&lt;br /&gt;
&lt;br /&gt;
'''Jeigu esi pilnai užpildęs(-iusi) savo klasės informaciją''' ir tavo mokytojas(-a) sukuria klasę - gausi informacinę žinutę su klausimu ar nori savo mokytojui(-ai) leisti matyti tavo paskyros informaciją, jeigu taip - sutikimo žinutėje reikia paspausti mygtuką „Taip“ ir būsi pridėtas(-a) prie klasės. &lt;br /&gt;
Žinutė pasirodys pagrindiniame lange ir tavo paskyros informacijos skiltyje „Mokyklos informacija“. &lt;br /&gt;
Informacinė žinutė atrodo taip: &lt;br /&gt;
&lt;br /&gt;
PAVEIKSLELIS&lt;br /&gt;
&lt;br /&gt;
'''Jeigu mokyklos informaciją supildei po to, kai mokytojas(-a) sukūrė klasę''' - gausi informacinę žinutę su klausimu ar nori pasidalinti savo duomenimis savo mokytoju(-a). Davus sutikimą - būsi pridėtas(-a) prie klasės. &lt;br /&gt;
Žinutė pasirodys pagrindiniame lange ir paskyros informacijos skiltyje „Mokyklos informacija“. &lt;br /&gt;
Informacinė žinutė atrodo taip: &lt;br /&gt;
&lt;br /&gt;
PAVEIKSLELIS&lt;br /&gt;
&lt;br /&gt;
Suvedus klasės kodą ar davus sutikimą, kad motytojas(-a) matytų tavo informaciją - būsi pridėtas(-a) prie savo klasės ir tavo mokytojas(-a) matys tavo lygių kodus, progresą, slapyvardį,  vardą ir pavardę (jeigu ši informacija yra tavo paskyroje). Daugiau tau nieko daryti nebereikia. &lt;br /&gt;
&lt;br /&gt;
=== Ar mano Angies progresas pasikeis, jeigu prisijungsiu prie klasės? ===&lt;br /&gt;
&lt;br /&gt;
Prisijungimas prie klasės neturi jokios įtakos Angies lygių sprendimui, progresui, organizuojamiems konkursams ar kt..&lt;br /&gt;
&lt;br /&gt;
=== Ar galiu atsisakyti prisijungti prie klasės? === &lt;br /&gt;
&lt;br /&gt;
Taip, jeigu nenori, kad tave pridėtų prie mokytojo(-os) sukurtos klasės - gali nesutikti, tada informacinėje sutikimo žinutėje tau reikia spausti mygtuką “Ne„.&lt;br /&gt;
&lt;br /&gt;
PAVEIKSLELIS&lt;br /&gt;
&lt;br /&gt;
Jeigu persigalvojai ir nori, kad mokytojas(-a) nebematytų tavo duomenų, nors sutikimą jau buvai davęs(-usi) - visada gali atisakyti dalintis duomenimis, tau tereikia savo paskyros informacijos skiltyje „Mokyklos informacija“ atšaukti savo sutikimą.&lt;br /&gt;
Atsisakymo laukelis atrodo taip: &lt;br /&gt;
&lt;br /&gt;
Atsisakius rodyti savo informaciją mokytojui(-ai) tavo duomenys iš karto bus ištrinami iš tavo klasės, o tavo paskyrai, progresui ar kitai informacijai tai jokios įtakos neturės. &lt;br /&gt;
&lt;br /&gt;
=== Kokią mano informaciją matys mokytojas jeigu prisijungsiu prie savo klasės? ===&lt;br /&gt;
&lt;br /&gt;
Lygių kodus, progresą, slapyvardį, vardą ir pavardę (jeigu ši informacija yra tavo paskyroje).&lt;br /&gt;
&lt;br /&gt;
Šią informaciją matys TIK tavo Informacinių technologijų klasės/būrelio/užsiėmimo mokytojas(-a), kitiems ši informacija nebus prieinama. &lt;br /&gt;
Daugiau informacijos kokiais duomenimis dalinamės galima rasti [http://Privatumo%20politikoje https://angis.net/#/privatumo-politika]. &lt;br /&gt;
&lt;br /&gt;
''Jeigu turi papildomų klausimų - kreipkis adresu: info@angis.net''&lt;br /&gt;
&lt;br /&gt;
///&lt;br /&gt;
&lt;br /&gt;
Trumpas intro, naudojamas '''„Mokyklos informacija“''' puslapyje: &lt;br /&gt;
&lt;br /&gt;
Naujas tekstas galėtų atsirasti virš sutikimo žinutės.&lt;br /&gt;
&lt;br /&gt;
Tekstas: &lt;br /&gt;
&lt;br /&gt;
Labas, šis puslapis skirtas tavo mokyklos informacijai. Jeigu nenori nurodyti savo mokyklos ar jos nelankai - puslapio informacijos pildyti nebūtina. &lt;br /&gt;
Jeigu nori prisijungti prie Informacinių technologijų pamokos/būrelio/užsiėmimo mokytojo(-os) sukurtos klasės - informaciją reikės užpildyti. Paaiškinimą kaip ir kodėl tai reikia padaryti gali rasti ČIA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PAVEIKSLELIS&lt;/div&gt;</summary>
		<author><name>Rokas</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Mano_klas%C4%97s&amp;diff=3802</id>
		<title>Mano klasės</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Mano_klas%C4%97s&amp;diff=3802"/>
		<updated>2022-01-24T10:49:12Z</updated>

		<summary type="html">&lt;p&gt;Rokas: /* Jeigu esi pilnai užpildęs(-iusi) savo klasės informaciją */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Naujas puslapis apie “Mano klasės” funkcionalumą.&lt;br /&gt;
&lt;br /&gt;
=== „Mano klasės“ ===&lt;br /&gt;
 &lt;br /&gt;
„Mano klasės“ sukurtos padėti tavo Informacinių technologijų mokytojui (-ai) naudoti Angies platformą pamokase ir/ar būreliuse, ar kartu su tavimi spręsti lygių užduotis. Matydamas tavo kodą ir progresą mokytojas(-a) galės atsakyti į tavo klausimus ir padėti pereiti lygius.&lt;br /&gt;
&lt;br /&gt;
=== Nelankau mokyklos, ar man reikia kažką daryti? ===&lt;br /&gt;
&lt;br /&gt;
Ne, ši informacija ir naujas funkcionalumas skirtas tik tiems vartotojams, kurių Informacinių klasių mokytojai nusprendė naudoti Angį pamokose/būreliuse/užsiėmimuse ir susitarė su moksleiviais, kad sukurs klasę. &lt;br /&gt;
&lt;br /&gt;
=== Kaip „Mano klasės“ veikia? ===&lt;br /&gt;
&lt;br /&gt;
Mokytojai sukuria klases prie kurių kviečia prisijungti moksleivius, kuriems veda Informacinių technologijų pamokas/būrelius/užsiėmimus. &lt;br /&gt;
&lt;br /&gt;
=== Ką man reikia daryti jeigu noriu prisijungti prie mokytojo(-os) sukurtos klasės? ===&lt;br /&gt;
&lt;br /&gt;
Prie mokytojo(-os) sukurtos klasės galima prisijungti šiais būdais: &lt;br /&gt;
&lt;br /&gt;
* Naudojant mokytojo(-os) sukurtą klasės kodą, kuris yra unikalus ir naudojamas tik tavo klasės;&lt;br /&gt;
* Jeigu tavo paskyros informacijoje tavo mokykla ir klasė užpildyta teisingai; &lt;br /&gt;
* Jeigu užpildysi savo paskyroje mokyklos ir klasės informaciją teisingai po to, kai mokytojas(-a) jau bus sukūrę tavo klasę;&lt;br /&gt;
&lt;br /&gt;
'''Jeigu naudojiesi mokytojo(-os) sukurtu klasės kodu''' - tau jį reikės suvesti paskyros informacijos skiltyje „Mokyklos informacija“.&lt;br /&gt;
&lt;br /&gt;
Klasės kodo suvedimo laukelis atrodo taip:&lt;br /&gt;
&lt;br /&gt;
PAVEIKSLELIS&lt;br /&gt;
&lt;br /&gt;
'''Jeigu esi pilnai užpildęs(-iusi) savo klasės informaciją''' ir tavo mokytojas(-a) sukuria klasę - gausi informacinę žinutę su klausimu ar nori savo mokytojui(-ai) leisti matyti tavo paskyros informaciją, jeigu taip - sutikimo žinutėje reikia paspausti mygtuką „Taip“ ir būsi pridėtas(-a) prie klasės. &lt;br /&gt;
Žinutė pasirodys pagrindiniame lange ir tavo paskyros informacijos skiltyje „Mokyklos informacija“. &lt;br /&gt;
Informacinė žinutė atrodo taip: &lt;br /&gt;
&lt;br /&gt;
PAVEIKSLELIS&lt;br /&gt;
&lt;br /&gt;
'''Jeigu mokyklos informaciją supildei po to, kai mokytojas(-a) sukūrė klasę''' - gausi informacinę žinutę su klausimu ar nori pasidalinti savo duomenimis savo mokytoju(-a). Davus sutikimą - būsi pridėtas(-a) prie klasės. &lt;br /&gt;
Žinutė pasirodys pagrindiniame lange ir paskyros informacijos skiltyje „Mokyklos informacija“. &lt;br /&gt;
Informacinė žinutė atrodo taip: &lt;br /&gt;
&lt;br /&gt;
PAVEIKSLELIS&lt;br /&gt;
&lt;br /&gt;
Suvedus klasės kodą ar davus sutikimą, kad motytojas(-a) matytų tavo informaciją - būsi pridėtas(-a) prie savo klasės ir tavo mokytojas(-a) matys tavo lygių kodus, progresą, slapyvardį,  vardą ir pavardę (jeigu ši informacija yra tavo paskyroje). Daugiau tau nieko daryti nebereikia. &lt;br /&gt;
&lt;br /&gt;
=== Ar mano Angies progresas pasikeis, jeigu prisijungsiu prie klasės? ===&lt;br /&gt;
&lt;br /&gt;
Prisijungimas prie klasės neturi jokios įtakos Angies lygių sprendimui, progresui, organizuojamiems konkursams ar kt..&lt;br /&gt;
&lt;br /&gt;
=== Ar galiu atsisakyti prisijungti prie klasės? === &lt;br /&gt;
&lt;br /&gt;
Taip, jeigu nenori, kad tave pridėtų prie mokytojo(-os) sukurtos klasės - gali nesutikti, tada informacinėje sutikimo žinutėje tau reikia spausti mygtuką “Ne„.&lt;br /&gt;
&lt;br /&gt;
PAVEIKSLELIS&lt;br /&gt;
&lt;br /&gt;
Jeigu persigalvojai ir nori, kad mokytojas(-a) nebematytų tavo duomenų, nors sutikimą jau buvai davęs(-usi) - visada gali atisakyti dalintis duomenimis, tau tereikia savo paskyros informacijos skiltyje „Mokyklos informacija“ atšaukti savo sutikimą.&lt;br /&gt;
Atsisakymo laukelis atrodo taip: &lt;br /&gt;
&lt;br /&gt;
Atsisakius rodyti savo informaciją mokytojui(-ai) tavo duomenys iš karto bus ištrinami iš tavo klasės, o tavo paskyrai, progresui ar kitai informacijai tai jokios įtakos neturės. &lt;br /&gt;
&lt;br /&gt;
=== Kokią mano informaciją matys mokytojas jeigu prisijungsiu prie savo klasės? ===&lt;br /&gt;
&lt;br /&gt;
Lygių kodus, progresą, slapyvardį, vardą ir pavardę (jeigu ši informacija yra tavo paskyroje).&lt;br /&gt;
&lt;br /&gt;
Šią informaciją matys TIK tavo Informacinių technologijų klasės/būrelio/užsiėmimo mokytojas(-a), kitiems ši informacija nebus prieinama. &lt;br /&gt;
Daugiau informacijos kokiais duomenimis dalinamės galima rasti [http://Privatumo%20politikoje https://angis.net/#/privatumo-politika]. &lt;br /&gt;
&lt;br /&gt;
''Jeigu turi papildomų klausimų - kreipkis adresu: info@angis.net''&lt;br /&gt;
&lt;br /&gt;
///&lt;br /&gt;
&lt;br /&gt;
Trumpas intro, naudojamas '''„Mokyklos informacija“''' puslapyje: &lt;br /&gt;
&lt;br /&gt;
Naujas tekstas galėtų atsirasti virš sutikimo žinutės.&lt;br /&gt;
&lt;br /&gt;
Tekstas: &lt;br /&gt;
&lt;br /&gt;
Labas, šis puslapis skirtas tavo mokyklos informacijai. Jeigu nenori nurodyti savo mokyklos ar jos nelankai - puslapio informacijos pildyti nebūtina. &lt;br /&gt;
Jeigu nori prisijungti prie Informacinių technologijų pamokos/būrelio/užsiėmimo mokytojo(-os) sukurtos klasės - informaciją reikės užpildyti. Paaiškinimą kaip ir kodėl tai reikia padaryti gali rasti ČIA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PAVEIKSLELIS&lt;/div&gt;</summary>
		<author><name>Rokas</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Mano_klas%C4%97s&amp;diff=3801</id>
		<title>Mano klasės</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Mano_klas%C4%97s&amp;diff=3801"/>
		<updated>2022-01-24T10:46:46Z</updated>

		<summary type="html">&lt;p&gt;Rokas: /* Jeigu naudojiesi mokytojo(-os) sukurtu klasės kodu */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Naujas puslapis apie “Mano klasės” funkcionalumą.&lt;br /&gt;
&lt;br /&gt;
=== „Mano klasės“ ===&lt;br /&gt;
 &lt;br /&gt;
„Mano klasės“ sukurtos padėti tavo Informacinių technologijų mokytojui (-ai) naudoti Angies platformą pamokase ir/ar būreliuse, ar kartu su tavimi spręsti lygių užduotis. Matydamas tavo kodą ir progresą mokytojas(-a) galės atsakyti į tavo klausimus ir padėti pereiti lygius.&lt;br /&gt;
&lt;br /&gt;
=== Nelankau mokyklos, ar man reikia kažką daryti? ===&lt;br /&gt;
&lt;br /&gt;
Ne, ši informacija ir naujas funkcionalumas skirtas tik tiems vartotojams, kurių Informacinių klasių mokytojai nusprendė naudoti Angį pamokose/būreliuse/užsiėmimuse ir susitarė su moksleiviais, kad sukurs klasę. &lt;br /&gt;
&lt;br /&gt;
=== Kaip „Mano klasės“ veikia? ===&lt;br /&gt;
&lt;br /&gt;
Mokytojai sukuria klases prie kurių kviečia prisijungti moksleivius, kuriems veda Informacinių technologijų pamokas/būrelius/užsiėmimus. &lt;br /&gt;
&lt;br /&gt;
=== Ką man reikia daryti jeigu noriu prisijungti prie mokytojo(-os) sukurtos klasės? ===&lt;br /&gt;
&lt;br /&gt;
Prie mokytojo(-os) sukurtos klasės galima prisijungti šiais būdais: &lt;br /&gt;
&lt;br /&gt;
* Naudojant mokytojo(-os) sukurtą klasės kodą, kuris yra unikalus ir naudojamas tik tavo klasės;&lt;br /&gt;
* Jeigu tavo paskyros informacijoje tavo mokykla ir klasė užpildyta teisingai; &lt;br /&gt;
* Jeigu užpildysi savo paskyroje mokyklos ir klasės informaciją teisingai po to, kai mokytojas(-a) jau bus sukūrę tavo klasę;&lt;br /&gt;
&lt;br /&gt;
'''Jeigu naudojiesi mokytojo(-os) sukurtu klasės kodu''' - tau jį reikės suvesti paskyros informacijos skiltyje „Mokyklos informacija“.&lt;br /&gt;
&lt;br /&gt;
Klasės kodo suvedimo laukelis atrodo taip:&lt;br /&gt;
&lt;br /&gt;
PAVEIKSLELIS&lt;br /&gt;
&lt;br /&gt;
=== Jeigu esi pilnai užpildęs(-iusi) savo klasės informaciją ===&lt;br /&gt;
 ir tavo mokytojas(-a) sukuria klasę - gausi informacinę žinutę su klausimu ar nori savo mokytojui(-ai) leisti matyti tavo paskyros informaciją, jeigu taip - sutikimo žinutėje reikia paspausti mygtuką „Taip“ ir būsi pridėtas(-a) prie klasės. &lt;br /&gt;
Žinutė pasirodys pagrindiniame lange ir tavo paskyros informacijos skiltyje „Mokyklos informacija“. &lt;br /&gt;
Informacinė žinutė atrodo taip: &lt;br /&gt;
&lt;br /&gt;
PAVEIKSLELIS&lt;br /&gt;
&lt;br /&gt;
Jeigu mokyklos informaciją supildei po to, kai mokytojas(-a) sukūrė klasę - gausi informacinę žinutę su klausimu ar nori pasidalinti savo duomenimis savo mokytoju(-a). Davus sutikimą - būsi pridėtas(-a) prie klasės. &lt;br /&gt;
Žinutė pasirodys pagrindiniame lange ir paskyros informacijos skiltyje „Mokyklos informacija“. &lt;br /&gt;
Informacinė žinutė atrodo taip: &lt;br /&gt;
&lt;br /&gt;
PAVEIKSLELIS&lt;br /&gt;
&lt;br /&gt;
Suvedus klasės kodą ar davus sutikimą, kad motytojas(-a) matytų tavo informaciją - būsi pridėtas(-a) prie savo klasės ir tavo mokytojas(-a) matys tavo lygių kodus, progresą, slapyvardį,  vardą ir pavardę (jeigu ši informacija yra tavo paskyroje). Daugiau tau nieko daryti nebereikia. &lt;br /&gt;
&lt;br /&gt;
Ar mano Angies progresas pasikeis, jeigu prisijungsiu prie klasės?&lt;br /&gt;
&lt;br /&gt;
Prisijungimas prie klasės neturi jokios įtakos Angies lygių sprendimui, progresui, organizuojamiems konkursams ar kt..&lt;br /&gt;
&lt;br /&gt;
Ar galiu atsisakyti prisijungti prie klasės? &lt;br /&gt;
&lt;br /&gt;
Taip, jeigu nenori, kad tave pridėtų prie mokytojo(-os) sukurtos klasės - gali nesutikti, tada informacinėje sutikimo žinutėje tau reikia spausti mygtuką “Ne„.&lt;br /&gt;
&lt;br /&gt;
PAVEIKSLELIS&lt;br /&gt;
&lt;br /&gt;
Jeigu persigalvojai ir nori, kad mokytojas(-a) nebematytų tavo duomenų, nors sutikimą jau buvai davęs(-usi) - visada gali atisakyti dalintis duomenimis, tau tereikia savo paskyros informacijos skiltyje „Mokyklos informacija“ atšaukti savo sutikimą.&lt;br /&gt;
Atsisakymo laukelis atrodo taip: &lt;br /&gt;
&lt;br /&gt;
Atsisakius rodyti savo informaciją mokytojui(-ai) tavo duomenys iš karto bus ištrinami iš tavo klasės, o tavo paskyrai, progresui ar kitai informacijai tai jokios įtakos neturės. &lt;br /&gt;
&lt;br /&gt;
Kokią mano informaciją matys mokytojas jeigu prisijungsiu prie savo klasės?&lt;br /&gt;
&lt;br /&gt;
Lygių kodus, progresą, slapyvardį, vardą ir pavardę (jeigu ši informacija yra tavo paskyroje).&lt;br /&gt;
&lt;br /&gt;
Šią informaciją matys TIK tavo Informacinių technologijų klasės/būrelio/užsiėmimo mokytojas(-a), kitiems ši informacija nebus prieinama. &lt;br /&gt;
Daugiau informacijos kokiais duomenimis dalinamės galima rasti Privatumo politikoje. &lt;br /&gt;
&lt;br /&gt;
Jeigu turi papildomų klausimų - kreipkis adresu: info@angis.net&lt;br /&gt;
&lt;br /&gt;
///&lt;br /&gt;
&lt;br /&gt;
Trumpas intro, naudojamas „Mokyklos informacija“ puslapyje: &lt;br /&gt;
&lt;br /&gt;
Naujas tekstas galėtų atsirasti virš sutikimo žinutės.&lt;br /&gt;
&lt;br /&gt;
Tekstas: &lt;br /&gt;
&lt;br /&gt;
Labas, šis puslapis skirtas tavo mokyklos informacijai. Jeigu nenori nurodyti savo mokyklos ar jos nelankai - puslapio informacijos pildyti nebūtina. &lt;br /&gt;
Jeigu nori prisijungti prie Informacinių technologijų pamokos/būrelio/užsiėmimo mokytojo(-os) sukurtos klasės - informaciją reikės užpildyti. Paaiškinimą kaip ir kodėl tai reikia padaryti gali rasti ČIA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PAVEIKSLELIS&lt;/div&gt;</summary>
		<author><name>Rokas</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Mano_klas%C4%97s&amp;diff=3800</id>
		<title>Mano klasės</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Mano_klas%C4%97s&amp;diff=3800"/>
		<updated>2022-01-24T10:46:14Z</updated>

		<summary type="html">&lt;p&gt;Rokas: /* Kaip „Mano klasės“ veikia? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Naujas puslapis apie “Mano klasės” funkcionalumą.&lt;br /&gt;
&lt;br /&gt;
=== „Mano klasės“ ===&lt;br /&gt;
 &lt;br /&gt;
„Mano klasės“ sukurtos padėti tavo Informacinių technologijų mokytojui (-ai) naudoti Angies platformą pamokase ir/ar būreliuse, ar kartu su tavimi spręsti lygių užduotis. Matydamas tavo kodą ir progresą mokytojas(-a) galės atsakyti į tavo klausimus ir padėti pereiti lygius.&lt;br /&gt;
&lt;br /&gt;
=== Nelankau mokyklos, ar man reikia kažką daryti? ===&lt;br /&gt;
&lt;br /&gt;
Ne, ši informacija ir naujas funkcionalumas skirtas tik tiems vartotojams, kurių Informacinių klasių mokytojai nusprendė naudoti Angį pamokose/būreliuse/užsiėmimuse ir susitarė su moksleiviais, kad sukurs klasę. &lt;br /&gt;
&lt;br /&gt;
=== Kaip „Mano klasės“ veikia? ===&lt;br /&gt;
&lt;br /&gt;
Mokytojai sukuria klases prie kurių kviečia prisijungti moksleivius, kuriems veda Informacinių technologijų pamokas/būrelius/užsiėmimus. &lt;br /&gt;
&lt;br /&gt;
=== Ką man reikia daryti jeigu noriu prisijungti prie mokytojo(-os) sukurtos klasės? ===&lt;br /&gt;
&lt;br /&gt;
Prie mokytojo(-os) sukurtos klasės galima prisijungti šiais būdais: &lt;br /&gt;
&lt;br /&gt;
* Naudojant mokytojo(-os) sukurtą klasės kodą, kuris yra unikalus ir naudojamas tik tavo klasės;&lt;br /&gt;
* Jeigu tavo paskyros informacijoje tavo mokykla ir klasė užpildyta teisingai; &lt;br /&gt;
* Jeigu užpildysi savo paskyroje mokyklos ir klasės informaciją teisingai po to, kai mokytojas(-a) jau bus sukūrę tavo klasę;&lt;br /&gt;
&lt;br /&gt;
=== Jeigu naudojiesi mokytojo(-os) sukurtu klasės kodu ===&lt;br /&gt;
 - tau jį reikės suvesti paskyros informacijos skiltyje „Mokyklos informacija“.&lt;br /&gt;
&lt;br /&gt;
Klasės kodo suvedimo laukelis atrodo taip:&lt;br /&gt;
&lt;br /&gt;
PAVEIKSLELIS&lt;br /&gt;
&lt;br /&gt;
=== Jeigu esi pilnai užpildęs(-iusi) savo klasės informaciją ===&lt;br /&gt;
 ir tavo mokytojas(-a) sukuria klasę - gausi informacinę žinutę su klausimu ar nori savo mokytojui(-ai) leisti matyti tavo paskyros informaciją, jeigu taip - sutikimo žinutėje reikia paspausti mygtuką „Taip“ ir būsi pridėtas(-a) prie klasės. &lt;br /&gt;
Žinutė pasirodys pagrindiniame lange ir tavo paskyros informacijos skiltyje „Mokyklos informacija“. &lt;br /&gt;
Informacinė žinutė atrodo taip: &lt;br /&gt;
&lt;br /&gt;
PAVEIKSLELIS&lt;br /&gt;
&lt;br /&gt;
Jeigu mokyklos informaciją supildei po to, kai mokytojas(-a) sukūrė klasę - gausi informacinę žinutę su klausimu ar nori pasidalinti savo duomenimis savo mokytoju(-a). Davus sutikimą - būsi pridėtas(-a) prie klasės. &lt;br /&gt;
Žinutė pasirodys pagrindiniame lange ir paskyros informacijos skiltyje „Mokyklos informacija“. &lt;br /&gt;
Informacinė žinutė atrodo taip: &lt;br /&gt;
&lt;br /&gt;
PAVEIKSLELIS&lt;br /&gt;
&lt;br /&gt;
Suvedus klasės kodą ar davus sutikimą, kad motytojas(-a) matytų tavo informaciją - būsi pridėtas(-a) prie savo klasės ir tavo mokytojas(-a) matys tavo lygių kodus, progresą, slapyvardį,  vardą ir pavardę (jeigu ši informacija yra tavo paskyroje). Daugiau tau nieko daryti nebereikia. &lt;br /&gt;
&lt;br /&gt;
Ar mano Angies progresas pasikeis, jeigu prisijungsiu prie klasės?&lt;br /&gt;
&lt;br /&gt;
Prisijungimas prie klasės neturi jokios įtakos Angies lygių sprendimui, progresui, organizuojamiems konkursams ar kt..&lt;br /&gt;
&lt;br /&gt;
Ar galiu atsisakyti prisijungti prie klasės? &lt;br /&gt;
&lt;br /&gt;
Taip, jeigu nenori, kad tave pridėtų prie mokytojo(-os) sukurtos klasės - gali nesutikti, tada informacinėje sutikimo žinutėje tau reikia spausti mygtuką “Ne„.&lt;br /&gt;
&lt;br /&gt;
PAVEIKSLELIS&lt;br /&gt;
&lt;br /&gt;
Jeigu persigalvojai ir nori, kad mokytojas(-a) nebematytų tavo duomenų, nors sutikimą jau buvai davęs(-usi) - visada gali atisakyti dalintis duomenimis, tau tereikia savo paskyros informacijos skiltyje „Mokyklos informacija“ atšaukti savo sutikimą.&lt;br /&gt;
Atsisakymo laukelis atrodo taip: &lt;br /&gt;
&lt;br /&gt;
Atsisakius rodyti savo informaciją mokytojui(-ai) tavo duomenys iš karto bus ištrinami iš tavo klasės, o tavo paskyrai, progresui ar kitai informacijai tai jokios įtakos neturės. &lt;br /&gt;
&lt;br /&gt;
Kokią mano informaciją matys mokytojas jeigu prisijungsiu prie savo klasės?&lt;br /&gt;
&lt;br /&gt;
Lygių kodus, progresą, slapyvardį, vardą ir pavardę (jeigu ši informacija yra tavo paskyroje).&lt;br /&gt;
&lt;br /&gt;
Šią informaciją matys TIK tavo Informacinių technologijų klasės/būrelio/užsiėmimo mokytojas(-a), kitiems ši informacija nebus prieinama. &lt;br /&gt;
Daugiau informacijos kokiais duomenimis dalinamės galima rasti Privatumo politikoje. &lt;br /&gt;
&lt;br /&gt;
Jeigu turi papildomų klausimų - kreipkis adresu: info@angis.net&lt;br /&gt;
&lt;br /&gt;
///&lt;br /&gt;
&lt;br /&gt;
Trumpas intro, naudojamas „Mokyklos informacija“ puslapyje: &lt;br /&gt;
&lt;br /&gt;
Naujas tekstas galėtų atsirasti virš sutikimo žinutės.&lt;br /&gt;
&lt;br /&gt;
Tekstas: &lt;br /&gt;
&lt;br /&gt;
Labas, šis puslapis skirtas tavo mokyklos informacijai. Jeigu nenori nurodyti savo mokyklos ar jos nelankai - puslapio informacijos pildyti nebūtina. &lt;br /&gt;
Jeigu nori prisijungti prie Informacinių technologijų pamokos/būrelio/užsiėmimo mokytojo(-os) sukurtos klasės - informaciją reikės užpildyti. Paaiškinimą kaip ir kodėl tai reikia padaryti gali rasti ČIA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PAVEIKSLELIS&lt;/div&gt;</summary>
		<author><name>Rokas</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Mano_klas%C4%97s&amp;diff=3799</id>
		<title>Mano klasės</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Mano_klas%C4%97s&amp;diff=3799"/>
		<updated>2022-01-24T10:45:50Z</updated>

		<summary type="html">&lt;p&gt;Rokas: /* Kaip „Mano klasės“ veikia? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Naujas puslapis apie “Mano klasės” funkcionalumą.&lt;br /&gt;
&lt;br /&gt;
=== „Mano klasės“ ===&lt;br /&gt;
 &lt;br /&gt;
„Mano klasės“ sukurtos padėti tavo Informacinių technologijų mokytojui (-ai) naudoti Angies platformą pamokase ir/ar būreliuse, ar kartu su tavimi spręsti lygių užduotis. Matydamas tavo kodą ir progresą mokytojas(-a) galės atsakyti į tavo klausimus ir padėti pereiti lygius.&lt;br /&gt;
&lt;br /&gt;
=== Nelankau mokyklos, ar man reikia kažką daryti? ===&lt;br /&gt;
&lt;br /&gt;
Ne, ši informacija ir naujas funkcionalumas skirtas tik tiems vartotojams, kurių Informacinių klasių mokytojai nusprendė naudoti Angį pamokose/būreliuse/užsiėmimuse ir susitarė su moksleiviais, kad sukurs klasę. &lt;br /&gt;
&lt;br /&gt;
=== Kaip „Mano klasės“ veikia? ===&lt;br /&gt;
&lt;br /&gt;
Mokytojai sukuria klases prie kurių kviečia prisijungti moksleivius, kuriems veda Informacinių technologijų pamokas/būrelius/užsiėmimus. &lt;br /&gt;
&lt;br /&gt;
Ką man reikia daryti jeigu noriu prisijungti prie mokytojo(-os) sukurtos klasės?&lt;br /&gt;
&lt;br /&gt;
Prie mokytojo(-os) sukurtos klasės galima prisijungti šiais būdais: &lt;br /&gt;
&lt;br /&gt;
* Naudojant mokytojo(-os) sukurtą klasės kodą, kuris yra unikalus ir naudojamas tik tavo klasės;&lt;br /&gt;
* Jeigu tavo paskyros informacijoje tavo mokykla ir klasė užpildyta teisingai; &lt;br /&gt;
* Jeigu užpildysi savo paskyroje mokyklos ir klasės informaciją teisingai po to, kai mokytojas(-a) jau bus sukūrę tavo klasę;&lt;br /&gt;
&lt;br /&gt;
=== Jeigu naudojiesi mokytojo(-os) sukurtu klasės kodu ===&lt;br /&gt;
 - tau jį reikės suvesti paskyros informacijos skiltyje „Mokyklos informacija“.&lt;br /&gt;
&lt;br /&gt;
Klasės kodo suvedimo laukelis atrodo taip:&lt;br /&gt;
&lt;br /&gt;
PAVEIKSLELIS&lt;br /&gt;
&lt;br /&gt;
=== Jeigu esi pilnai užpildęs(-iusi) savo klasės informaciją ===&lt;br /&gt;
 ir tavo mokytojas(-a) sukuria klasę - gausi informacinę žinutę su klausimu ar nori savo mokytojui(-ai) leisti matyti tavo paskyros informaciją, jeigu taip - sutikimo žinutėje reikia paspausti mygtuką „Taip“ ir būsi pridėtas(-a) prie klasės. &lt;br /&gt;
Žinutė pasirodys pagrindiniame lange ir tavo paskyros informacijos skiltyje „Mokyklos informacija“. &lt;br /&gt;
Informacinė žinutė atrodo taip: &lt;br /&gt;
&lt;br /&gt;
PAVEIKSLELIS&lt;br /&gt;
&lt;br /&gt;
Jeigu mokyklos informaciją supildei po to, kai mokytojas(-a) sukūrė klasę - gausi informacinę žinutę su klausimu ar nori pasidalinti savo duomenimis savo mokytoju(-a). Davus sutikimą - būsi pridėtas(-a) prie klasės. &lt;br /&gt;
Žinutė pasirodys pagrindiniame lange ir paskyros informacijos skiltyje „Mokyklos informacija“. &lt;br /&gt;
Informacinė žinutė atrodo taip: &lt;br /&gt;
&lt;br /&gt;
PAVEIKSLELIS&lt;br /&gt;
&lt;br /&gt;
Suvedus klasės kodą ar davus sutikimą, kad motytojas(-a) matytų tavo informaciją - būsi pridėtas(-a) prie savo klasės ir tavo mokytojas(-a) matys tavo lygių kodus, progresą, slapyvardį,  vardą ir pavardę (jeigu ši informacija yra tavo paskyroje). Daugiau tau nieko daryti nebereikia. &lt;br /&gt;
&lt;br /&gt;
Ar mano Angies progresas pasikeis, jeigu prisijungsiu prie klasės?&lt;br /&gt;
&lt;br /&gt;
Prisijungimas prie klasės neturi jokios įtakos Angies lygių sprendimui, progresui, organizuojamiems konkursams ar kt..&lt;br /&gt;
&lt;br /&gt;
Ar galiu atsisakyti prisijungti prie klasės? &lt;br /&gt;
&lt;br /&gt;
Taip, jeigu nenori, kad tave pridėtų prie mokytojo(-os) sukurtos klasės - gali nesutikti, tada informacinėje sutikimo žinutėje tau reikia spausti mygtuką “Ne„.&lt;br /&gt;
&lt;br /&gt;
PAVEIKSLELIS&lt;br /&gt;
&lt;br /&gt;
Jeigu persigalvojai ir nori, kad mokytojas(-a) nebematytų tavo duomenų, nors sutikimą jau buvai davęs(-usi) - visada gali atisakyti dalintis duomenimis, tau tereikia savo paskyros informacijos skiltyje „Mokyklos informacija“ atšaukti savo sutikimą.&lt;br /&gt;
Atsisakymo laukelis atrodo taip: &lt;br /&gt;
&lt;br /&gt;
Atsisakius rodyti savo informaciją mokytojui(-ai) tavo duomenys iš karto bus ištrinami iš tavo klasės, o tavo paskyrai, progresui ar kitai informacijai tai jokios įtakos neturės. &lt;br /&gt;
&lt;br /&gt;
Kokią mano informaciją matys mokytojas jeigu prisijungsiu prie savo klasės?&lt;br /&gt;
&lt;br /&gt;
Lygių kodus, progresą, slapyvardį, vardą ir pavardę (jeigu ši informacija yra tavo paskyroje).&lt;br /&gt;
&lt;br /&gt;
Šią informaciją matys TIK tavo Informacinių technologijų klasės/būrelio/užsiėmimo mokytojas(-a), kitiems ši informacija nebus prieinama. &lt;br /&gt;
Daugiau informacijos kokiais duomenimis dalinamės galima rasti Privatumo politikoje. &lt;br /&gt;
&lt;br /&gt;
Jeigu turi papildomų klausimų - kreipkis adresu: info@angis.net&lt;br /&gt;
&lt;br /&gt;
///&lt;br /&gt;
&lt;br /&gt;
Trumpas intro, naudojamas „Mokyklos informacija“ puslapyje: &lt;br /&gt;
&lt;br /&gt;
Naujas tekstas galėtų atsirasti virš sutikimo žinutės.&lt;br /&gt;
&lt;br /&gt;
Tekstas: &lt;br /&gt;
&lt;br /&gt;
Labas, šis puslapis skirtas tavo mokyklos informacijai. Jeigu nenori nurodyti savo mokyklos ar jos nelankai - puslapio informacijos pildyti nebūtina. &lt;br /&gt;
Jeigu nori prisijungti prie Informacinių technologijų pamokos/būrelio/užsiėmimo mokytojo(-os) sukurtos klasės - informaciją reikės užpildyti. Paaiškinimą kaip ir kodėl tai reikia padaryti gali rasti ČIA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PAVEIKSLELIS&lt;/div&gt;</summary>
		<author><name>Rokas</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Mano_klas%C4%97s&amp;diff=3798</id>
		<title>Mano klasės</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Mano_klas%C4%97s&amp;diff=3798"/>
		<updated>2022-01-24T10:45:29Z</updated>

		<summary type="html">&lt;p&gt;Rokas: /* Kaip „Mano klasės“ veikia? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Naujas puslapis apie “Mano klasės” funkcionalumą.&lt;br /&gt;
&lt;br /&gt;
=== „Mano klasės“ ===&lt;br /&gt;
 &lt;br /&gt;
„Mano klasės“ sukurtos padėti tavo Informacinių technologijų mokytojui (-ai) naudoti Angies platformą pamokase ir/ar būreliuse, ar kartu su tavimi spręsti lygių užduotis. Matydamas tavo kodą ir progresą mokytojas(-a) galės atsakyti į tavo klausimus ir padėti pereiti lygius.&lt;br /&gt;
&lt;br /&gt;
=== Nelankau mokyklos, ar man reikia kažką daryti? ===&lt;br /&gt;
&lt;br /&gt;
Ne, ši informacija ir naujas funkcionalumas skirtas tik tiems vartotojams, kurių Informacinių klasių mokytojai nusprendė naudoti Angį pamokose/būreliuse/užsiėmimuse ir susitarė su moksleiviais, kad sukurs klasę. &lt;br /&gt;
&lt;br /&gt;
=== Kaip „Mano klasės“ veikia? ===&lt;br /&gt;
&lt;br /&gt;
Mokytojai sukuria klases prie kurių kviečia prisijungti moksleivius, kuriems veda Informacinių technologijų pamokas/būrelius/užsiėmimus. &lt;br /&gt;
&lt;br /&gt;
Ką man reikia daryti jeigu noriu prisijungti prie mokytojo(-os) sukurtos klasės?&lt;br /&gt;
&lt;br /&gt;
Prie mokytojo(-os) sukurtos klasės galima prisijungti šiais būdais: &lt;br /&gt;
&lt;br /&gt;
* Punktuoto sąrašo elementas&lt;br /&gt;
Naudojant mokytojo(-os) sukurtą klasės kodą, kuris yra unikalus ir naudojamas tik tavo klasės;&lt;br /&gt;
* Punktuoto sąrašo elementas&lt;br /&gt;
Jeigu tavo paskyros informacijoje tavo mokykla ir klasė užpildyta teisingai; &lt;br /&gt;
* Punktuoto sąrašo elementas&lt;br /&gt;
Jeigu užpildysi savo paskyroje mokyklos ir klasės informaciją teisingai po to, kai mokytojas(-a) jau bus sukūrę tavo klasę;&lt;br /&gt;
&lt;br /&gt;
=== Jeigu naudojiesi mokytojo(-os) sukurtu klasės kodu ===&lt;br /&gt;
 - tau jį reikės suvesti paskyros informacijos skiltyje „Mokyklos informacija“.&lt;br /&gt;
&lt;br /&gt;
Klasės kodo suvedimo laukelis atrodo taip:&lt;br /&gt;
&lt;br /&gt;
PAVEIKSLELIS&lt;br /&gt;
&lt;br /&gt;
=== Jeigu esi pilnai užpildęs(-iusi) savo klasės informaciją ===&lt;br /&gt;
 ir tavo mokytojas(-a) sukuria klasę - gausi informacinę žinutę su klausimu ar nori savo mokytojui(-ai) leisti matyti tavo paskyros informaciją, jeigu taip - sutikimo žinutėje reikia paspausti mygtuką „Taip“ ir būsi pridėtas(-a) prie klasės. &lt;br /&gt;
Žinutė pasirodys pagrindiniame lange ir tavo paskyros informacijos skiltyje „Mokyklos informacija“. &lt;br /&gt;
Informacinė žinutė atrodo taip: &lt;br /&gt;
&lt;br /&gt;
PAVEIKSLELIS&lt;br /&gt;
&lt;br /&gt;
Jeigu mokyklos informaciją supildei po to, kai mokytojas(-a) sukūrė klasę - gausi informacinę žinutę su klausimu ar nori pasidalinti savo duomenimis savo mokytoju(-a). Davus sutikimą - būsi pridėtas(-a) prie klasės. &lt;br /&gt;
Žinutė pasirodys pagrindiniame lange ir paskyros informacijos skiltyje „Mokyklos informacija“. &lt;br /&gt;
Informacinė žinutė atrodo taip: &lt;br /&gt;
&lt;br /&gt;
PAVEIKSLELIS&lt;br /&gt;
&lt;br /&gt;
Suvedus klasės kodą ar davus sutikimą, kad motytojas(-a) matytų tavo informaciją - būsi pridėtas(-a) prie savo klasės ir tavo mokytojas(-a) matys tavo lygių kodus, progresą, slapyvardį,  vardą ir pavardę (jeigu ši informacija yra tavo paskyroje). Daugiau tau nieko daryti nebereikia. &lt;br /&gt;
&lt;br /&gt;
Ar mano Angies progresas pasikeis, jeigu prisijungsiu prie klasės?&lt;br /&gt;
&lt;br /&gt;
Prisijungimas prie klasės neturi jokios įtakos Angies lygių sprendimui, progresui, organizuojamiems konkursams ar kt..&lt;br /&gt;
&lt;br /&gt;
Ar galiu atsisakyti prisijungti prie klasės? &lt;br /&gt;
&lt;br /&gt;
Taip, jeigu nenori, kad tave pridėtų prie mokytojo(-os) sukurtos klasės - gali nesutikti, tada informacinėje sutikimo žinutėje tau reikia spausti mygtuką “Ne„.&lt;br /&gt;
&lt;br /&gt;
PAVEIKSLELIS&lt;br /&gt;
&lt;br /&gt;
Jeigu persigalvojai ir nori, kad mokytojas(-a) nebematytų tavo duomenų, nors sutikimą jau buvai davęs(-usi) - visada gali atisakyti dalintis duomenimis, tau tereikia savo paskyros informacijos skiltyje „Mokyklos informacija“ atšaukti savo sutikimą.&lt;br /&gt;
Atsisakymo laukelis atrodo taip: &lt;br /&gt;
&lt;br /&gt;
Atsisakius rodyti savo informaciją mokytojui(-ai) tavo duomenys iš karto bus ištrinami iš tavo klasės, o tavo paskyrai, progresui ar kitai informacijai tai jokios įtakos neturės. &lt;br /&gt;
&lt;br /&gt;
Kokią mano informaciją matys mokytojas jeigu prisijungsiu prie savo klasės?&lt;br /&gt;
&lt;br /&gt;
Lygių kodus, progresą, slapyvardį, vardą ir pavardę (jeigu ši informacija yra tavo paskyroje).&lt;br /&gt;
&lt;br /&gt;
Šią informaciją matys TIK tavo Informacinių technologijų klasės/būrelio/užsiėmimo mokytojas(-a), kitiems ši informacija nebus prieinama. &lt;br /&gt;
Daugiau informacijos kokiais duomenimis dalinamės galima rasti Privatumo politikoje. &lt;br /&gt;
&lt;br /&gt;
Jeigu turi papildomų klausimų - kreipkis adresu: info@angis.net&lt;br /&gt;
&lt;br /&gt;
///&lt;br /&gt;
&lt;br /&gt;
Trumpas intro, naudojamas „Mokyklos informacija“ puslapyje: &lt;br /&gt;
&lt;br /&gt;
Naujas tekstas galėtų atsirasti virš sutikimo žinutės.&lt;br /&gt;
&lt;br /&gt;
Tekstas: &lt;br /&gt;
&lt;br /&gt;
Labas, šis puslapis skirtas tavo mokyklos informacijai. Jeigu nenori nurodyti savo mokyklos ar jos nelankai - puslapio informacijos pildyti nebūtina. &lt;br /&gt;
Jeigu nori prisijungti prie Informacinių technologijų pamokos/būrelio/užsiėmimo mokytojo(-os) sukurtos klasės - informaciją reikės užpildyti. Paaiškinimą kaip ir kodėl tai reikia padaryti gali rasti ČIA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PAVEIKSLELIS&lt;/div&gt;</summary>
		<author><name>Rokas</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Mano_klas%C4%97s&amp;diff=3797</id>
		<title>Mano klasės</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Mano_klas%C4%97s&amp;diff=3797"/>
		<updated>2022-01-24T10:44:45Z</updated>

		<summary type="html">&lt;p&gt;Rokas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Naujas puslapis apie “Mano klasės” funkcionalumą.&lt;br /&gt;
&lt;br /&gt;
=== „Mano klasės“ ===&lt;br /&gt;
 &lt;br /&gt;
„Mano klasės“ sukurtos padėti tavo Informacinių technologijų mokytojui (-ai) naudoti Angies platformą pamokase ir/ar būreliuse, ar kartu su tavimi spręsti lygių užduotis. Matydamas tavo kodą ir progresą mokytojas(-a) galės atsakyti į tavo klausimus ir padėti pereiti lygius.&lt;br /&gt;
&lt;br /&gt;
=== Nelankau mokyklos, ar man reikia kažką daryti? ===&lt;br /&gt;
&lt;br /&gt;
Ne, ši informacija ir naujas funkcionalumas skirtas tik tiems vartotojams, kurių Informacinių klasių mokytojai nusprendė naudoti Angį pamokose/būreliuse/užsiėmimuse ir susitarė su moksleiviais, kad sukurs klasę. &lt;br /&gt;
&lt;br /&gt;
=== Kaip „Mano klasės“ veikia? ===&lt;br /&gt;
&lt;br /&gt;
Mokytojai sukuria klases prie kurių kviečia prisijungti moksleivius, kuriems veda Informacinių technologijų pamokas/būrelius/užsiėmimus. &lt;br /&gt;
&lt;br /&gt;
=== Ką man reikia daryti jeigu noriu prisijungti prie mokytojo(-os) sukurtos klasės?&lt;br /&gt;
 ===&lt;br /&gt;
Prie mokytojo(-os) sukurtos klasės galima prisijungti šiais būdais: &lt;br /&gt;
&lt;br /&gt;
- Naudojant mokytojo(-os) sukurtą klasės kodą, kuris yra unikalus ir naudojamas tik tavo klasės;&lt;br /&gt;
- Jeigu tavo paskyros informacijoje tavo mokykla ir klasė užpildyta teisingai; &lt;br /&gt;
- Jeigu užpildysi savo paskyroje mokyklos ir klasės informaciją teisingai po to, kai mokytojas(-a) jau bus sukūrę tavo klasę;&lt;br /&gt;
&lt;br /&gt;
=== Jeigu naudojiesi mokytojo(-os) sukurtu klasės kodu ===&lt;br /&gt;
 - tau jį reikės suvesti paskyros informacijos skiltyje „Mokyklos informacija“.&lt;br /&gt;
&lt;br /&gt;
Klasės kodo suvedimo laukelis atrodo taip:&lt;br /&gt;
&lt;br /&gt;
PAVEIKSLELIS&lt;br /&gt;
&lt;br /&gt;
=== Jeigu esi pilnai užpildęs(-iusi) savo klasės informaciją ===&lt;br /&gt;
 ir tavo mokytojas(-a) sukuria klasę - gausi informacinę žinutę su klausimu ar nori savo mokytojui(-ai) leisti matyti tavo paskyros informaciją, jeigu taip - sutikimo žinutėje reikia paspausti mygtuką „Taip“ ir būsi pridėtas(-a) prie klasės. &lt;br /&gt;
Žinutė pasirodys pagrindiniame lange ir tavo paskyros informacijos skiltyje „Mokyklos informacija“. &lt;br /&gt;
Informacinė žinutė atrodo taip: &lt;br /&gt;
&lt;br /&gt;
PAVEIKSLELIS&lt;br /&gt;
&lt;br /&gt;
Jeigu mokyklos informaciją supildei po to, kai mokytojas(-a) sukūrė klasę - gausi informacinę žinutę su klausimu ar nori pasidalinti savo duomenimis savo mokytoju(-a). Davus sutikimą - būsi pridėtas(-a) prie klasės. &lt;br /&gt;
Žinutė pasirodys pagrindiniame lange ir paskyros informacijos skiltyje „Mokyklos informacija“. &lt;br /&gt;
Informacinė žinutė atrodo taip: &lt;br /&gt;
&lt;br /&gt;
PAVEIKSLELIS&lt;br /&gt;
&lt;br /&gt;
Suvedus klasės kodą ar davus sutikimą, kad motytojas(-a) matytų tavo informaciją - būsi pridėtas(-a) prie savo klasės ir tavo mokytojas(-a) matys tavo lygių kodus, progresą, slapyvardį,  vardą ir pavardę (jeigu ši informacija yra tavo paskyroje). Daugiau tau nieko daryti nebereikia. &lt;br /&gt;
&lt;br /&gt;
Ar mano Angies progresas pasikeis, jeigu prisijungsiu prie klasės?&lt;br /&gt;
&lt;br /&gt;
Prisijungimas prie klasės neturi jokios įtakos Angies lygių sprendimui, progresui, organizuojamiems konkursams ar kt..&lt;br /&gt;
&lt;br /&gt;
Ar galiu atsisakyti prisijungti prie klasės? &lt;br /&gt;
&lt;br /&gt;
Taip, jeigu nenori, kad tave pridėtų prie mokytojo(-os) sukurtos klasės - gali nesutikti, tada informacinėje sutikimo žinutėje tau reikia spausti mygtuką “Ne„.&lt;br /&gt;
&lt;br /&gt;
PAVEIKSLELIS&lt;br /&gt;
&lt;br /&gt;
Jeigu persigalvojai ir nori, kad mokytojas(-a) nebematytų tavo duomenų, nors sutikimą jau buvai davęs(-usi) - visada gali atisakyti dalintis duomenimis, tau tereikia savo paskyros informacijos skiltyje „Mokyklos informacija“ atšaukti savo sutikimą.&lt;br /&gt;
Atsisakymo laukelis atrodo taip: &lt;br /&gt;
&lt;br /&gt;
Atsisakius rodyti savo informaciją mokytojui(-ai) tavo duomenys iš karto bus ištrinami iš tavo klasės, o tavo paskyrai, progresui ar kitai informacijai tai jokios įtakos neturės. &lt;br /&gt;
&lt;br /&gt;
Kokią mano informaciją matys mokytojas jeigu prisijungsiu prie savo klasės?&lt;br /&gt;
&lt;br /&gt;
Lygių kodus, progresą, slapyvardį, vardą ir pavardę (jeigu ši informacija yra tavo paskyroje).&lt;br /&gt;
&lt;br /&gt;
Šią informaciją matys TIK tavo Informacinių technologijų klasės/būrelio/užsiėmimo mokytojas(-a), kitiems ši informacija nebus prieinama. &lt;br /&gt;
Daugiau informacijos kokiais duomenimis dalinamės galima rasti Privatumo politikoje. &lt;br /&gt;
&lt;br /&gt;
Jeigu turi papildomų klausimų - kreipkis adresu: info@angis.net&lt;br /&gt;
&lt;br /&gt;
///&lt;br /&gt;
&lt;br /&gt;
Trumpas intro, naudojamas „Mokyklos informacija“ puslapyje: &lt;br /&gt;
&lt;br /&gt;
Naujas tekstas galėtų atsirasti virš sutikimo žinutės.&lt;br /&gt;
&lt;br /&gt;
Tekstas: &lt;br /&gt;
&lt;br /&gt;
Labas, šis puslapis skirtas tavo mokyklos informacijai. Jeigu nenori nurodyti savo mokyklos ar jos nelankai - puslapio informacijos pildyti nebūtina. &lt;br /&gt;
Jeigu nori prisijungti prie Informacinių technologijų pamokos/būrelio/užsiėmimo mokytojo(-os) sukurtos klasės - informaciją reikės užpildyti. Paaiškinimą kaip ir kodėl tai reikia padaryti gali rasti ČIA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PAVEIKSLELIS&lt;/div&gt;</summary>
		<author><name>Rokas</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Mano_klas%C4%97s&amp;diff=3796</id>
		<title>Mano klasės</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Mano_klas%C4%97s&amp;diff=3796"/>
		<updated>2022-01-24T10:42:34Z</updated>

		<summary type="html">&lt;p&gt;Rokas: Naujas puslapis: Naujas puslapis apie “Mano klasės” funkcionalumą.  „Mano klasės“  „Mano klasės“ sukurtos padėti tavo Informacinių technologijų mokytojui (-ai) naudoti Angies p...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Naujas puslapis apie “Mano klasės” funkcionalumą.&lt;br /&gt;
&lt;br /&gt;
„Mano klasės“&lt;br /&gt;
&lt;br /&gt;
„Mano klasės“ sukurtos padėti tavo Informacinių technologijų mokytojui (-ai) naudoti Angies platformą pamokase ir/ar būreliuse, ar kartu su tavimi spręsti lygių užduotis. Matydamas tavo kodą ir progresą mokytojas(-a) galės atsakyti į tavo klausimus ir padėti pereiti lygius.&lt;br /&gt;
&lt;br /&gt;
Nelankau mokyklos, ar man reikia kažką daryti?&lt;br /&gt;
&lt;br /&gt;
Ne, ši informacija ir naujas funkcionalumas skirtas tik tiems vartotojams, kurių Informacinių klasių mokytojai nusprendė naudoti Angį pamokose/būreliuse/užsiėmimuse ir susitarė su moksleiviais, kad sukurs klasę. &lt;br /&gt;
&lt;br /&gt;
Kaip „Mano klasės“ veikia?&lt;br /&gt;
&lt;br /&gt;
Mokytojai sukuria klases prie kurių kviečia prisijungti moksleivius, kuriems veda Informacinių technologijų pamokas/būrelius/užsiėmimus. &lt;br /&gt;
&lt;br /&gt;
Ką man reikia daryti jeigu noriu prisijungti prie mokytojo(-os) sukurtos klasės?&lt;br /&gt;
&lt;br /&gt;
Prie mokytojo(-os) sukurtos klasės galima prisijungti šiais būdais: &lt;br /&gt;
&lt;br /&gt;
Naudojant mokytojo(-os) sukurtą klasės kodą, kuris yra unikalus ir naudojamas tik tavo klasės;&lt;br /&gt;
Jeigu tavo paskyros informacijoje tavo mokykla ir klasė užpildyta teisingai; &lt;br /&gt;
Jeigu užpildysi savo paskyroje mokyklos ir klasės informaciją teisingai po to, kai mokytojas(-a) jau bus sukūrę tavo klasę;&lt;br /&gt;
&lt;br /&gt;
Jeigu naudojiesi mokytojo(-os) sukurtu klasės kodu - tau jį reikės suvesti paskyros informacijos skiltyje „Mokyklos informacija“.&lt;br /&gt;
&lt;br /&gt;
Klasės kodo suvedimo laukelis atrodo taip:&lt;br /&gt;
&lt;br /&gt;
PAVEIKSLELIS&lt;br /&gt;
&lt;br /&gt;
Jeigu esi pilnai užpildęs(-iusi) savo klasės informaciją ir tavo mokytojas(-a) sukuria klasę - gausi informacinę žinutę su klausimu ar nori savo mokytojui(-ai) leisti matyti tavo paskyros informaciją, jeigu taip - sutikimo žinutėje reikia paspausti mygtuką „Taip“ ir būsi pridėtas(-a) prie klasės. &lt;br /&gt;
Žinutė pasirodys pagrindiniame lange ir tavo paskyros informacijos skiltyje „Mokyklos informacija“. &lt;br /&gt;
Informacinė žinutė atrodo taip: &lt;br /&gt;
&lt;br /&gt;
PAVEIKSLELIS&lt;br /&gt;
&lt;br /&gt;
Jeigu mokyklos informaciją supildei po to, kai mokytojas(-a) sukūrė klasę - gausi informacinę žinutę su klausimu ar nori pasidalinti savo duomenimis savo mokytoju(-a). Davus sutikimą - būsi pridėtas(-a) prie klasės. &lt;br /&gt;
Žinutė pasirodys pagrindiniame lange ir paskyros informacijos skiltyje „Mokyklos informacija“. &lt;br /&gt;
Informacinė žinutė atrodo taip: &lt;br /&gt;
&lt;br /&gt;
PAVEIKSLELIS&lt;br /&gt;
&lt;br /&gt;
Suvedus klasės kodą ar davus sutikimą, kad motytojas(-a) matytų tavo informaciją - būsi pridėtas(-a) prie savo klasės ir tavo mokytojas(-a) matys tavo lygių kodus, progresą, slapyvardį,  vardą ir pavardę (jeigu ši informacija yra tavo paskyroje). Daugiau tau nieko daryti nebereikia. &lt;br /&gt;
&lt;br /&gt;
Ar mano Angies progresas pasikeis, jeigu prisijungsiu prie klasės?&lt;br /&gt;
&lt;br /&gt;
Prisijungimas prie klasės neturi jokios įtakos Angies lygių sprendimui, progresui, organizuojamiems konkursams ar kt..&lt;br /&gt;
&lt;br /&gt;
Ar galiu atsisakyti prisijungti prie klasės? &lt;br /&gt;
&lt;br /&gt;
Taip, jeigu nenori, kad tave pridėtų prie mokytojo(-os) sukurtos klasės - gali nesutikti, tada informacinėje sutikimo žinutėje tau reikia spausti mygtuką “Ne„.&lt;br /&gt;
&lt;br /&gt;
PAVEIKSLELIS&lt;br /&gt;
&lt;br /&gt;
Jeigu persigalvojai ir nori, kad mokytojas(-a) nebematytų tavo duomenų, nors sutikimą jau buvai davęs(-usi) - visada gali atisakyti dalintis duomenimis, tau tereikia savo paskyros informacijos skiltyje „Mokyklos informacija“ atšaukti savo sutikimą.&lt;br /&gt;
Atsisakymo laukelis atrodo taip: &lt;br /&gt;
&lt;br /&gt;
Atsisakius rodyti savo informaciją mokytojui(-ai) tavo duomenys iš karto bus ištrinami iš tavo klasės, o tavo paskyrai, progresui ar kitai informacijai tai jokios įtakos neturės. &lt;br /&gt;
&lt;br /&gt;
Kokią mano informaciją matys mokytojas jeigu prisijungsiu prie savo klasės?&lt;br /&gt;
&lt;br /&gt;
Lygių kodus, progresą, slapyvardį, vardą ir pavardę (jeigu ši informacija yra tavo paskyroje).&lt;br /&gt;
&lt;br /&gt;
Šią informaciją matys TIK tavo Informacinių technologijų klasės/būrelio/užsiėmimo mokytojas(-a), kitiems ši informacija nebus prieinama. &lt;br /&gt;
Daugiau informacijos kokiais duomenimis dalinamės galima rasti Privatumo politikoje. &lt;br /&gt;
&lt;br /&gt;
Jeigu turi papildomų klausimų - kreipkis adresu: info@angis.net&lt;br /&gt;
&lt;br /&gt;
///&lt;br /&gt;
&lt;br /&gt;
Trumpas intro, naudojamas „Mokyklos informacija“ puslapyje: &lt;br /&gt;
&lt;br /&gt;
Naujas tekstas galėtų atsirasti virš sutikimo žinutės.&lt;br /&gt;
&lt;br /&gt;
Tekstas: &lt;br /&gt;
&lt;br /&gt;
Labas, šis puslapis skirtas tavo mokyklos informacijai. Jeigu nenori nurodyti savo mokyklos ar jos nelankai - puslapio informacijos pildyti nebūtina. &lt;br /&gt;
Jeigu nori prisijungti prie Informacinių technologijų pamokos/būrelio/užsiėmimo mokytojo(-os) sukurtos klasės - informaciją reikės užpildyti. Paaiškinimą kaip ir kodėl tai reikia padaryti gali rasti ČIA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PAVEIKSLELIS&lt;/div&gt;</summary>
		<author><name>Rokas</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Ciklai_For&amp;diff=3754</id>
		<title>Python Vadovėlis/Ciklai For</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Ciklai_For&amp;diff=3754"/>
		<updated>2022-01-17T11:09:39Z</updated>

		<summary type="html">&lt;p&gt;Rokas: Atšauktas LauraK (Aptarimas | indėlis) keitimas (3746 versija)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ir štai naujas šio skyriaus spausdinimo būdas:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
nuo_vieno_iki_dešimt = range(1, 11)&lt;br /&gt;
for skaičius in nuo_vieno_iki_dešimt:&lt;br /&gt;
    print(skaičius)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ir kodo išvestis būtų tokia:&lt;br /&gt;
&lt;br /&gt;
 1&lt;br /&gt;
 2&lt;br /&gt;
 3&lt;br /&gt;
 4&lt;br /&gt;
 5&lt;br /&gt;
 6&lt;br /&gt;
 7&lt;br /&gt;
 8&lt;br /&gt;
 9&lt;br /&gt;
 10&lt;br /&gt;
&lt;br /&gt;
Išvestis atrodo labai pažįstama, tačiau programos kodas atrodo kitaip. Pirmoje eilutėje naudojama funkcija &amp;lt;code&amp;gt;range&amp;lt;/code&amp;gt;. Funkcija &amp;lt;code&amp;gt;range&amp;lt;/code&amp;gt; naudoja du argumentus, tokius kaip šie &amp;lt;code&amp;gt;range(pradžia, pabaiga)&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;pradžia&amp;lt;/code&amp;gt; yra pirmasis atkuriamas skaičius. &amp;lt;code&amp;gt;pabaiga&amp;lt;/code&amp;gt; yra vienu didesnis nei paskutinis atkuriamas skaičius. Atkreipk dėmesį, kad šį kodą galima parašyti ir trumpiau:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
for skaičius in range(1, 11):&lt;br /&gt;
    print(skaičius)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;range&amp;lt;/code&amp;gt; funkcija grąžina iteraciją. Tai galima paversti sąrašu naudojant funkciją &amp;lt;code&amp;gt;list&amp;lt;/code&amp;gt;.&lt;br /&gt;
Štai keli pavyzdžiai, parodantys, kas nutinka su komanda &amp;lt;code&amp;gt;range&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''range(1, 10)'''&lt;br /&gt;
 range(1, 10)&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''list(range(1, 10))'''&lt;br /&gt;
 [1, 2, 3, 4, 5, 6, 7, 8, 9]&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''list(range(-32, -20))'''&lt;br /&gt;
 [-32, -31, -30, -29, -28, -27, -26, -25, -24, -23, -22, -21]&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''list(range(5,21))'''&lt;br /&gt;
 [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''list(range(5))'''&lt;br /&gt;
 [0, 1, 2, 3, 4]&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''list(range(21, 5))'''&lt;br /&gt;
 []&lt;br /&gt;
&lt;br /&gt;
Eilutė &amp;lt;code&amp;gt;for skaičius in nuo_vieno_iki_dešimt:&amp;lt;/code&amp;gt; naudoja &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; valdymo struktūrą. &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; struktūra atrodo taip: &amp;lt;code&amp;gt;for elementas in sąrašas:&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;sąrašas&amp;lt;/code&amp;gt; pereinamas nuo pirmojo sąrašo elemento iki paskutinio. Kai &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; eina per kiekvieną sąrašo elementą, jis kiekvieną reikšmę priskiria &amp;lt;code&amp;gt;elementas&amp;lt;/code&amp;gt; kintamajam. Tai leidžia naudoti &amp;lt;code&amp;gt;elementas&amp;lt;/code&amp;gt; kiekvieną kartą, kai ciklas &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; pereinamas iš eilės. Štai dar vienas pavyzdys (tau nereikia šito įvesti), kad būtų lengviau suprasti:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
demoSąrašas = [&amp;quot;gyvybė&amp;quot;, 42, &amp;quot;visata&amp;quot;, 6, &amp;quot;ir&amp;quot;, 9, &amp;quot;oras&amp;quot;]&lt;br /&gt;
for elementas in demoSąrašas:&lt;br /&gt;
    print(&amp;quot;Dabartinis elementas yra:&amp;quot;, elementas)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rezultatas yra:&lt;br /&gt;
&lt;br /&gt;
 Dabartinis elementas yra: gyvybė&lt;br /&gt;
 Dabartinis elementas yra: 42&lt;br /&gt;
 Dabartinis elementas yra: visata&lt;br /&gt;
 Dabartinis elementas yra: 6&lt;br /&gt;
 Dabartinis elementas yra: ir&lt;br /&gt;
 Dabartinis elementas yra: 9&lt;br /&gt;
 Dabartinis elementas yra: oras&lt;br /&gt;
&lt;br /&gt;
Atkreipk dėmesį, kaip ciklas &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; praeina ir nustato elemento reikšmę kiekvienam sąrašo elementui. Taigi, kam tinkamas &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt;? Pirmasis naudojimas yra peržiūrėti visus sąrašo elementus ir ką nors padaryti su kiekvienu iš jų. Štai greitas būdas sudėti visus elementus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
sąrašas = [2, 4, 6, 8]&lt;br /&gt;
suma = 0&lt;br /&gt;
for skaičius in sąrašas:&lt;br /&gt;
    suma = suma + skaičius&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Suma yra:&amp;quot;, suma)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
o išvestis yra tiesiog:&lt;br /&gt;
&lt;br /&gt;
Suma yra: 20&lt;br /&gt;
&lt;br /&gt;
Arba gali parašyti programą, kad sužinotum, ar sąraše yra dublikatų. Pavyzdžiui kaip ši programa:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
sąrašas = [4, 5, 7, 8, 9, 1, 0, 7, 10]&lt;br /&gt;
sąrašas.sort()&lt;br /&gt;
praeitas = None&lt;br /&gt;
for elementas in sąrašas:&lt;br /&gt;
    if praeitas == elementas:&lt;br /&gt;
        print(&amp;quot;Dublikatas&amp;quot;, praeitas, &amp;quot;rastas.&amp;quot;)&lt;br /&gt;
    praeitas = elementas&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ir turime rezultatą:&lt;br /&gt;
&lt;br /&gt;
 Dublikatas 7 rastas.&lt;br /&gt;
&lt;br /&gt;
Gerai, tai kaip gi tai veikia? Čia yra speciali derinimo versija, kuri turėtų tau padėti suprasti (tau to nereikia įvesti):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
l = [4, 5, 7, 8, 9, 1, 0, 7, 10]&lt;br /&gt;
print(&amp;quot;l = [4, 5, 7, 8, 9, 1, 0, 7, 10]&amp;quot;, &amp;quot;\t\tl:&amp;quot;, l)&lt;br /&gt;
l.sort()&lt;br /&gt;
print(&amp;quot;l.sort()&amp;quot;, &amp;quot;\t\tl:&amp;quot;, l)&lt;br /&gt;
praeitas = l[0]&lt;br /&gt;
print(&amp;quot;praeitas = l[0]&amp;quot;, &amp;quot;\t\tpraeitas:&amp;quot;, praeitas)&lt;br /&gt;
del l[0]&lt;br /&gt;
print(&amp;quot;del l[0]&amp;quot;, &amp;quot;\t\tl:&amp;quot;, l)&lt;br /&gt;
for elementas in l:&lt;br /&gt;
    if praeitas == elementas:&lt;br /&gt;
        print(&amp;quot;Dublikatas&amp;quot;, praeitas, &amp;quot;rastas.&amp;quot;)&lt;br /&gt;
    print(&amp;quot;if praeitas == elementas:&amp;quot;, &amp;quot;\t\tpraeitas:&amp;quot;, praeitas, &amp;quot;\telementas:&amp;quot;, elementas)&lt;br /&gt;
    praeitas = elementas&lt;br /&gt;
    print(&amp;quot;praeitas = elementas&amp;quot;, &amp;quot;\t\tpraeitas:&amp;quot;, praeitas, &amp;quot;\telementas:&amp;quot;, elementas)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ir kodo išvestis būtų:&lt;br /&gt;
&lt;br /&gt;
 l = [4, 5, 7, 8, 9, 1, 0, 7, 10]        l: [4, 5, 7, 8, 9, 1, 0, 7, 10]&lt;br /&gt;
 l.sort()                l: [0, 1, 4, 5, 7, 7, 8, 9, 10]&lt;br /&gt;
 praeitas = l[0]             praeitas: 0&lt;br /&gt;
 del l[0]                l: [1, 4, 5, 7, 7, 8, 9, 10]&lt;br /&gt;
 if praeitas == elementas:        praeitas: 0         elementas: 1&lt;br /&gt;
 praeitas = elementas             praeitas: 1         elementas: 1&lt;br /&gt;
 if praeitas == elementas:        praeitas: 1         elementas: 4&lt;br /&gt;
 praeitas = elementas             praeitas: 4         elementas: 4&lt;br /&gt;
 if praeitas == elementas:        praeitas: 4         elementas: 5&lt;br /&gt;
 praeitas = elementas             praeitas: 5         elementas: 5&lt;br /&gt;
 if praeitas == elementas:        praeitas: 5         elementas: 7&lt;br /&gt;
 praeitas = elementas             praeitas: 7         elementas: 7&lt;br /&gt;
 Dublikatas 7 rastas.&lt;br /&gt;
 if praeitas == elementas:        praeitas: 7         elementas: 7&lt;br /&gt;
 praeitas = elementas             praeitas: 7         elementas: 7&lt;br /&gt;
 if praeitas == elementas:        praeitas: 7         elementas: 8&lt;br /&gt;
 praeitas = elementas             praeitas: 8         elementas: 8&lt;br /&gt;
 if praeitas == elementas:        praeitas: 8         elementas: 9&lt;br /&gt;
 praeitas = elementas             praeitas: 9         elementas: 9&lt;br /&gt;
 if praeitas == elementas:        praeitas: 9         elementas: 10&lt;br /&gt;
 praeitas = elementas             praeitas: 10        elementas: 10&lt;br /&gt;
&lt;br /&gt;
Priežastis, kodėl į kodą įdėjau tiek daug &amp;lt;code&amp;gt;print&amp;lt;/code&amp;gt; teiginių, buvo ta, kad galėtum matyti, kas vyksta kiekvienoje eilutėje (beje, jei kažkada negalėsi suprasti, kodėl programa neveikia, pabandyk įdėti daug spausdintų teiginių tose vietose, kur nori sužinoti, kas vyksta). Pirmiausia programa prasideda nuobodžiu senu sąrašu. Toliau programa surūšiuoja sąrašą. Tai darome tam, kad visi dublikatai būtų dedami vienas šalia kito. Tada programa inicijuoja kintamąjį &amp;lt;code&amp;gt;praeitas&amp;lt;/code&amp;gt;. Tada pirmasis sąrašo elementas ištrinamas, kad pirmasis elementas nebūtų klaidingai laikomas dublikatu. Toliau inicijuojamas &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; ciklas. Kiekvienas sąrašo elementas tikrinamas, ar jis sutampa su ankstesniu. Jeigu sutampa - dublikatas rastas. Tada kintamasis &amp;lt;code&amp;gt;praeitas&amp;lt;/code&amp;gt; yra pakeičiamas taip, kad kitame &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; cikle kintamasis &amp;lt;code&amp;gt;praeitas&amp;lt;/code&amp;gt; būtų ankstesnis dabartinis elementas. Be abejo, nustatytome, kad 7 yra dublikatas.  (Atkreipk dėmesį, kaip &amp;lt;code&amp;gt;\t&amp;lt;/code&amp;gt; naudojamas spausdinant tabuliavimo žymę (tab'as).)  &lt;br /&gt;
&lt;br /&gt;
Kitas būdas naudoti &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; ciklą yra norint ką nors padaryti tam tikrą skaičių kartų. Štai trumpas kodas, kaip atspausdinti pirmuosius 9 „Fibonacci“ serijos sakičius:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
a = 1&lt;br /&gt;
b = 1&lt;br /&gt;
for c in range(1, 10):&lt;br /&gt;
    print(a, end=&amp;quot; &amp;quot;)&lt;br /&gt;
    n = a + b&lt;br /&gt;
    a = b&lt;br /&gt;
    b = n&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
su stebėtinu rezultatu:&lt;br /&gt;
&lt;br /&gt;
 1 1 2 3 5 8 13 21 34&lt;br /&gt;
&lt;br /&gt;
Viskas, ką galima padaryti naudojant &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; ciklą, taip pat gali būti padaryta naudojant &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; ciklą, bet &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; ciklas suteikia lengvą būdą pereiti per visus sąrašo elementus arba ką nors padaryti tam tikrą skaičių kartų.&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Sąrašai |next=Loginiai reiškiniai}}&lt;br /&gt;
{{BookCat}}&lt;/div&gt;</summary>
		<author><name>Rokas</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=S%C4%85ra%C5%A1as_(List)&amp;diff=3612</id>
		<title>Sąrašas (List)</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=S%C4%85ra%C5%A1as_(List)&amp;diff=3612"/>
		<updated>2021-12-12T17:13:26Z</updated>

		<summary type="html">&lt;p&gt;Rokas: /* Prieiga prie sąrašo elementų */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sąrašas (List) Python programavimo kalboje yra vienas iš jau sukurtų ir integruotų duomenų tipų. Listus naudojame saugoti elementams, kurių skaičius yra neribojamas, o tipas gali būti bet koks ([[Tekstinė reikšmė (strings)|tekstinė reikšmė (str)]], [[Skaičiai|skaičius (int)]],  [[Žodynai (Dictionary)|žodynas (dictionary)]] ir t.t.). Taip pat įsidėmėk, kad sąrašas kaip elementą gali turėti ir kitą sąrašą, ir tai vadinama įdėtu listu (nested list). Sąrašus užrašome taip: pirma eina sąrašo pavadinimas, tada lygybės ženklas ir visi elementai laužtiniuose skliaustuose (elementus tarpusavyje atskiriame kableliu) &amp;lt;code&amp;gt;sąrašo_pavadinimas = [elementas1, elementas2, elementas3]&amp;lt;/code&amp;gt;. Sąrašo pavyzdys:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
duomenys = ['uosis', 1, ['labas','ate'], True]&lt;br /&gt;
print(duomenys) # ['uosis', 1, ['labas', 'ate'], True]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===Prieiga prie sąrašo elementų===&lt;br /&gt;
Aukščiau pateiktame pavyzdyje matai, kad jeigu atspausdiname sąrašą, tai gauname visą sąrašą, bet ne atskirus elementus. Kadangi sąrašo elementai Python programavimo kalboje yra indeksuojami, tai gauti elementą galime nurodę jo indeksą. Tik atsimink, kad pirmas sąrašo elementas indeksuojamas 0. Elementai gali dubliuotis, o pridėjus papildomą elementą į sąrašą - jis prisidės sąrašo gale, todėl visų kitų elementų indeksavimas nesikeis (nebent nurodysime kitaip) Pavyzdžiui:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
medžiai = ['uosis', 'ąžuolas', 'liepa', 'drebulė', 'uosis']&lt;br /&gt;
print (medžiai) # ['uosis', 'ąžuolas', 'liepa', 'drebulė']&lt;br /&gt;
&lt;br /&gt;
print (medžiai[0]) # uosis&lt;br /&gt;
print (medžiai[1]) # ąžuolas&lt;br /&gt;
print (medžiai[2]) # liepa&lt;br /&gt;
print (medžiai[3]) # drebulė&lt;br /&gt;
print (medžiai[4]) # uosis&lt;br /&gt;
&lt;br /&gt;
medžiai.append('eglė')&lt;br /&gt;
print(medžiai) # ['uosis', 'ąžuolas', 'liepa', 'drebulė', 'uosis', 'eglė']&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sąrašas gali būti indeksuojamas ir nuo pabaigos. Iš principo viskas lygiai taip pat kaip ir [[Tekstinė reikšmė (strings)|tekstinės reikšmės indeksavime]].&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Sąrašo elementas:&lt;br /&gt;
! uosis&lt;br /&gt;
! ąžuolas&lt;br /&gt;
! liepa &lt;br /&gt;
! drebulė&lt;br /&gt;
! uosis&lt;br /&gt;
! eglė&lt;br /&gt;
|-&lt;br /&gt;
|Pozicija:&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|5&lt;br /&gt;
|-&lt;br /&gt;
|Pozicija skaičiuojant nuo galo:&lt;br /&gt;
| -6&lt;br /&gt;
| -5&lt;br /&gt;
| -4&lt;br /&gt;
| -3&lt;br /&gt;
| -2&lt;br /&gt;
| -1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Neigiamas indeksavimas===&lt;br /&gt;
Jeigu įvedi neigiamą indeksą, tai gausi sąrašo elementą skaičiuojant nuo galo.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
medžiai = ['uosis', 'ąžuolas', 'liepa', 'drebulė', 'uosis']&lt;br /&gt;
print (medžiai[-2]) # drebulė&lt;br /&gt;
print (medžiai[-4]) # ąžuolas&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sąrašo pjaustymas (list slicing)==&lt;br /&gt;
&lt;br /&gt;
Taigi atsimink, kad:&lt;br /&gt;
*sąrašo elementai yra indeksuojami&lt;br /&gt;
*sąrašo elementai gali dublikuotis&lt;br /&gt;
*sąrašo elementų eiliškumas pridėjus naują elementą nesikeičia &lt;br /&gt;
*sąrašo elementus galima keisti, pridėti, atimti&lt;br /&gt;
&lt;br /&gt;
===Sąrašo elementų keitimas===&lt;br /&gt;
===Pridėti elementus į sąrašą===&lt;br /&gt;
===Pašalinti elementus iš sąrašo===&lt;br /&gt;
===Sąrašo elementų peržiūrėjimas naudojant ciklą===&lt;br /&gt;
===Sąrašo (?) List Comprehension ===&lt;br /&gt;
====Sąrašo supratimas su sąlygine logika====&lt;br /&gt;
===Sąrašo rūšiavimas===&lt;br /&gt;
===Sąrašo kopijavimas===&lt;br /&gt;
===Sąrašo reikšmių keitimas===&lt;br /&gt;
===Sąrašo sudėjimas/sujungimas (Join lists)===&lt;br /&gt;
===Nested sąrašai===&lt;br /&gt;
===Sąrašo metodai===&lt;br /&gt;
       Clear()&lt;br /&gt;
       Pop()&lt;br /&gt;
       Remove()&lt;br /&gt;
       Index()&lt;br /&gt;
       Count()&lt;br /&gt;
       Sort()&lt;br /&gt;
       Reverse()&lt;br /&gt;
       Join()&lt;br /&gt;
===Slices===&lt;br /&gt;
===Sąrašo užduotys===&lt;/div&gt;</summary>
		<author><name>Rokas</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=S%C4%85ra%C5%A1as_(List)&amp;diff=3611</id>
		<title>Sąrašas (List)</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=S%C4%85ra%C5%A1as_(List)&amp;diff=3611"/>
		<updated>2021-12-12T15:33:00Z</updated>

		<summary type="html">&lt;p&gt;Rokas: /* Neigiamas indeksavimas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sąrašas (List) Python programavimo kalboje yra vienas iš jau sukurtų ir integruotų duomenų tipų. Listus naudojame saugoti elementams, kurių skaičius yra neribojamas, o tipas gali būti bet koks ([[Tekstinė reikšmė (strings)|tekstinė reikšmė (str)]], [[Skaičiai|skaičius (int)]],  [[Žodynai (Dictionary)|žodynas (dictionary)]] ir t.t.). Taip pat įsidėmėk, kad sąrašas kaip elementą gali turėti ir kitą sąrašą, ir tai vadinama įdėtu listu (nested list). Sąrašus užrašome taip: pirma eina sąrašo pavadinimas, tada lygybės ženklas ir visi elementai laužtiniuose skliaustuose (elementus tarpusavyje atskiriame kableliu) &amp;lt;code&amp;gt;sąrašo_pavadinimas = [elementas1, elementas2, elementas3]&amp;lt;/code&amp;gt;. Sąrašo pavyzdys:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
duomenys = ['uosis', 1, ['labas','ate'], True]&lt;br /&gt;
print(duomenys) # ['uosis', 1, ['labas', 'ate'], True]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===Prieiga prie sąrašo elementų===&lt;br /&gt;
Aukščiau pateiktame pavyzdyje matai, kad jeigu atspausdiname sąrašą, tai gauname visą sąrašą, bet ne atskirus elementus. Kadangi sąrašo elementai Python programavimo kalboje yra indeksuojami, tai gauti elementą galime nurodę jo indeksą. Tik atsimink, kad pirmas sąrašo elementas indeksuojamas 0. Elementai gali dubliuotis, o pridėjus papildomą elementą į sąrašą - jis prisidės sąrašo gale, todėl visų kitų elementų indeksavimas nesikeis (nebent nurodysime kitaip) Pavyzdžiui:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
medžiai = ['uosis', 'ąžuolas', 'liepa', 'drebulė', 'uosis']&lt;br /&gt;
print (medžiai) # ['uosis', 'ąžuolas', 'liepa', 'drebulė']&lt;br /&gt;
&lt;br /&gt;
print (medžiai[0]) # uosis&lt;br /&gt;
print (medžiai[1]) # ąžuolas&lt;br /&gt;
print (medžiai[2]) # liepa&lt;br /&gt;
print (medžiai[3]) # drebulė&lt;br /&gt;
print (medžiai[4]) # uosis&lt;br /&gt;
&lt;br /&gt;
medžiai.append('eglė')&lt;br /&gt;
print(medžiai) # ['uosis', 'ąžuolas', 'liepa', 'drebulė', 'uosis', 'eglė']&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sąrašas gali būti indeksuojamas ir nuo pabaigos. Iš principo viskas lygiai taip pat kaip ir [[Tekstinė reikšmė (strings)|tekstinės reikšmės indeksavime]].&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Sąrašo elementas:&lt;br /&gt;
! uosis&lt;br /&gt;
! ąžuolas&lt;br /&gt;
! liepa &lt;br /&gt;
! drebulė&lt;br /&gt;
! uosis&lt;br /&gt;
! eglė&lt;br /&gt;
|-&lt;br /&gt;
|Pozicija:&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|5&lt;br /&gt;
|-&lt;br /&gt;
|Pozicija skaičiuojant nuo galo:&lt;br /&gt;
| -6&lt;br /&gt;
| -5&lt;br /&gt;
| -4&lt;br /&gt;
| -3&lt;br /&gt;
| -2&lt;br /&gt;
| -1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Taigi atsimink, kad:&lt;br /&gt;
*sąrašo elementai yra indeksuojami&lt;br /&gt;
*sąrašo elementai gali dublikuotis&lt;br /&gt;
*sąrašo elementų eiliškumas pridėjus naują elementą nesikeičia &lt;br /&gt;
*sąrašo elementus galima keisti, pridėti, atimti&lt;br /&gt;
&lt;br /&gt;
===Sąrašo elementų keitimas===&lt;br /&gt;
===Pridėti elementus į sąrašą===&lt;br /&gt;
===Pašalinti elementus iš sąrašo===&lt;br /&gt;
===Sąrašo elementų peržiūrėjimas naudojant ciklą===&lt;br /&gt;
===Sąrašo (?) List Comprehension ===&lt;br /&gt;
====Sąrašo supratimas su sąlygine logika====&lt;br /&gt;
===Sąrašo rūšiavimas===&lt;br /&gt;
===Sąrašo kopijavimas===&lt;br /&gt;
===Sąrašo reikšmių keitimas===&lt;br /&gt;
===Sąrašo sudėjimas/sujungimas (Join lists)===&lt;br /&gt;
===Nested sąrašai===&lt;br /&gt;
===Sąrašo metodai===&lt;br /&gt;
       Clear()&lt;br /&gt;
       Pop()&lt;br /&gt;
       Remove()&lt;br /&gt;
       Index()&lt;br /&gt;
       Count()&lt;br /&gt;
       Sort()&lt;br /&gt;
       Reverse()&lt;br /&gt;
       Join()&lt;br /&gt;
===Slices===&lt;br /&gt;
===Sąrašo užduotys===&lt;/div&gt;</summary>
		<author><name>Rokas</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=S%C4%85ra%C5%A1as_(List)&amp;diff=3610</id>
		<title>Sąrašas (List)</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=S%C4%85ra%C5%A1as_(List)&amp;diff=3610"/>
		<updated>2021-12-12T15:30:03Z</updated>

		<summary type="html">&lt;p&gt;Rokas: /* Neigiamas indeksavimas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sąrašas (List) Python programavimo kalboje yra vienas iš jau sukurtų ir integruotų duomenų tipų. Listus naudojame saugoti elementams, kurių skaičius yra neribojamas, o tipas gali būti bet koks ([[Tekstinė reikšmė (strings)|tekstinė reikšmė (str)]], [[Skaičiai|skaičius (int)]],  [[Žodynai (Dictionary)|žodynas (dictionary)]] ir t.t.). Taip pat įsidėmėk, kad sąrašas kaip elementą gali turėti ir kitą sąrašą, ir tai vadinama įdėtu listu (nested list). Sąrašus užrašome taip: pirma eina sąrašo pavadinimas, tada lygybės ženklas ir visi elementai laužtiniuose skliaustuose (elementus tarpusavyje atskiriame kableliu) &amp;lt;code&amp;gt;sąrašo_pavadinimas = [elementas1, elementas2, elementas3]&amp;lt;/code&amp;gt;. Sąrašo pavyzdys:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
duomenys = ['uosis', 1, ['labas','ate'], True]&lt;br /&gt;
print(duomenys) # ['uosis', 1, ['labas', 'ate'], True]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===Prieiga prie sąrašo elementų===&lt;br /&gt;
Aukščiau pateiktame pavyzdyje matai, kad jeigu atspausdiname sąrašą, tai gauname visą sąrašą, bet ne atskirus elementus. Kadangi sąrašo elementai Python programavimo kalboje yra indeksuojami, tai gauti elementą galime nurodę jo indeksą. Tik atsimink, kad pirmas sąrašo elementas indeksuojamas 0. Elementai gali dubliuotis, o pridėjus papildomą elementą į sąrašą - jis prisidės sąrašo gale, todėl visų kitų elementų indeksavimas nesikeis (nebent nurodysime kitaip) Pavyzdžiui:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
medžiai = ['uosis', 'ąžuolas', 'liepa', 'drebulė', 'uosis']&lt;br /&gt;
print (medžiai) # ['uosis', 'ąžuolas', 'liepa', 'drebulė']&lt;br /&gt;
&lt;br /&gt;
print (medžiai[0]) # uosis&lt;br /&gt;
print (medžiai[1]) # ąžuolas&lt;br /&gt;
print (medžiai[2]) # liepa&lt;br /&gt;
print (medžiai[3]) # drebulė&lt;br /&gt;
print (medžiai[4]) # uosis&lt;br /&gt;
&lt;br /&gt;
medžiai.append('eglė')&lt;br /&gt;
print(medžiai) # ['uosis', 'ąžuolas', 'liepa', 'drebulė', 'uosis', 'eglė']&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Neigiamas indeksavimas ====&lt;br /&gt;
Sąrašas gali būti indeksuojamas ir nuo pabaigos. Indeksavimo pavyzdys&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Sąrašo elementas:&lt;br /&gt;
! uosis&lt;br /&gt;
! ąžuolas&lt;br /&gt;
! liepa &lt;br /&gt;
! drebulė&lt;br /&gt;
! uosis&lt;br /&gt;
! eglė&lt;br /&gt;
|-&lt;br /&gt;
|Pozicija:&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|5&lt;br /&gt;
|-&lt;br /&gt;
|Pozicija skaičiuojant nuo galo:&lt;br /&gt;
| -6&lt;br /&gt;
| -5&lt;br /&gt;
| -4&lt;br /&gt;
| -3&lt;br /&gt;
| -2&lt;br /&gt;
| -1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Taigi atsimink, kad:&lt;br /&gt;
*sąrašo elementai yra indeksuojami&lt;br /&gt;
*sąrašo elementai gali dublikuotis&lt;br /&gt;
*sąrašo elementų eiliškumas pridėjus naują elementą nesikeičia &lt;br /&gt;
*sąrašo elementus galima keisti, pridėti, atimti&lt;br /&gt;
&lt;br /&gt;
===Sąrašo elementų keitimas===&lt;br /&gt;
===Pridėti elementus į sąrašą===&lt;br /&gt;
===Pašalinti elementus iš sąrašo===&lt;br /&gt;
===Sąrašo elementų peržiūrėjimas naudojant ciklą===&lt;br /&gt;
===Sąrašo (?) List Comprehension ===&lt;br /&gt;
====Sąrašo supratimas su sąlygine logika====&lt;br /&gt;
===Sąrašo rūšiavimas===&lt;br /&gt;
===Sąrašo kopijavimas===&lt;br /&gt;
===Sąrašo reikšmių keitimas===&lt;br /&gt;
===Sąrašo sudėjimas/sujungimas (Join lists)===&lt;br /&gt;
===Nested sąrašai===&lt;br /&gt;
===Sąrašo metodai===&lt;br /&gt;
       Clear()&lt;br /&gt;
       Pop()&lt;br /&gt;
       Remove()&lt;br /&gt;
       Index()&lt;br /&gt;
       Count()&lt;br /&gt;
       Sort()&lt;br /&gt;
       Reverse()&lt;br /&gt;
       Join()&lt;br /&gt;
===Slices===&lt;br /&gt;
===Sąrašo užduotys===&lt;/div&gt;</summary>
		<author><name>Rokas</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=S%C4%85ra%C5%A1as_(List)&amp;diff=3609</id>
		<title>Sąrašas (List)</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=S%C4%85ra%C5%A1as_(List)&amp;diff=3609"/>
		<updated>2021-12-12T15:28:43Z</updated>

		<summary type="html">&lt;p&gt;Rokas: /* Prieiga prie sąrašo elementų */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sąrašas (List) Python programavimo kalboje yra vienas iš jau sukurtų ir integruotų duomenų tipų. Listus naudojame saugoti elementams, kurių skaičius yra neribojamas, o tipas gali būti bet koks ([[Tekstinė reikšmė (strings)|tekstinė reikšmė (str)]], [[Skaičiai|skaičius (int)]],  [[Žodynai (Dictionary)|žodynas (dictionary)]] ir t.t.). Taip pat įsidėmėk, kad sąrašas kaip elementą gali turėti ir kitą sąrašą, ir tai vadinama įdėtu listu (nested list). Sąrašus užrašome taip: pirma eina sąrašo pavadinimas, tada lygybės ženklas ir visi elementai laužtiniuose skliaustuose (elementus tarpusavyje atskiriame kableliu) &amp;lt;code&amp;gt;sąrašo_pavadinimas = [elementas1, elementas2, elementas3]&amp;lt;/code&amp;gt;. Sąrašo pavyzdys:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
duomenys = ['uosis', 1, ['labas','ate'], True]&lt;br /&gt;
print(duomenys) # ['uosis', 1, ['labas', 'ate'], True]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===Prieiga prie sąrašo elementų===&lt;br /&gt;
Aukščiau pateiktame pavyzdyje matai, kad jeigu atspausdiname sąrašą, tai gauname visą sąrašą, bet ne atskirus elementus. Kadangi sąrašo elementai Python programavimo kalboje yra indeksuojami, tai gauti elementą galime nurodę jo indeksą. Tik atsimink, kad pirmas sąrašo elementas indeksuojamas 0. Elementai gali dubliuotis, o pridėjus papildomą elementą į sąrašą - jis prisidės sąrašo gale, todėl visų kitų elementų indeksavimas nesikeis (nebent nurodysime kitaip) Pavyzdžiui:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
medžiai = ['uosis', 'ąžuolas', 'liepa', 'drebulė', 'uosis']&lt;br /&gt;
print (medžiai) # ['uosis', 'ąžuolas', 'liepa', 'drebulė']&lt;br /&gt;
&lt;br /&gt;
print (medžiai[0]) # uosis&lt;br /&gt;
print (medžiai[1]) # ąžuolas&lt;br /&gt;
print (medžiai[2]) # liepa&lt;br /&gt;
print (medžiai[3]) # drebulė&lt;br /&gt;
print (medžiai[4]) # uosis&lt;br /&gt;
&lt;br /&gt;
medžiai.append('eglė')&lt;br /&gt;
print(medžiai) # ['uosis', 'ąžuolas', 'liepa', 'drebulė', 'uosis', 'eglė']&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Neigiamas indeksavimas ====&lt;br /&gt;
Sąrašas gali būti indeksuojamas ir nuo pabaigos. Indeksavimo pavyzdys&lt;br /&gt;
&lt;br /&gt;
Taigi atsimink, kad:&lt;br /&gt;
*sąrašo elementai yra indeksuojami&lt;br /&gt;
*sąrašo elementai gali dublikuotis&lt;br /&gt;
*sąrašo elementų eiliškumas pridėjus naują elementą nesikeičia &lt;br /&gt;
*sąrašo elementus galima keisti, pridėti, atimti&lt;br /&gt;
&lt;br /&gt;
===Sąrašo elementų keitimas===&lt;br /&gt;
===Pridėti elementus į sąrašą===&lt;br /&gt;
===Pašalinti elementus iš sąrašo===&lt;br /&gt;
===Sąrašo elementų peržiūrėjimas naudojant ciklą===&lt;br /&gt;
===Sąrašo (?) List Comprehension ===&lt;br /&gt;
====Sąrašo supratimas su sąlygine logika====&lt;br /&gt;
===Sąrašo rūšiavimas===&lt;br /&gt;
===Sąrašo kopijavimas===&lt;br /&gt;
===Sąrašo reikšmių keitimas===&lt;br /&gt;
===Sąrašo sudėjimas/sujungimas (Join lists)===&lt;br /&gt;
===Nested sąrašai===&lt;br /&gt;
===Sąrašo metodai===&lt;br /&gt;
       Clear()&lt;br /&gt;
       Pop()&lt;br /&gt;
       Remove()&lt;br /&gt;
       Index()&lt;br /&gt;
       Count()&lt;br /&gt;
       Sort()&lt;br /&gt;
       Reverse()&lt;br /&gt;
       Join()&lt;br /&gt;
===Slices===&lt;br /&gt;
===Sąrašo užduotys===&lt;/div&gt;</summary>
		<author><name>Rokas</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Rekursin%C4%97s_funkcijos&amp;diff=3587</id>
		<title>Python Vadovėlis/Rekursinės funkcijos</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Rekursin%C4%97s_funkcijos&amp;diff=3587"/>
		<updated>2021-12-02T10:36:30Z</updated>

		<summary type="html">&lt;p&gt;Rokas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Vieniems šis skyrius gali pasirodyti naudingas, o kitiems - painus. Jeigu tau informacija pasirodys paini, tai nesuk galvos ir praleisk,  prie šio skyriaus galėsi grįžti šiek tiek vėliau. O dabar pabandom pasižiūrėti į mūsų parašytą programą:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def daug(a, b): # daug reiškia daugybą&lt;br /&gt;
    if b == 0:&lt;br /&gt;
        return 0&lt;br /&gt;
    lik = daug(a, b - 1) #lik reiškia likutį&lt;br /&gt;
    reiksme = a + lik&lt;br /&gt;
    return reiksme&lt;br /&gt;
rezultatas = daug(3, 2)&lt;br /&gt;
print(&amp;quot;3 * 2 = &amp;quot;, rezultatas)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Iš esmės ši programa, tai teigiama sveikųjų skaičių daugybos funkcija (reik atkreipti dėmesį į tai, kad Python'o programavimo kalboje jau yra integruota funkcija dauginimui, čia mes patys parašėme lengvai suprantamą pavyzdį (jeigu kurtume tokią funkciją patys), kuris parodo kaip atrodo daugybos veiksmas. Šioje programoje gali pamatyti rekursijos naudojimą, tai yra iteracijos (kartojimo) forma, kai funkcija yra pakartotinai iškviečiama, kol bus įvykdyta sukurta išvesties sąlyga. Programa naudoja pakartotinius papildymus, kad gautų tą patį rezultatą kaip ir daugyba: pavyzdžiui 3 + 3 (sudėtis) duoda tą patį rezultatą kaip ir 3 * 2 (daugyba).&lt;br /&gt;
&lt;br /&gt;
; ''Klausimas:'' Ką pirmiausia daro programa?&lt;br /&gt;
: ''Atsakymas:'' Pirmiausia yra aprašyta funkcija daugink:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def daug(a, b):&lt;br /&gt;
    if b == 0:&lt;br /&gt;
        return 0&lt;br /&gt;
    lik = daug(a, b - 1)&lt;br /&gt;
    reiksme = a + lik &lt;br /&gt;
    return reiksme&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
: Tai sukuria funkciją, kuri paima du parametrus ir grąžina reikšmę, kai ji atitinka reikiamą rezultatą. Vėliau šią funkciją galima paleisti.&lt;br /&gt;
; Kas nutinka toliau?  &lt;br /&gt;
: Vykdoma kita eilutė einanti po funkcijos &amp;lt;code&amp;gt;resultas = daug(3, 2)&amp;lt;/code&amp;gt;&lt;br /&gt;
; Ką daro ši eilutė?&lt;br /&gt;
: Ši eilutė priskiria grąžinimo reikšmę &amp;lt;code&amp;gt;daug(3, 2)&amp;lt;/code&amp;gt; kintamajam &amp;lt;code&amp;gt;resultas&amp;lt;/code&amp;gt;.&lt;br /&gt;
; Ką grąžina &amp;lt;code&amp;gt;daug(3, 2)&amp;lt;/code&amp;gt;?&lt;br /&gt;
: Norėdami tai išsiaiškinti, turime peržiūrėti funkciją &amp;lt;code&amp;gt;daug()&amp;lt;/code&amp;gt;.&lt;br /&gt;
; Kas vyksta su kodu?&lt;br /&gt;
: Kintamasis &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; gauna jam priskirtą reikšmę 3, o kintamasis &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt; - jam priskirtą reikšmę 2.&lt;br /&gt;
; Kas nutinka tada?&lt;br /&gt;
: Vykdoma eilutė &amp;lt;code&amp;gt;if b == 0:&amp;lt;/code&amp;gt;. Kadangi &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt; reikšmė yra 2, todėl eilutė &amp;lt;code&amp;gt;return 0&amp;lt;/code&amp;gt; praleidžiama.&lt;br /&gt;
; Kas vyksta toliau?&lt;br /&gt;
: Vykdoma eilutė &amp;lt;code&amp;gt;lik = daug(a, b - 1)&amp;lt;/code&amp;gt;. Ši eilutė nustato lokalaus kintamojo &amp;lt;code&amp;gt;lik&amp;lt;/code&amp;gt; reikšmę į &amp;lt;code&amp;gt;daug(a, b - 1)&amp;lt;/code&amp;gt; reikšmę. &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; reikšmė yra 3, o &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt; - 2, todėl funkcija kviečia funkciją&amp;lt;code&amp;gt;daug(3,1)&amp;lt;/code&amp;gt;&lt;br /&gt;
; Taigi kokia yra &amp;lt;code&amp;gt;daug(3, 1)&amp;lt;/code&amp;gt; reikšmė?&lt;br /&gt;
: Turime paleisti funkciją &amp;lt;code&amp;gt;daug()&amp;lt;/code&amp;gt; su parametrais, kurie yra 3 ir 1.&lt;br /&gt;
; Kas nutinka toliau?&lt;br /&gt;
: Lokalūs kintamieji vėl pasileidus kodui jau yra nustatyti, todėl &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; reikšmė būtų 3, o &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt; reikšmė -1. Kadangi jie yra lokalūs kintamieji, todėl jie neturi įtakos ankstesnėms &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt; reikšmėms.&lt;br /&gt;
; Kas įvyksta toliau?&lt;br /&gt;
: Kadangi &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt; turi reikšmę 1, if teiginys yra neigiamas, todėl vykdoma kita eilutė &amp;lt;code&amp;gt;lik = daug(a, b - 1)&amp;lt;/code&amp;gt;.&lt;br /&gt;
; Ką daro ši eilutė?&lt;br /&gt;
: Ši eilutė &amp;lt;code&amp;gt;daug(3, 0)&amp;lt;/code&amp;gt; reikšmę priskiria kitiems.&lt;br /&gt;
; Ką daro ši reikšmė?&lt;br /&gt;
: Norėdami tai išsiaiškinti, turime dar kartą paleisti funkciją. Šį kartą &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; reikšmė yra 3, o &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt; - 0.&lt;br /&gt;
; Kas vyksta toliau?&lt;br /&gt;
: Pirmoji vykdytinos funkcijos eilutė yra &amp;lt;code&amp;gt;if b == 0:&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt; reikšmė 0, todėl kita vykdoma eilutė yra &amp;lt;code&amp;gt;return 0&amp;lt;/code&amp;gt;&lt;br /&gt;
; Ką daro &amp;lt;code&amp;gt;return 0&amp;lt;/code&amp;gt; eilutė?&lt;br /&gt;
: Ši eilutė grąžina funkcijos reikšmę lygią 0.&lt;br /&gt;
; Kas iš to?&lt;br /&gt;
: Dabar mes žinome, kad &amp;lt;code&amp;gt;daug(3, 0)&amp;lt;/code&amp;gt; turi reikšmę 0. Dar žinome, ką daro eilutė &amp;lt;code&amp;gt;lik = daug(a, b - 1)&amp;lt;/code&amp;gt;, nes paleidžiame funkciją &amp;lt;code&amp;gt;daug()&amp;lt;/code&amp;gt; su parametrais 3 ir 0. Baigiame vykdyti &amp;lt;code&amp;gt;daug(3, 0)&amp;lt;/code&amp;gt; ir dabar vėl pradedame vykdyti &amp;lt;code&amp;gt;daug(3, 1)&amp;lt;/code&amp;gt;. Kintamajam &amp;lt;code&amp;gt;lik&amp;lt;/code&amp;gt; priskiriama vertė 0.&lt;br /&gt;
; Kurią eilutę kompiuteris skaito po to?&lt;br /&gt;
: Toliau vykdoma eilutė &amp;lt;code&amp;gt;reiksme = a + lik&amp;lt;/code&amp;gt;. Žinome, kad &amp;lt;code&amp;gt;a = 3&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;lik = 0&amp;lt;/code&amp;gt; todėl dabar &amp;lt;code&amp;gt;reiksme = 3&amp;lt;/code&amp;gt;. &lt;br /&gt;
; Kas nutinka toliau?&lt;br /&gt;
: Vykdoma eilutė &amp;lt;code&amp;gt;return reiksme&amp;lt;/code&amp;gt;, kuri grąžina reikšmę 3. Šis skaičius atsiranda iš funkcijos &amp;lt;code&amp;gt;daug (3, 1)&amp;lt;/code&amp;gt; vykdymo. Iškvietus &amp;lt;code&amp;gt;return&amp;lt;/code&amp;gt;, grįžtame prie &amp;lt;code&amp;gt;daug(3, 2)&amp;lt;/code&amp;gt;.&lt;br /&gt;
; Kur yra &amp;lt;code&amp;gt;daug(3, 2)&amp;lt;/code&amp;gt;?&lt;br /&gt;
: Mes turėjome kintamuosius &amp;lt;code&amp;gt;a = 3&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;b = 2&amp;lt;/code&amp;gt; ir nagrinėjome eilutę &amp;lt;code&amp;gt;lik = daug(a, b - 1)&amp;lt;/code&amp;gt;.&lt;br /&gt;
; Kas įvyksta?&lt;br /&gt;
: Kintamajam &amp;lt;code&amp;gt;lik&amp;lt;/code&amp;gt; priskiriama reikšmė 3. Kita eilutė &amp;lt;code&amp;gt;reiksme = a + lik&amp;lt;/code&amp;gt; nustato &amp;lt;code&amp;gt;reiksme&amp;lt;/code&amp;gt; į &amp;lt;code&amp;gt;3 + 3&amp;lt;/code&amp;gt; arba 6.  &lt;br /&gt;
; Kas įvyksta toliau?&lt;br /&gt;
: Pradeda veikti kita eilutė, kuri grąžina 6 iš funkcijos. Tuomet grįžtame prie eilutės &amp;lt;code&amp;gt;resultas = daug(3, 2)&amp;lt;/code&amp;gt;, kuriai dabar galima priskirti reikšmę 6 kintamajam &amp;lt;code&amp;gt;resultas&amp;lt;/code&amp;gt;&lt;br /&gt;
; Kas nutinka toliau?  &lt;br /&gt;
: Paleidžiama kita eilutė po funkcijos &amp;lt;code&amp;gt;print (&amp;quot;3 * 2 =&amp;quot;, resultas)&amp;lt;/code&amp;gt;.&lt;br /&gt;
; Ką ji daro?&lt;br /&gt;
: Ji spausdina &amp;lt;code&amp;gt;3 * 2 =&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;resultas&amp;lt;/code&amp;gt; reikšmę, kuri yra 6. Visa išspausdinta eilutė yra &amp;lt;code&amp;gt;3 * 2 = 6&amp;lt;/code&amp;gt;.&lt;br /&gt;
; Taigi, kas čia įvyko apskritai?  &lt;br /&gt;
: Iš esmės panaudojome du skirtingus faktus, kad apskaičiuotume dviejų skaičių kartotinį. Pirmas, kad bet koks skaičius padauginus iš nulio yra nulis &amp;lt;code&amp;gt;(x * 0 = 0)&amp;lt;/code&amp;gt;. Antras, kad skaičius padaugintas iš kito skaičiaus yra lygus pirmam skaičiui ir pirmas skaičius yra  vienu skaitmeniu mažesnis už antrajį skaičių &amp;lt;code&amp;gt;(x * y = x + x * (y - 1))&amp;lt;/code&amp;gt;. Taigi ir čia &amp;lt;code&amp;gt;3 * 2&amp;lt;/code&amp;gt; pirmiausiai paverčiamas į &amp;lt;code&amp;gt;3 + 3 * 1&amp;lt;/code&amp;gt;. Tada &amp;lt;code&amp;gt;3 * 1&amp;lt;/code&amp;gt; paverčiamas į &amp;lt;code&amp;gt;3 + 3 * 0&amp;lt;/code&amp;gt;. Tuomet mes žinome, kad bet kuris skaičius padaugintas iš nulio yra nulis, todėl &amp;lt;code&amp;gt;3 * 0&amp;lt;/code&amp;gt; yra 0. Tuomet galime apskaičiuoti, kad &amp;lt;code&amp;gt;3 + 3 * 0&amp;lt;/code&amp;gt; yra &amp;lt;code&amp;gt;3 + 0&amp;lt;/code&amp;gt; arba kitaip tariant tiesiog &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt;. Tuomet mes žinome, kas yra &amp;lt;code&amp;gt;3 * 1&amp;lt;/code&amp;gt;, todėl galime apskaičiuoti, kad &amp;lt;code&amp;gt;3 + 3 * 1&amp;lt;/code&amp;gt; yra &amp;lt;code&amp;gt;3 + 3&amp;lt;/code&amp;gt; arba kitaip tariant &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Štai kaip viskas veikia:&lt;br /&gt;
&lt;br /&gt;
 daug(3, 2)&lt;br /&gt;
 3 + daug(3, 1)&lt;br /&gt;
 3 + 3 + daug(3, 0)&lt;br /&gt;
 3 + 3 + 0&lt;br /&gt;
 3 + 3&lt;br /&gt;
 6&lt;br /&gt;
&lt;br /&gt;
==== Rekursija ====&lt;br /&gt;
Programavimo konstrukcijos, išsprendžiančios problemą išsprendžiant mažesnę tos pačios problemos versiją, vadinamos „rekursyviomis“. Šio skyriaus pavyzdžiuose rekursija realizuojama apibrėžiant funkciją, kuri pati save iškviečia. Tai palengvina programavimo užduočių spendimų įgyvendinimą, nes kartais pakanka apsvarstyti tik vieną problemos žingsnį, o ne visą problemą iš karto. Be to tai leidžia išreikšti kai kurias matematines sąvokas paprastu, lengvai skaitomu kodu.&lt;br /&gt;
&lt;br /&gt;
Bet kokią problemą, kurią galime išspręsti naudojant rekursiją, gali būti išspręsta naudojant ciklus. Jie veikia greičiau, bet kartais ciklus sunku atlikti teisingai.&lt;br /&gt;
&lt;br /&gt;
Turbūt intuityviausias „rekursijos“ apibrėžimas yra toks:&lt;br /&gt;
; Rekursija&lt;br /&gt;
: Jei vis dar nesupranti, tai skaityk: REKURSIJA.&lt;br /&gt;
Pabandyk perskaityti faktinį pavyzdį, jei nesupratai daugybos pavyzdžio.&lt;br /&gt;
&lt;br /&gt;
=== Pavyzdžiai ===&lt;br /&gt;
'''faktorialas.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#apibrėžia funkciją, kuri apskaičiuoja koeficientą&lt;br /&gt;
&lt;br /&gt;
def faktorialas(n):&lt;br /&gt;
    if n == 0:&lt;br /&gt;
        return 1&lt;br /&gt;
    if n&amp;lt;0:&lt;br /&gt;
        return &amp;quot;Klaida, neigiami skaičiai neturi faktorialo reikšmių!!&amp;quot;&lt;br /&gt;
    return n * faktorialas(n - 1)&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;2! =&amp;quot;, faktorialas(2))&lt;br /&gt;
print(&amp;quot;3! =&amp;quot;, faktorialas(3))&lt;br /&gt;
print(&amp;quot;4! =&amp;quot;, faktorialas(4))&lt;br /&gt;
print(&amp;quot;5! =&amp;quot;, faktorialas(5))&lt;br /&gt;
print(&amp;quot;-3! =&amp;quot;, faktorialas(-3))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rezultatas:&lt;br /&gt;
 &lt;br /&gt;
 2! = 2&lt;br /&gt;
 3! = 6&lt;br /&gt;
 4! = 24&lt;br /&gt;
 5! = 120&lt;br /&gt;
 -3! = Klaida, neigiami skaičiai neturi faktorialo reikšmių!!&lt;br /&gt;
&lt;br /&gt;
'''atgalinis_kaičiavimas.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def atgalinis_kaičiavimas(n):&lt;br /&gt;
    print(n)&lt;br /&gt;
    if n &amp;gt; 0:&lt;br /&gt;
        return atgalinis_kaičiavimas(n-1)&lt;br /&gt;
&lt;br /&gt;
atgalinis_kaičiavimas(5)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rezultatas:&lt;br /&gt;
 5&lt;br /&gt;
 4&lt;br /&gt;
 3&lt;br /&gt;
 2&lt;br /&gt;
 1&lt;br /&gt;
 0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Dabar pabandyk žodį &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt;(lietuviškai jei) pakeisti žodžiu &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; (lietuviškai kol). Pamatysi, kad kompiuteris pavirto skaičiuotuvu, kuris negali suskaičiuoti iki keturių. Iš esmės &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt;(kol) veikia kaip &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; (jei) ir &amp;lt;code&amp;gt;repeat&amp;lt;/code&amp;gt;(angl. pakartok) kartu sudėjus.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Defining Functions |next=Lists}}&lt;/div&gt;</summary>
		<author><name>Rokas</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Rekursin%C4%97s_funkcijos&amp;diff=3586</id>
		<title>Python Vadovėlis/Rekursinės funkcijos</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Rekursin%C4%97s_funkcijos&amp;diff=3586"/>
		<updated>2021-12-02T10:35:52Z</updated>

		<summary type="html">&lt;p&gt;Rokas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Vieniems šis skyrius gali pasirodyti naudingas, o kitiems - painus. Jeigu tau informacija pasirodys paini, tai nesuk galvos ir praleisk,  prie šio skyriaus galėsi grįžti šiek tiek vėliau. O dabar pabandom pasižiūrėti į mūsų parašytą programą:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def daug(a, b): # daug reiškia daugybą&lt;br /&gt;
    if b == 0:&lt;br /&gt;
        return 0&lt;br /&gt;
    lik = daug(a, b - 1) #lik reiškia likutį&lt;br /&gt;
    reiksme = a + lik&lt;br /&gt;
    return reiksme&lt;br /&gt;
resultatas = daug(3, 2)&lt;br /&gt;
print(&amp;quot;3 * 2 = &amp;quot;, resultatas)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Iš esmės ši programa, tai teigiama sveikųjų skaičių daugybos funkcija (reik atkreipti dėmesį į tai, kad Python'o programavimo kalboje jau yra integruota funkcija dauginimui, čia mes patys parašėme lengvai suprantamą pavyzdį (jeigu kurtume tokią funkciją patys), kuris parodo kaip atrodo daugybos veiksmas. Šioje programoje gali pamatyti rekursijos naudojimą, tai yra iteracijos (kartojimo) forma, kai funkcija yra pakartotinai iškviečiama, kol bus įvykdyta sukurta išvesties sąlyga. Programa naudoja pakartotinius papildymus, kad gautų tą patį rezultatą kaip ir daugyba: pavyzdžiui 3 + 3 (sudėtis) duoda tą patį rezultatą kaip ir 3 * 2 (daugyba).&lt;br /&gt;
&lt;br /&gt;
; ''Klausimas:'' Ką pirmiausia daro programa?&lt;br /&gt;
: ''Atsakymas:'' Pirmiausia yra aprašyta funkcija daugink:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def daug(a, b):&lt;br /&gt;
    if b == 0:&lt;br /&gt;
        return 0&lt;br /&gt;
    lik = daug(a, b - 1)&lt;br /&gt;
    reiksme = a + lik &lt;br /&gt;
    return reiksme&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
: Tai sukuria funkciją, kuri paima du parametrus ir grąžina reikšmę, kai ji atitinka reikiamą rezultatą. Vėliau šią funkciją galima paleisti.&lt;br /&gt;
; Kas nutinka toliau?  &lt;br /&gt;
: Vykdoma kita eilutė einanti po funkcijos &amp;lt;code&amp;gt;resultas = daug(3, 2)&amp;lt;/code&amp;gt;&lt;br /&gt;
; Ką daro ši eilutė?&lt;br /&gt;
: Ši eilutė priskiria grąžinimo reikšmę &amp;lt;code&amp;gt;daug(3, 2)&amp;lt;/code&amp;gt; kintamajam &amp;lt;code&amp;gt;resultas&amp;lt;/code&amp;gt;.&lt;br /&gt;
; Ką grąžina &amp;lt;code&amp;gt;daug(3, 2)&amp;lt;/code&amp;gt;?&lt;br /&gt;
: Norėdami tai išsiaiškinti, turime peržiūrėti funkciją &amp;lt;code&amp;gt;daug()&amp;lt;/code&amp;gt;.&lt;br /&gt;
; Kas vyksta su kodu?&lt;br /&gt;
: Kintamasis &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; gauna jam priskirtą reikšmę 3, o kintamasis &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt; - jam priskirtą reikšmę 2.&lt;br /&gt;
; Kas nutinka tada?&lt;br /&gt;
: Vykdoma eilutė &amp;lt;code&amp;gt;if b == 0:&amp;lt;/code&amp;gt;. Kadangi &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt; reikšmė yra 2, todėl eilutė &amp;lt;code&amp;gt;return 0&amp;lt;/code&amp;gt; praleidžiama.&lt;br /&gt;
; Kas vyksta toliau?&lt;br /&gt;
: Vykdoma eilutė &amp;lt;code&amp;gt;lik = daug(a, b - 1)&amp;lt;/code&amp;gt;. Ši eilutė nustato lokalaus kintamojo &amp;lt;code&amp;gt;lik&amp;lt;/code&amp;gt; reikšmę į &amp;lt;code&amp;gt;daug(a, b - 1)&amp;lt;/code&amp;gt; reikšmę. &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; reikšmė yra 3, o &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt; - 2, todėl funkcija kviečia funkciją&amp;lt;code&amp;gt;daug(3,1)&amp;lt;/code&amp;gt;&lt;br /&gt;
; Taigi kokia yra &amp;lt;code&amp;gt;daug(3, 1)&amp;lt;/code&amp;gt; reikšmė?&lt;br /&gt;
: Turime paleisti funkciją &amp;lt;code&amp;gt;daug()&amp;lt;/code&amp;gt; su parametrais, kurie yra 3 ir 1.&lt;br /&gt;
; Kas nutinka toliau?&lt;br /&gt;
: Lokalūs kintamieji vėl pasileidus kodui jau yra nustatyti, todėl &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; reikšmė būtų 3, o &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt; reikšmė -1. Kadangi jie yra lokalūs kintamieji, todėl jie neturi įtakos ankstesnėms &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt; reikšmėms.&lt;br /&gt;
; Kas įvyksta toliau?&lt;br /&gt;
: Kadangi &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt; turi reikšmę 1, if teiginys yra neigiamas, todėl vykdoma kita eilutė &amp;lt;code&amp;gt;lik = daug(a, b - 1)&amp;lt;/code&amp;gt;.&lt;br /&gt;
; Ką daro ši eilutė?&lt;br /&gt;
: Ši eilutė &amp;lt;code&amp;gt;daug(3, 0)&amp;lt;/code&amp;gt; reikšmę priskiria kitiems.&lt;br /&gt;
; Ką daro ši reikšmė?&lt;br /&gt;
: Norėdami tai išsiaiškinti, turime dar kartą paleisti funkciją. Šį kartą &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; reikšmė yra 3, o &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt; - 0.&lt;br /&gt;
; Kas vyksta toliau?&lt;br /&gt;
: Pirmoji vykdytinos funkcijos eilutė yra &amp;lt;code&amp;gt;if b == 0:&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt; reikšmė 0, todėl kita vykdoma eilutė yra &amp;lt;code&amp;gt;return 0&amp;lt;/code&amp;gt;&lt;br /&gt;
; Ką daro &amp;lt;code&amp;gt;return 0&amp;lt;/code&amp;gt; eilutė?&lt;br /&gt;
: Ši eilutė grąžina funkcijos reikšmę lygią 0.&lt;br /&gt;
; Kas iš to?&lt;br /&gt;
: Dabar mes žinome, kad &amp;lt;code&amp;gt;daug(3, 0)&amp;lt;/code&amp;gt; turi reikšmę 0. Dar žinome, ką daro eilutė &amp;lt;code&amp;gt;lik = daug(a, b - 1)&amp;lt;/code&amp;gt;, nes paleidžiame funkciją &amp;lt;code&amp;gt;daug()&amp;lt;/code&amp;gt; su parametrais 3 ir 0. Baigiame vykdyti &amp;lt;code&amp;gt;daug(3, 0)&amp;lt;/code&amp;gt; ir dabar vėl pradedame vykdyti &amp;lt;code&amp;gt;daug(3, 1)&amp;lt;/code&amp;gt;. Kintamajam &amp;lt;code&amp;gt;lik&amp;lt;/code&amp;gt; priskiriama vertė 0.&lt;br /&gt;
; Kurią eilutę kompiuteris skaito po to?&lt;br /&gt;
: Toliau vykdoma eilutė &amp;lt;code&amp;gt;reiksme = a + lik&amp;lt;/code&amp;gt;. Žinome, kad &amp;lt;code&amp;gt;a = 3&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;lik = 0&amp;lt;/code&amp;gt; todėl dabar &amp;lt;code&amp;gt;reiksme = 3&amp;lt;/code&amp;gt;. &lt;br /&gt;
; Kas nutinka toliau?&lt;br /&gt;
: Vykdoma eilutė &amp;lt;code&amp;gt;return reiksme&amp;lt;/code&amp;gt;, kuri grąžina reikšmę 3. Šis skaičius atsiranda iš funkcijos &amp;lt;code&amp;gt;daug (3, 1)&amp;lt;/code&amp;gt; vykdymo. Iškvietus &amp;lt;code&amp;gt;return&amp;lt;/code&amp;gt;, grįžtame prie &amp;lt;code&amp;gt;daug(3, 2)&amp;lt;/code&amp;gt;.&lt;br /&gt;
; Kur yra &amp;lt;code&amp;gt;daug(3, 2)&amp;lt;/code&amp;gt;?&lt;br /&gt;
: Mes turėjome kintamuosius &amp;lt;code&amp;gt;a = 3&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;b = 2&amp;lt;/code&amp;gt; ir nagrinėjome eilutę &amp;lt;code&amp;gt;lik = daug(a, b - 1)&amp;lt;/code&amp;gt;.&lt;br /&gt;
; Kas įvyksta?&lt;br /&gt;
: Kintamajam &amp;lt;code&amp;gt;lik&amp;lt;/code&amp;gt; priskiriama reikšmė 3. Kita eilutė &amp;lt;code&amp;gt;reiksme = a + lik&amp;lt;/code&amp;gt; nustato &amp;lt;code&amp;gt;reiksme&amp;lt;/code&amp;gt; į &amp;lt;code&amp;gt;3 + 3&amp;lt;/code&amp;gt; arba 6.  &lt;br /&gt;
; Kas įvyksta toliau?&lt;br /&gt;
: Pradeda veikti kita eilutė, kuri grąžina 6 iš funkcijos. Tuomet grįžtame prie eilutės &amp;lt;code&amp;gt;resultas = daug(3, 2)&amp;lt;/code&amp;gt;, kuriai dabar galima priskirti reikšmę 6 kintamajam &amp;lt;code&amp;gt;resultas&amp;lt;/code&amp;gt;&lt;br /&gt;
; Kas nutinka toliau?  &lt;br /&gt;
: Paleidžiama kita eilutė po funkcijos &amp;lt;code&amp;gt;print (&amp;quot;3 * 2 =&amp;quot;, resultas)&amp;lt;/code&amp;gt;.&lt;br /&gt;
; Ką ji daro?&lt;br /&gt;
: Ji spausdina &amp;lt;code&amp;gt;3 * 2 =&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;resultas&amp;lt;/code&amp;gt; reikšmę, kuri yra 6. Visa išspausdinta eilutė yra &amp;lt;code&amp;gt;3 * 2 = 6&amp;lt;/code&amp;gt;.&lt;br /&gt;
; Taigi, kas čia įvyko apskritai?  &lt;br /&gt;
: Iš esmės panaudojome du skirtingus faktus, kad apskaičiuotume dviejų skaičių kartotinį. Pirmas, kad bet koks skaičius padauginus iš nulio yra nulis &amp;lt;code&amp;gt;(x * 0 = 0)&amp;lt;/code&amp;gt;. Antras, kad skaičius padaugintas iš kito skaičiaus yra lygus pirmam skaičiui ir pirmas skaičius yra  vienu skaitmeniu mažesnis už antrajį skaičių &amp;lt;code&amp;gt;(x * y = x + x * (y - 1))&amp;lt;/code&amp;gt;. Taigi ir čia &amp;lt;code&amp;gt;3 * 2&amp;lt;/code&amp;gt; pirmiausiai paverčiamas į &amp;lt;code&amp;gt;3 + 3 * 1&amp;lt;/code&amp;gt;. Tada &amp;lt;code&amp;gt;3 * 1&amp;lt;/code&amp;gt; paverčiamas į &amp;lt;code&amp;gt;3 + 3 * 0&amp;lt;/code&amp;gt;. Tuomet mes žinome, kad bet kuris skaičius padaugintas iš nulio yra nulis, todėl &amp;lt;code&amp;gt;3 * 0&amp;lt;/code&amp;gt; yra 0. Tuomet galime apskaičiuoti, kad &amp;lt;code&amp;gt;3 + 3 * 0&amp;lt;/code&amp;gt; yra &amp;lt;code&amp;gt;3 + 0&amp;lt;/code&amp;gt; arba kitaip tariant tiesiog &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt;. Tuomet mes žinome, kas yra &amp;lt;code&amp;gt;3 * 1&amp;lt;/code&amp;gt;, todėl galime apskaičiuoti, kad &amp;lt;code&amp;gt;3 + 3 * 1&amp;lt;/code&amp;gt; yra &amp;lt;code&amp;gt;3 + 3&amp;lt;/code&amp;gt; arba kitaip tariant &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Štai kaip viskas veikia:&lt;br /&gt;
&lt;br /&gt;
 daug(3, 2)&lt;br /&gt;
 3 + daug(3, 1)&lt;br /&gt;
 3 + 3 + daug(3, 0)&lt;br /&gt;
 3 + 3 + 0&lt;br /&gt;
 3 + 3&lt;br /&gt;
 6&lt;br /&gt;
&lt;br /&gt;
==== Rekursija ====&lt;br /&gt;
Programavimo konstrukcijos, išsprendžiančios problemą išsprendžiant mažesnę tos pačios problemos versiją, vadinamos „rekursyviomis“. Šio skyriaus pavyzdžiuose rekursija realizuojama apibrėžiant funkciją, kuri pati save iškviečia. Tai palengvina programavimo užduočių spendimų įgyvendinimą, nes kartais pakanka apsvarstyti tik vieną problemos žingsnį, o ne visą problemą iš karto. Be to tai leidžia išreikšti kai kurias matematines sąvokas paprastu, lengvai skaitomu kodu.&lt;br /&gt;
&lt;br /&gt;
Bet kokią problemą, kurią galime išspręsti naudojant rekursiją, gali būti išspręsta naudojant ciklus. Jie veikia greičiau, bet kartais ciklus sunku atlikti teisingai.&lt;br /&gt;
&lt;br /&gt;
Turbūt intuityviausias „rekursijos“ apibrėžimas yra toks:&lt;br /&gt;
; Rekursija&lt;br /&gt;
: Jei vis dar nesupranti, tai skaityk: REKURSIJA.&lt;br /&gt;
Pabandyk perskaityti faktinį pavyzdį, jei nesupratai daugybos pavyzdžio.&lt;br /&gt;
&lt;br /&gt;
=== Pavyzdžiai ===&lt;br /&gt;
'''faktorialas.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#apibrėžia funkciją, kuri apskaičiuoja koeficientą&lt;br /&gt;
&lt;br /&gt;
def faktorialas(n):&lt;br /&gt;
    if n == 0:&lt;br /&gt;
        return 1&lt;br /&gt;
    if n&amp;lt;0:&lt;br /&gt;
        return &amp;quot;Klaida, neigiami skaičiai neturi faktorialo reikšmių!!&amp;quot;&lt;br /&gt;
    return n * faktorialas(n - 1)&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;2! =&amp;quot;, faktorialas(2))&lt;br /&gt;
print(&amp;quot;3! =&amp;quot;, faktorialas(3))&lt;br /&gt;
print(&amp;quot;4! =&amp;quot;, faktorialas(4))&lt;br /&gt;
print(&amp;quot;5! =&amp;quot;, faktorialas(5))&lt;br /&gt;
print(&amp;quot;-3! =&amp;quot;, faktorialas(-3))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rezultatas:&lt;br /&gt;
 &lt;br /&gt;
 2! = 2&lt;br /&gt;
 3! = 6&lt;br /&gt;
 4! = 24&lt;br /&gt;
 5! = 120&lt;br /&gt;
 -3! = Klaida, neigiami skaičiai neturi faktorialo reikšmių!!&lt;br /&gt;
&lt;br /&gt;
'''atgalinis_kaičiavimas.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def atgalinis_kaičiavimas(n):&lt;br /&gt;
    print(n)&lt;br /&gt;
    if n &amp;gt; 0:&lt;br /&gt;
        return atgalinis_kaičiavimas(n-1)&lt;br /&gt;
&lt;br /&gt;
atgalinis_kaičiavimas(5)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rezultatas:&lt;br /&gt;
 5&lt;br /&gt;
 4&lt;br /&gt;
 3&lt;br /&gt;
 2&lt;br /&gt;
 1&lt;br /&gt;
 0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Dabar pabandyk žodį &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt;(lietuviškai jei) pakeisti žodžiu &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; (lietuviškai kol). Pamatysi, kad kompiuteris pavirto skaičiuotuvu, kuris negali suskaičiuoti iki keturių. Iš esmės &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt;(kol) veikia kaip &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; (jei) ir &amp;lt;code&amp;gt;repeat&amp;lt;/code&amp;gt;(angl. pakartok) kartu sudėjus.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Defining Functions |next=Lists}}&lt;/div&gt;</summary>
		<author><name>Rokas</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Daugiau_apie_tekstines_eilutes&amp;diff=3574</id>
		<title>Python Vadovėlis/Daugiau apie tekstines eilutes</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Daugiau_apie_tekstines_eilutes&amp;diff=3574"/>
		<updated>2021-11-24T08:12:57Z</updated>

		<summary type="html">&lt;p&gt;Rokas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Šiame skyriuje pamatysi, kiek šaunių dalykų galime padaryti su tekstine reikšme:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def rėk(tekstinė_reikšmė):&lt;br /&gt;
    for raidei in tekstinė_reikšmė:&lt;br /&gt;
        print(&amp;quot;Duok man &amp;quot; + raidė)&lt;br /&gt;
        print(&amp;quot;'&amp;quot; + raidė + &amp;quot;'&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
rėk(&amp;quot;Ačiū&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
def vidurys(tekstas):&lt;br /&gt;
    print(&amp;quot;Raidė esanti viduryje yra:&amp;quot;, tekstas[len(tekstas) // 2])&lt;br /&gt;
&lt;br /&gt;
vidurys(&amp;quot;abcdefg&amp;quot;)&lt;br /&gt;
vidurys(&amp;quot;The Python Programming Language&amp;quot;)&lt;br /&gt;
vidurys(&amp;quot;Atlanta&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rezultatas:&lt;br /&gt;
&lt;br /&gt;
 Duok man A&lt;br /&gt;
 'A'&lt;br /&gt;
 Duok man č&lt;br /&gt;
 'č'&lt;br /&gt;
 Duok man i&lt;br /&gt;
 'i'&lt;br /&gt;
 Duok man ū&lt;br /&gt;
 'ū'&lt;br /&gt;
 Raidė esanti viduryje yra: d&lt;br /&gt;
 Raidė esanti viduryje yra: r&lt;br /&gt;
 Raidė esanti viduryje yra: a&lt;br /&gt;
&lt;br /&gt;
Šios dvi programos rodo, kad tekstinė reikšmė(strings) yra keliais aspektais panaši į sąrašus (list). Funkcija &amp;lt;code&amp;gt;rėk()&amp;lt;/code&amp;gt; rodo, kad ciklas &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; gali būti naudojamas su tekstine reikšme lygiai taip pat kaip ir su sąrašais. Funkcija &amp;lt;code&amp;gt;vidurys()&amp;lt;/code&amp;gt; rodo, kad tekstinėje reikšmėje galima naudotis Python programavimo kalboje jau esančia funkcija &amp;lt;code&amp;gt;len()&amp;lt;/code&amp;gt;, taip pat masyvų indeksavimu ir pjaustymu. Dauguma sąrašo (list) funkcijų veikia ir su tekstine reikšme.&lt;br /&gt;
&lt;br /&gt;
Kita šio skyriaus funkcija parodo tam tikras tekstinės reikšmės ypatybes:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def pavertimas_didžiosiomis_raidėmis(tekstas):&lt;br /&gt;
    ## Ši funkcija, tekstinę reikšmę užrašo didžiosiomis raidėmis&lt;br /&gt;
    didžiosios_raidės = &amp;quot;&amp;quot;&lt;br /&gt;
    for raidei in tekstas:&lt;br /&gt;
        if 'a' &amp;lt;= tekstas &amp;lt;= 'z':&lt;br /&gt;
            lokacija = ord(raidei) - ord('a')&lt;br /&gt;
            naujas_ascii = lokacija + ord('A')&lt;br /&gt;
            raidei= chr(naujas_ascii)&lt;br /&gt;
        didžiosios_raidės = pavertimas_didžiosiomis_raidėmis + raidei&lt;br /&gt;
    return didžiosios_raidės&lt;br /&gt;
&lt;br /&gt;
print(pavertimas_didžiosiomis_raidėmis(&amp;quot;Įrašytas tekstas&amp;quot;))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rezultatas:&lt;br /&gt;
&lt;br /&gt;
 ĮRAŠYTAS TEKSTAS&lt;br /&gt;
&lt;br /&gt;
Tai veikia, nes kompiuteris tekstinės reikšmės simbolius šifruoja skaičiais nuo 0 iki 1 114 111. Visos šios tekstinės reikšmės turi savo unikalias unikodo reikšmės. Pavyzdžiui, simboliui „A“ yra priskirtas skaičius 65, simbolis „B“ kompiuterio suprantamas kaip 66, o simbolis א yra 1488. Python programavimo kalba turi funkciją, vadinamą &amp;lt;code&amp;gt;ord()&amp;lt;/code&amp;gt; (trumpinys angliško žodžio ordinal, kuris reiškia iš eilės), kuri grąžina simbolį kaip skaičių. Taip pat Pyhton programavimo kalba turi ir atvirkščią funkcija, vadinama &amp;lt;code&amp;gt;chr()&amp;lt;/code&amp;gt;, kuri skaičių paverčia simboliu. Supratus, kaip veikia šios funkcijos aukščiau užrašyta programa turėtų atrodyti logiška.&lt;br /&gt;
&lt;br /&gt;
Programos pirmoji eilutė &amp;lt;code&amp;gt;if 'a' &amp;lt;= simbolis &amp;lt;= 'z':&amp;lt;/code&amp;gt; patikrina, ar raidė yra mažoji. Jeigu taip, tada naudojamos kitos programos eilutės:&lt;br /&gt;
Pirmiausia eilutė &amp;lt;code&amp;gt;lokacija= ord(simbolis) - ord('a')&amp;lt;/code&amp;gt; nurodo simbolio vietą: a = 0, b = 1, c = 2 ir t.t. &lt;br /&gt;
Tada nauja reikšmė randama su kodo eilute &amp;lt;code&amp;gt;naujas_ascii = lokacija + ord ('A')&amp;lt;/code&amp;gt;. &lt;br /&gt;
Tada ši reikšmė paverčiama atgal į simbolį, kuris dabar yra didžioji raidė. &lt;br /&gt;
&lt;br /&gt;
Žinoma, tai tik programos pavyzdys, daug paprasčiau tai padaryti gali pasinaudodamas šiuo &amp;lt;code&amp;gt;metodu=var.upper()&amp;lt;/code&amp;gt;, kuris veikia su visomis kalbomis.&lt;br /&gt;
&lt;br /&gt;
O dabar pabandykime pasižiūrėti į šį pavyzdį:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''# Skaičius į tekstinę reikšmę'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''2'''&lt;br /&gt;
 2&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''str(2)'''&lt;br /&gt;
 '2'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''-123'''&lt;br /&gt;
 -123&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''str(-123)'''&lt;br /&gt;
 '-123'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''# Tekstinė reikšmė į skaičių'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''&amp;quot;23&amp;quot;'''&lt;br /&gt;
 '23'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''int(&amp;quot;23&amp;quot;)'''&lt;br /&gt;
 23&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''&amp;quot;23&amp;quot; * 2'''&lt;br /&gt;
 '2323'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''int(&amp;quot;23&amp;quot;) * 2'''&lt;br /&gt;
 46&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''# Skaičius po kablelio į tekstinę reikšmę'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''1.23'''&lt;br /&gt;
 1.23&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''str(1.23)'''&lt;br /&gt;
 '1.23'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''# Skaičius po kablelio į skaičių'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''1.23'''&lt;br /&gt;
 1.23&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''int(1.23)'''&lt;br /&gt;
 1&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''int(-1.23)'''&lt;br /&gt;
 -1&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''# Tekstinė reikšmė į skaičių po kablelio'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''float(&amp;quot;1.23&amp;quot;)'''&lt;br /&gt;
 1.23&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''&amp;quot;1.23&amp;quot;''' &lt;br /&gt;
 '1.23'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''float(&amp;quot;123&amp;quot;)'''&lt;br /&gt;
 123.0&lt;br /&gt;
&lt;br /&gt;
Jeigu dar nesupratai, tai funkcija &amp;lt;code&amp;gt;str()&amp;lt;/code&amp;gt; konvertuoja skaičių į tekstinę reikšmę, o funkcija &amp;lt;code&amp;gt;int()&amp;lt;/code&amp;gt; konvertuoja tekstinę reikšmę į skaičių. Funkcija &amp;lt;code&amp;gt;float()&amp;lt;/code&amp;gt; konvertuoja tekstinę reikšmę arba skaičių į skaičių po kablelio. Grįžtant prie funkcijos &amp;lt;code&amp;gt;str()&amp;lt;/code&amp;gt; - ji grąžina tekstinę įrašytos reikšmės versiją. Štai keli pavyzdžiai:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''str(1)'''&lt;br /&gt;
 '1'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''str(234.14)'''&lt;br /&gt;
 '234.14'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''str([4, 42, 10])'''&lt;br /&gt;
 '[4, 42, 10]'&lt;br /&gt;
&lt;br /&gt;
Funkcija &amp;lt;code&amp;gt;int()&amp;lt;/code&amp;gt; konvertuoja tekstinę reikšmę (ar skaičių su reikšme po kablelio) į sveikąjį skaičių. Panaši funkcija &amp;lt;Code&amp;gt;float&amp;lt;/code&amp;gt; konvertuoja skaičių ar tekstinę reikšmę į skaičių su reikšme po kablelio. Taip pat Python programavimo kalba turi funkciją &amp;lt;code&amp;gt;type()&amp;lt;/code&amp;gt;, kuri grąžina eilutės tipą. Pavyzdžiui:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
v = '123'&lt;br /&gt;
print(type(v))&lt;br /&gt;
# &amp;lt;class 'str'&amp;gt;&lt;br /&gt;
&lt;br /&gt;
v = 645.123&lt;br /&gt;
print(type(v))&lt;br /&gt;
# &amp;lt;class 'float'&amp;gt;&lt;br /&gt;
&lt;br /&gt;
v = [1, 2, 3]&lt;br /&gt;
print(type(v))&lt;br /&gt;
# &amp;lt;class 'list'&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jeigu pamatai funkciją &amp;lt;code&amp;gt;type()&amp;lt;/code&amp;gt; tai pasitikrink, ar grąžinamas toks reikšmės tipas, kurio tikėjaisi.&lt;br /&gt;
&lt;br /&gt;
Taip pat naudingas ir dažnai paprastose užduotyse naudojamas metodas &amp;lt;code&amp;gt;split()&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''&amp;quot;Čia yra tik ždožių kratinys&amp;quot;.split()'''&lt;br /&gt;
 ['Čia', 'yra', 'tik', 'žodžių', 'kratinys']&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''tekstas= &amp;quot;Pirma partija, antra partija, trečia, ketvirta&amp;quot;'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''tekstas.split(&amp;quot;,&amp;quot;)'''&lt;br /&gt;
 ['Pirma partija', ' antra partija', ' trečia', ' ketvirta']&lt;br /&gt;
&lt;br /&gt;
Ar pastebėjai kaip &amp;lt;code&amp;gt;split()&amp;lt;/code&amp;gt; konvertuoja tekstinę reikšmę į tekstinių reikšmių sąrašą (angl. list)? Pagal numatytus nustatymus tekstinė reikšmė padalijama pagal nurodytus tarpus, šiuo atveju pagal nurodytą argumentą - kablelį.&lt;br /&gt;
Taip pat galima pridėti ir kitą argumentą, kuris nurodo &amp;lt;code&amp;gt;split()&amp;lt;/code&amp;gt; funkcijai, kurioje sąrašo vietoje reikia atskirti tekstą:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''sąrašas= tekstas.split(&amp;quot;,&amp;quot;)'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''len(sąrašas)'''&lt;br /&gt;
 4&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''sąrašas[-1]'''&lt;br /&gt;
 ' ketvirta'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''list = tekstas.split(&amp;quot;,&amp;quot;, 2)'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''len(list)'''&lt;br /&gt;
 3&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''sąrašas[-1]'''&lt;br /&gt;
 ' trečia, ketvirta'&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- TODO add more on strings --&amp;gt;&lt;br /&gt;
=== Tekstinės (ir sąrašo) reikšmės pjaustymas (Slicing strings(and lists) ===&lt;br /&gt;
&lt;br /&gt;
Tekstinę reikšmę galima pjaustyti/skaidyti į skirtingas mažesnes reikšmes. Tą jau matei ankstesniame pavyzdyje, kai laužtiniuose skliaustuose &amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; buvo nurodyta reikiama teksto vieta. Pjaustymo operatorius veikia taip: &amp;lt;code&amp;gt;tekstas[pradžios_indeksas:pabaigos_indeksas]&amp;lt;/code&amp;gt; (retais atvejais galime pridėti dar ir trečią argumentą, kaip apačioje esančiame pavyzdyje)&lt;br /&gt;
&lt;br /&gt;
Kad nesusipainiotum įrašydamas indekso skaičius, įsivaizduok, kad žirklėmis karpai tekstą, o programai nurodai, kurioje vietoje kirpti. Štai vienas pavyzdys, kaip tai viekia - geltonai pažymėtos kirpimo vietos, o raudonai ir mėlynai indekso numeris&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
{| style=&amp;quot;text-align:center&amp;quot; cellspacing=&amp;quot;0px&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width:2ex;color:red&amp;quot; |0&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width:2ex;color:red&amp;quot; |1&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width:2ex;color:red&amp;quot; |2&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; | ...&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width:2ex;color:blue&amp;quot; | -2&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width:2ex;color:blue&amp;quot; | -1&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&amp;amp;darr;&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&amp;amp;darr;&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&amp;amp;darr;&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&amp;amp;darr;&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&amp;amp;darr;&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&amp;amp;darr;&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&amp;amp;darr;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| tekstas = &lt;br /&gt;
|&amp;quot;&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
!S &lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
!T&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
!R&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
!I&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
!N&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
!G&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
|&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&amp;amp;uarr;&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&amp;amp;uarr;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[:&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|:]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Įsidėmėk, kad raudonai pažymėti indeksai skaičiuojami nuo pradžios, o mėlyni atvirkščiai nuo kito galo t.y. teksto pabaigos. Taip pat ar pastebėjai, kad skaičiuojant nuo galo nėra -0 reikšmės? Taip yra todėl, kad 0 visada priskiriamas tik reikšmės pradžiai:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|tekstas[1:4] || style=&amp;quot;width:3em;text-align:center&amp;quot; | &amp;amp;rarr; || &amp;quot;TRI&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|tekstas[:5] || style=&amp;quot;width:3em;text-align:center&amp;quot; | &amp;amp;rarr; || &amp;quot;STRIN&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|tekstas[:-1] || style=&amp;quot;width:3em;text-align:center&amp;quot; | &amp;amp;rarr; || &amp;quot;STRIN&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|tekstas[-4:] || style=&amp;quot;width:3em;text-align:center&amp;quot; | &amp;amp;rarr; || &amp;quot;RING&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|tekstas[2] || style=&amp;quot;width:3em;text-align:center&amp;quot; | &amp;amp;rarr; || &amp;quot;R&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|tekstas[:] || style=&amp;quot;width:3em;text-align:center&amp;quot; | &amp;amp;rarr; || &amp;quot;STRING&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|tekstas[::-1] || style=&amp;quot;width:3em;text-align:center&amp;quot; | &amp;amp;rarr; || &amp;quot;GNIRTS&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;tekstas[1:4]&amp;lt;/tt&amp;gt; duoda visas &amp;lt;tt&amp;gt;tekstas&amp;lt;/tt&amp;gt; reikšmes tarp 1 ir 4, &amp;quot;&amp;lt;tt&amp;gt;TRI&amp;lt;/tt&amp;gt;&amp;quot;. Jei praleisi vieną iš argumentų [pradžios_indeksas:pabaigos indeksas], automatiškai gausi tekstinę reikšmę nuo pradžios ar pabaigos: &amp;lt;tt&amp;gt;tekstas[:5]&amp;lt;/tt&amp;gt; atspausdina&amp;quot;&amp;lt;tt&amp;gt;STRIN&amp;lt;/tt&amp;gt;&amp;quot;. Taip pat, tiek su &amp;lt;tt&amp;gt;pradžios_indeksas&amp;lt;/tt&amp;gt;, tiek su &amp;lt;tt&amp;gt;pabaigos_indeksas&amp;lt;/tt&amp;gt; galime naudoti raudonai ir mėlynai pavaizduotą skaičiavimo schemą - t.y. galime skaičuoti nuo pradžios, arba nuo pabaigos: &amp;lt;tt&amp;gt;tekstas[:-1]&amp;lt;/tt&amp;gt; duoda tą patį rezultatą kaip &amp;lt;tt&amp;gt;tekstas[:5]&amp;lt;/tt&amp;gt;, todėl, kad indekas -1 šiame žodyje yra toje pačioje vietoje kaip indeksas 5. Jeigu nenaudojame argumento kartu su dvitaškiu, tai skaičius traktuojamas kitaip, pavyzdžiui: &amp;lt;tt&amp;gt;tekstas[2]&amp;lt;/tt&amp;gt; duoda vieną raidę, kuri yra nurodytoje vietoje, šiuo atveju &amp;quot;&amp;lt;tt&amp;gt;R&amp;lt;/tt&amp;gt;&amp;quot;. Speciali pjaustymo operacija &amp;lt;tt&amp;gt;tekstas[:]&amp;lt;/tt&amp;gt; reiškia nuo pradžios iki pabaigos ir duodą visos tekstinės reikšmės ar sąrašo (list) kopiją. &lt;br /&gt;
&lt;br /&gt;
Na ir galiausiai, pjaustymo operacija gali turėti ir trečią argumentą, kuris suprantamas, kaip „žingsnio dydis“: &amp;lt;tt&amp;gt;tekstas[::-1]&amp;lt;/tt&amp;gt; yra &amp;lt;tt&amp;gt;tekstas&amp;lt;/tt&amp;gt; nuo pradžios iki pabaigos, kai nurodytas žingsnio dydis yra -1. Tai reiškia - kiekviena raidė, tik atvirkštine eilės tvarka. &amp;quot;&amp;lt;tt&amp;gt;STRING&amp;lt;/tt&amp;gt;&amp;quot; atvirkščiai yra &amp;quot;&amp;lt;tt&amp;gt;GNIRTS&amp;lt;/tt&amp;gt;&amp;quot; (jeigu nesupratai, tai pabandyk prasitestuoti įrašydamas kaip žingsnio ilgį skaičių 2).&lt;br /&gt;
&lt;br /&gt;
Visos šios pjaustymo operacijos veikia ir su sąrašais (lists). Šiuo atveju tekstinę reikšmę galime suprasti, kaip sąrašą, kai visi sąrašo elementai yra atskiros raidės. Iš šio skyriaus atsimink pagrindinį principą - į viską žiūrėk taip lyg karpytum, tai padės nesusipainioti įrašant indeksus.&lt;br /&gt;
&lt;br /&gt;
=== Pavyzdžiai ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Ši programa reikalauja dešimtainių skaičių supratimo.&lt;br /&gt;
def į_tekstą(į_skaičių):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Konvertuoja skaičių į teksta&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    tekstas = &amp;quot;&amp;quot;&lt;br /&gt;
    prefiksas = &amp;quot;&amp;quot;&lt;br /&gt;
    if į_skaičių &amp;lt; 0:&lt;br /&gt;
        prefiksas = &amp;quot;-&amp;quot;&lt;br /&gt;
        į_skaičių = -į_skaičių&lt;br /&gt;
    while į_skaičių // 10 != 0:&lt;br /&gt;
        out_str = str(į_skaičių % 10) + tekstas&lt;br /&gt;
        į_skaičių= į_skaičių// 10&lt;br /&gt;
    tekstas = str(į_skaičių % 10) + tekstas&lt;br /&gt;
    return prefiksas + tekstas&lt;br /&gt;
&lt;br /&gt;
def į_skaičių(į_tekstą):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Konvertuoja tekstą į skaičių&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    skaičius = 0&lt;br /&gt;
    if į_tekstą[0] == &amp;quot;-&amp;quot;:&lt;br /&gt;
        daugiklis = -1&lt;br /&gt;
        į_tekstą = į_tekstą[1:]&lt;br /&gt;
    else:&lt;br /&gt;
        daugiklis = 1&lt;br /&gt;
    for c in į_tekstą:&lt;br /&gt;
        skaičius = skaičius* 10 + int(c)&lt;br /&gt;
    return skaičius * daugiklis&lt;br /&gt;
&lt;br /&gt;
print(į_tekstą(2))&lt;br /&gt;
print(į_tekstą(23445))&lt;br /&gt;
print(į_tekstą(-23445))&lt;br /&gt;
print(į_skaičių(&amp;quot;14234&amp;quot;))&lt;br /&gt;
print(į_skaičių(&amp;quot;12345&amp;quot;))&lt;br /&gt;
print(į_skaičių(&amp;quot;-3512&amp;quot;))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rezultatas:&lt;br /&gt;
&lt;br /&gt;
 2&lt;br /&gt;
 23445&lt;br /&gt;
 -23445&lt;br /&gt;
 14234&lt;br /&gt;
 12345&lt;br /&gt;
 -3512&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=More on Lists|next=File IO}}&lt;br /&gt;
{{BookCat}}&lt;/div&gt;</summary>
		<author><name>Rokas</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Rekursin%C4%97s_funkcijos&amp;diff=3573</id>
		<title>Python Vadovėlis/Rekursinės funkcijos</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Rekursin%C4%97s_funkcijos&amp;diff=3573"/>
		<updated>2021-11-24T08:02:09Z</updated>

		<summary type="html">&lt;p&gt;Rokas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Vieniems šis skyrius gali pasirodyti naudingas, o kitiems - painus. Jeigu tau informacija pasirodys paini, tai nesuk galvos ir praleisk,  prie šio skyriaus galėsi grįžti šiek tiek vėliau. O dabar pabandom pasižiūrėti į mūsų parašytą programą:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def mult(a, b): #multiplication angliškai daugyba&lt;br /&gt;
    if b == 0:&lt;br /&gt;
        return 0&lt;br /&gt;
    rest= mult(a, b - 1) #rest angliškai likutis&lt;br /&gt;
    value= a + rest #value angliškai reikšmė&lt;br /&gt;
    return value&lt;br /&gt;
result = mult(3, 2) #result angliškai rezultatas&lt;br /&gt;
print(&amp;quot;3 * 2 = &amp;quot;, result)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Iš esmės ši programa, tai teigiama sveikųjų skaičių daugybos funkcija (reik atkreipti dėmesį į tai, kad Python programavimo kalboje jau yra integruota funkcija dauginimui, čia mes patys parašėme lengvai suprantamą pavyzdį (jeigu kurtume tokią funkciją patys), kuris parodo kaip atrodo daugybos veiksmas. Šioje programoje gali pamatyti rekursijos naudojimą, tai yra iteracijos (kartojimo) forma, kai funkcija yra pakartotinai iškviečiama, kol bus įvykdyta sukurta išvesties sąlyga. Programa naudoja pakartotinius papildymus, kad gautų tą patį rezultatą kaip ir daugyba: pavyzdžiui 3 + 3 (sudėtis) duoda tą patį rezultatą kaip ir 3 * 2 (daugyba).&lt;br /&gt;
&lt;br /&gt;
; ''Klausimas:'' Ką pirmiausia daro programa?&lt;br /&gt;
: ''Atsakymas:'' Pirmiausia yra aprašyta funkcija daugink:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def mult(a, b):&lt;br /&gt;
    if b == 0:&lt;br /&gt;
        return 0&lt;br /&gt;
    rest = mult(a, b - 1)&lt;br /&gt;
    value = a + rest&lt;br /&gt;
    return value&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
: Tai sukuria funkciją, kuri paima du parametrus ir grąžina reikšmę, kai ji atitinka reikiamą rezultatą. Vėliau šią funkciją galima paleisti.&lt;br /&gt;
; Kas nutinka toliau?  &lt;br /&gt;
: Vykdoma kita eilutė einanti po funkcijos &amp;lt;code&amp;gt;result = mult(3, 2)&amp;lt;/code&amp;gt;&lt;br /&gt;
; Ką daro ši eilutė?&lt;br /&gt;
: Ši eilutė priskiria grąžinimo reikšmę &amp;lt;code&amp;gt;mult(3, 2)&amp;lt;/code&amp;gt; kintamajam &amp;lt;code&amp;gt;result&amp;lt;/code&amp;gt;.&lt;br /&gt;
; Ką grąžina &amp;lt;code&amp;gt;mult(3, 2)&amp;lt;/code&amp;gt;?&lt;br /&gt;
: Norėdami tai išsiaiškinti, turime peržiūrėti funkciją &amp;lt;code&amp;gt; mult()&amp;lt;/code&amp;gt;.&lt;br /&gt;
; Kas vyksta su kodu?&lt;br /&gt;
: Kintamasis &amp;lt;code&amp;gt; a &amp;lt;/code&amp;gt; gauna jam priskirtą reikšmę 3, o kintamasis &amp;lt;code&amp;gt; b &amp;lt;/code&amp;gt; - jam priskirtą reikšmę 2.&lt;br /&gt;
; Kas nutinka tada?&lt;br /&gt;
: Vykdoma eilutė &amp;lt;code&amp;gt;if b == 0: &amp;lt;/code&amp;gt;. Kadangi &amp;lt;code&amp;gt; b &amp;lt;/code&amp;gt; reikšmė yra 2, todėl eilutė &amp;lt;code&amp;gt; return 0 &amp;lt;/code&amp;gt; praleidžiama.&lt;br /&gt;
; Kas vyksta toliau?&lt;br /&gt;
: Vykdoma eilutė &amp;lt;code&amp;gt; rest = mult (a, b - 1) &amp;lt;/code&amp;gt;. Ši eilutė nustato lokalaus kintamojo &amp;lt;code&amp;gt; rest &amp;lt;/code&amp;gt; reikšmę į &amp;lt;code&amp;gt; mult (a, b - 1) &amp;lt;/code&amp;gt; reikšmę. &amp;lt;code&amp;gt; a &amp;lt;/code&amp;gt; reikšmė yra 3, o &amp;lt;code&amp;gt; b &amp;lt;/code&amp;gt; - 2, todėl funkcija kviečia funkciją&amp;lt;code&amp;gt; mult (3,1) &amp;lt;/code&amp;gt;&lt;br /&gt;
; Taigi kokia yra &amp;lt;code&amp;gt; mult (3, 1) &amp;lt;/code&amp;gt; reikšmė?&lt;br /&gt;
: Turime paleisti funkciją &amp;lt;code&amp;gt; mult() &amp;lt;/code&amp;gt; su parametrais, kurie yra 3 ir 1.&lt;br /&gt;
; Kas nutinka toliau?&lt;br /&gt;
: Lokalūs kintamieji vėl pasileidus kodui jau yra nustatyti, todėl &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; reikšmė būtų 3, o &amp;lt;code&amp;gt; b&amp;lt;/code&amp;gt; reikšmė -1. Kadangi jie yra lokalūs kintamieji, todėl jie neturi įtakos ankstesnėms &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt; reikšmėms.&lt;br /&gt;
; Kas įvyksta toliau?&lt;br /&gt;
: Kadangi &amp;lt;code&amp;gt; b &amp;lt;/code&amp;gt; turi reikšmę 1, if teiginys yra neigiamas, todėl vykdoma kita eilutė &amp;lt;code&amp;gt; rest = mult (a, b - 1) &amp;lt;/code&amp;gt;.&lt;br /&gt;
; Ką daro ši eilutė?&lt;br /&gt;
: Ši eilutė &amp;lt;code&amp;gt; mult (3, 0) &amp;lt;/code&amp;gt; reikšmę priskiria kitiems.&lt;br /&gt;
; Ką daro ši reikšmė?&lt;br /&gt;
: Norėdami tai išsiaiškinti, turime dar kartą paleisti funkciją. Šį kartą &amp;lt;code&amp;gt; a &amp;lt;/code&amp;gt; reikšmė yra 3, o &amp;lt;code&amp;gt; b &amp;lt;/code&amp;gt; - 0.&lt;br /&gt;
; Kas vyksta toliau?&lt;br /&gt;
: Pirmoji vykdytinos funkcijos eilutė yra &amp;lt;code&amp;gt;, if b == 0: &amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt; b &amp;lt;/code&amp;gt; reikšmė 0, todėl kita vykdoma eilutė yra &amp;lt;code&amp;gt; return 0 &amp;lt;/code&amp;gt;&lt;br /&gt;
; Ką daro &amp;lt;code&amp;gt;return 0&amp;lt;/code&amp;gt; eilutė?&lt;br /&gt;
: Ši eilutė grąžina funkcijos reikšmę lygią 0.&lt;br /&gt;
; Kas iš to?&lt;br /&gt;
: Dabar mes žinome, kad &amp;lt;code&amp;gt; mult (3, 0) &amp;lt;/code&amp;gt; turi reikšmę 0. Dar žinome, ką daro eilutė &amp;lt;code&amp;gt; rest = mult (a, b - 1) &amp;lt;/code&amp;gt;, nes paleidžiame funkciją &amp;lt;code&amp;gt; mult() &amp;lt;/code&amp;gt; su parametrais 3 ir 0. Baigiame vykdyti &amp;lt;code&amp;gt; mult (3, 0) &amp;lt;/code&amp;gt; ir dabar vėl pradedame vykdyti &amp;lt;code&amp;gt; mult (3, 1) &amp;lt;/code&amp;gt;. Kintamajam &amp;lt;code&amp;gt; rest &amp;lt;/code&amp;gt; priskiriama vertė 0.&lt;br /&gt;
; Kurią eilutę kompiuteris skaito po to?&lt;br /&gt;
: Toliau vykdoma eilutė &amp;lt;code&amp;gt; value = a + rest &amp;lt;/code&amp;gt;. Žinome, kad &amp;lt;code&amp;gt; a = 3 &amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt; rest = 0 &amp;lt;/code&amp;gt; todėl dabar &amp;lt;code&amp;gt; value = 3 &amp;lt;/code&amp;gt;. &lt;br /&gt;
; Kas nutinka toliau?&lt;br /&gt;
: Vykdoma eilutė &amp;lt;code&amp;gt; return value &amp;lt;/code&amp;gt;, kuri grąžina reikšmę 3. Šis skaičius atsiranda iš funkcijos &amp;lt;code&amp;gt; mult (3, 1) &amp;lt;/code&amp;gt; vykdymo. Iškvietus &amp;lt;code&amp;gt; return &amp;lt;/code&amp;gt;, grįžtame prie &amp;lt;code&amp;gt; mult (3, 2) &amp;lt;/code&amp;gt;.&lt;br /&gt;
; Kur yra &amp;lt;code&amp;gt; mult (3, 2) &amp;lt;/code&amp;gt;?&lt;br /&gt;
: Mes turėjome kintamuosius &amp;lt;code&amp;gt; a = 3 &amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt; b = 2 &amp;lt;/code&amp;gt; ir nagrinėjome eilutę &amp;lt;code&amp;gt; rest = mult (a, b - 1) &amp;lt;/code&amp;gt;.&lt;br /&gt;
; Kas įvyksta?&lt;br /&gt;
: Kintamajam &amp;lt;code&amp;gt; rest &amp;lt;/code&amp;gt; priskiriama reikšmė 3. Kita eilutė &amp;lt;code&amp;gt; value = a + rest &amp;lt;/code&amp;gt; nustato &amp;lt;code&amp;gt; value &amp;lt;/code&amp;gt; į &amp;lt;code&amp;gt; 3 + 3 &amp;lt;/code&amp;gt; arba 6.  &lt;br /&gt;
; Kas įvyksta toliau?&lt;br /&gt;
: Pradeda veikti kita eilutė, kuri grąžina 6 iš funkcijos. Tuomet grįžtame prie eilutės &amp;lt;code&amp;gt;result = mult(3, 2)&amp;lt;/code&amp;gt;, kuriai dabar galima priskirti reikšmę 6 kintamajam &amp;lt;code&amp;gt;result&amp;lt;/code&amp;gt;&lt;br /&gt;
; Kas nutinka toliau?  &lt;br /&gt;
: Paleidžiama kita eilutė po funkcijos &amp;lt;code&amp;gt; print (&amp;quot;3 * 2 =&amp;quot;, result) &amp;lt;/code&amp;gt;.&lt;br /&gt;
; Ką ji daro?&lt;br /&gt;
: Ji spausdina &amp;lt;code&amp;gt; 3 * 2 = &amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt; result &amp;lt;/code&amp;gt; reikšmę, kuri yra 6. Visa išspausdinta eilutė yra &amp;lt;code&amp;gt; 3 * 2 = 6 &amp;lt;/code&amp;gt;.&lt;br /&gt;
; Taigi, kas čia įvyko apskritai?  &lt;br /&gt;
: Iš esmės panaudojome du skirtingus faktus, kad apskaičiuotume dviejų skaičių kartotinį. Pirmas, kad bet koks skaičius padauginus iš nulio yra nulis &amp;lt;code&amp;gt;(x * 0 = 0)&amp;lt;/code&amp;gt;. Antras, kad skaičius padaugintas iš kito skaičiaus yra lygus pirmam skaičiui ir pirmas skaičius yra  vienu skaitmeniu mažesnis už antrajį skaičių &amp;lt;code&amp;gt;(x * y = x + x * (y - 1))&amp;lt;/code&amp;gt;. Taigi ir čia &amp;lt;code&amp;gt;3 * 2&amp;lt;/code&amp;gt; pirmiausiai paverčiamas į &amp;lt;code&amp;gt;3 + 3 * 1&amp;lt;/code&amp;gt;. Tada &amp;lt;code&amp;gt;3 * 1&amp;lt;/code&amp;gt; paverčiamas į &amp;lt;code&amp;gt;3 + 3 * 0&amp;lt;/code&amp;gt;. Tuomet mes žinome, kad bet kuris skaičius padaugintas iš nulio yra nulis, todėl &amp;lt;code&amp;gt;3 * 0&amp;lt;/code&amp;gt; yra 0. Tuomet galime apskaičiuoti, kad &amp;lt;code&amp;gt; 3 + 3 * 0&amp;lt;/code&amp;gt; yra &amp;lt;code&amp;gt;3 + 0&amp;lt;/code&amp;gt; arba kitaip tariant tiesiog &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt;. Tuomet mes žinome, kas yra &amp;lt;code&amp;gt;3 * 1&amp;lt;/code&amp;gt;, todėl galime apskaičiuoti, kad &amp;lt;code&amp;gt;3 + 3 * 1&amp;lt;/code&amp;gt; yra &amp;lt;code&amp;gt;3 + 3&amp;lt;/code&amp;gt; arba kitaip tariant &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Štai kaip viskas veikia:&lt;br /&gt;
&lt;br /&gt;
 mult(3, 2)&lt;br /&gt;
 3 + mult(3, 1)&lt;br /&gt;
 3 + 3 + mult(3, 0)&lt;br /&gt;
 3 + 3 + 0&lt;br /&gt;
 3 + 3&lt;br /&gt;
 6&lt;br /&gt;
&lt;br /&gt;
==== Rekursija ====&lt;br /&gt;
Programavimo konstrukcijos, išsprendžiančios problemą išsprendžiant mažesnę tos pačios problemos versiją, vadinamos „rekursyviomis“. Šio skyriaus pavyzdžiuose rekursija realizuojama apibrėžiant funkciją, kuri pati save iškviečia. Tai palengvina programavimo užduočių spendimų įgyvendinimą, nes kartais pakanka apsvarstyti tik vieną problemos žingsnį, o ne visą problemą iš karto. Be to tai leidžia išreikšti kai kurias matematines sąvokas paprastu, lengvai skaitomu kodu.&lt;br /&gt;
&lt;br /&gt;
Bet kokią problemą, kurią galime išspręsti naudojant rekursiją, gali būti išspręsta naudojant ciklus. Jie veikia greičiau, bet kartais ciklus sunku atlikti teisingai.&lt;br /&gt;
&lt;br /&gt;
Turbūt intuityviausias „rekursijos“ apibrėžimas yra toks:&lt;br /&gt;
; Rekursija&lt;br /&gt;
: Jei vis dar nesupranti, tai skaityk: REKURSIJA.&lt;br /&gt;
Pabandyk perskaityti faktinį pavyzdį, jei nesupratai daugybos pavyzdžio.&lt;br /&gt;
&lt;br /&gt;
=== Pavyzdžiai ===&lt;br /&gt;
'''faktorialas.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#apibrėžia funkciją, kuri apskaičiuoja koeficientą&lt;br /&gt;
&lt;br /&gt;
def faktorialas(n):&lt;br /&gt;
    if n == 0:&lt;br /&gt;
        return 1&lt;br /&gt;
    if n&amp;lt;0:&lt;br /&gt;
        return &amp;quot;Klaida, neigiami skaičiai neturi faktorialo reikšmių!!&amp;quot;&lt;br /&gt;
    return n * faktorialas(n - 1)&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;2! =&amp;quot;, faktorialas(2))&lt;br /&gt;
print(&amp;quot;3! =&amp;quot;, faktorialas(3))&lt;br /&gt;
print(&amp;quot;4! =&amp;quot;, faktorialas(4))&lt;br /&gt;
print(&amp;quot;5! =&amp;quot;, faktorialas(5))&lt;br /&gt;
print(&amp;quot;-3! =&amp;quot;, faktorialas(-3))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rezultatas:&lt;br /&gt;
 &lt;br /&gt;
 2! = 2&lt;br /&gt;
 3! = 6&lt;br /&gt;
 4! = 24&lt;br /&gt;
 5! = 120&lt;br /&gt;
 -3! = Klaida, neigiami skaičiai neturi faktorialo reikšmių!!&lt;br /&gt;
&lt;br /&gt;
'''atgalinis_kaičiavimas.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def atgalinis_kaičiavimas(n):&lt;br /&gt;
    print(n)&lt;br /&gt;
    if n &amp;gt; 0:&lt;br /&gt;
        return atgalinis_kaičiavimas(n-1)&lt;br /&gt;
&lt;br /&gt;
atgalinis_kaičiavimas(5)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rezultatas:&lt;br /&gt;
 5&lt;br /&gt;
 4&lt;br /&gt;
 3&lt;br /&gt;
 2&lt;br /&gt;
 1&lt;br /&gt;
 0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Dabar pabandyk žodį &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt;(lietuviškai jei) pakeisti žodžiu &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt;(lietuviškai kol). Pamatysi, kad kompiuteris pavirto skaičiuotuvu, kuris negali suskaičiuoti iki keturių. Iš esmės &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt;(kol) veikia kaip &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt;(jei) ir &amp;lt;code&amp;gt;repeat&amp;lt;/code&amp;gt;(angl. pakartok) kartu sudėjus.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Defining Functions |next=Lists}}&lt;/div&gt;</summary>
		<author><name>Rokas</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Rekursin%C4%97s_funkcijos&amp;diff=3572</id>
		<title>Python Vadovėlis/Rekursinės funkcijos</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Rekursin%C4%97s_funkcijos&amp;diff=3572"/>
		<updated>2021-11-24T08:00:48Z</updated>

		<summary type="html">&lt;p&gt;Rokas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Vieniems šis skyrius gali pasirodyti naudingas, o kitiems - painus. Jeigu tau informacija pasirodys paini, tai nesuk galvos ir praleisk,  prie šio skyriaus galėsi grįžti šiek tiek vėliau. O dabar pabandom pasižiūrėti į mūsų parašytą programą:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def mult(a, b): #multiplication angliškai daugyba&lt;br /&gt;
    if b == 0:&lt;br /&gt;
        return 0&lt;br /&gt;
    rest= mult(a, b - 1) #rest angliškai likutis&lt;br /&gt;
    value= a + rest #value angliškai reikšmė&lt;br /&gt;
    return value&lt;br /&gt;
result = mult(3, 2) #result angliškai rezultatas&lt;br /&gt;
print(&amp;quot;3 * 2 = &amp;quot;, result)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Iš esmės ši programa, tai teigiama sveikųjų skaičių daugybos funkcija (reik atkreipti dėmesį į tai, kad Python programavimo kalboje jau yra integruota funkcija dauginimui, čia mes patys parašėme lengvai suprantamą pavyzdį (jeigu kurtume tokią funkciją patys), kuris parodo kaip atrodo daugybos veiksmas. Šioje programoje gali pamatyti rekursijos naudojimą, tai yra iteracijos (kartojimo) forma, kai funkcija yra pakartotinai iškviečiama, kol bus įvykdyta sukurta išvesties sąlyga. Programa naudoja pakartotinius papildymus, kad gautų tą patį rezultatą kaip ir daugyba: pavyzdžiui 3 + 3 (sudėtis) duoda tą patį rezultatą kaip ir 3 * 2 (daugyba).&lt;br /&gt;
&lt;br /&gt;
; ''Klausimas:'' Ką pirmiausia daro programa?&lt;br /&gt;
: ''Atsakymas:'' Pirmiausia yra aprašyta funkcija daugink:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def mult(a, b):&lt;br /&gt;
    if b == 0:&lt;br /&gt;
        return 0&lt;br /&gt;
    rest = mult(a, b - 1)&lt;br /&gt;
    value = a + rest&lt;br /&gt;
    return value&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
: Tai sukuria funkciją, kuri paima du parametrus ir grąžina reikšmę, kai ji atitinka reikiamą rezultatą. Vėliau šią funkciją galima paleisti.&lt;br /&gt;
; Kas nutinka toliau?  &lt;br /&gt;
: Vykdoma kita eilutė einanti po funkcijos &amp;lt;code&amp;gt;result = mult(3, 2)&amp;lt;/code&amp;gt;&lt;br /&gt;
; Ką daro ši eilutė?&lt;br /&gt;
: Ši eilutė priskiria grąžinimo reikšmę &amp;lt;code&amp;gt;mult(3, 2)&amp;lt;/code&amp;gt; kintamajam &amp;lt;code&amp;gt;result&amp;lt;/code&amp;gt;.&lt;br /&gt;
; Ką grąžina &amp;lt;code&amp;gt;mult(3, 2)&amp;lt;/code&amp;gt;?&lt;br /&gt;
: Norėdami tai išsiaiškinti, turime peržiūrėti funkciją &amp;lt;code&amp;gt; mult()&amp;lt;/code&amp;gt;.&lt;br /&gt;
; Kas vyksta su kodu?&lt;br /&gt;
: Kintamasis &amp;lt;code&amp;gt; a &amp;lt;/code&amp;gt; gauna jam priskirtą reikšmę 3, o kintamasis &amp;lt;code&amp;gt; b &amp;lt;/code&amp;gt; - jam priskirtą reikšmę 2.&lt;br /&gt;
; Kas nutinka tada?&lt;br /&gt;
: Vykdoma eilutė &amp;lt;code&amp;gt;if b == 0: &amp;lt;/code&amp;gt;. Kadangi &amp;lt;code&amp;gt; b &amp;lt;/code&amp;gt; reikšmė yra 2, todėl eilutė &amp;lt;code&amp;gt; return 0 &amp;lt;/code&amp;gt; praleidžiama.&lt;br /&gt;
; Kas vyksta toliau?&lt;br /&gt;
: Vykdoma eilutė &amp;lt;code&amp;gt; rest = mult (a, b - 1) &amp;lt;/code&amp;gt;. Ši eilutė nustato lokalaus kintamojo &amp;lt;code&amp;gt; rest &amp;lt;/code&amp;gt; reikšmę į &amp;lt;code&amp;gt; mult (a, b - 1) &amp;lt;/code&amp;gt; reikšmę. &amp;lt;code&amp;gt; a &amp;lt;/code&amp;gt; reikšmė yra 3, o &amp;lt;code&amp;gt; b &amp;lt;/code&amp;gt; - 2, todėl funkcija kviečia funkciją&amp;lt;code&amp;gt; mult (3,1) &amp;lt;/code&amp;gt;&lt;br /&gt;
; Taigi kokia yra &amp;lt;code&amp;gt; mult (3, 1) &amp;lt;/code&amp;gt; reikšmė?&lt;br /&gt;
: Turime paleisti funkciją &amp;lt;code&amp;gt; mult() &amp;lt;/code&amp;gt; su parametrais, kurie yra 3 ir 1.&lt;br /&gt;
; Kas nutinka toliau?&lt;br /&gt;
: Lokalūs kintamieji vėl pasileidus kodui jau yra nustatyti, todėl &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; reikšmė būtų 3, o &amp;lt;code&amp;gt; b&amp;lt;/code&amp;gt; reikšmė -1. Kadangi jie yra lokalūs kintamieji, todėl jie neturi įtakos ankstesnėms &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt; reikšmėms.&lt;br /&gt;
; Kas įvyksta toliau?&lt;br /&gt;
: Kadangi &amp;lt;code&amp;gt; b &amp;lt;/code&amp;gt; turi reikšmę 1, if teiginys yra neigiamas, todėl vykdoma kita eilutė &amp;lt;code&amp;gt; rest = mult (a, b - 1) &amp;lt;/code&amp;gt;.&lt;br /&gt;
; Ką daro ši eilutė?&lt;br /&gt;
: Ši eilutė &amp;lt;code&amp;gt; mult (3, 0) &amp;lt;/code&amp;gt; reikšmę priskiria kitiems.&lt;br /&gt;
; Ką daro ši reikšmė?&lt;br /&gt;
: Norėdami tai išsiaiškinti, turime dar kartą paleisti funkciją. Šį kartą &amp;lt;code&amp;gt; a &amp;lt;/code&amp;gt; reikšmė yra 3, o &amp;lt;code&amp;gt; b &amp;lt;/code&amp;gt; - 0.&lt;br /&gt;
; Kas vyksta toliau?&lt;br /&gt;
: Pirmoji vykdytinos funkcijos eilutė yra &amp;lt;code&amp;gt;, if b == 0: &amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt; b &amp;lt;/code&amp;gt; reikšmė 0, todėl kita vykdoma eilutė yra &amp;lt;code&amp;gt; return 0 &amp;lt;/code&amp;gt;&lt;br /&gt;
; Ką daro &amp;lt;code&amp;gt;return 0&amp;lt;/code&amp;gt; eilutė?&lt;br /&gt;
: Ši eilutė grąžina funkcijos reikšmę lygią 0.&lt;br /&gt;
; Kas iš to?&lt;br /&gt;
: Dabar mes žinome, kad &amp;lt;code&amp;gt; mult (3, 0) &amp;lt;/code&amp;gt; turi reikšmę 0. Dar žinome, ką daro eilutė &amp;lt;code&amp;gt; rest = mult (a, b - 1) &amp;lt;/code&amp;gt;, nes paleidžiame funkciją &amp;lt;code&amp;gt; mult() &amp;lt;/code&amp;gt; su parametrais 3 ir 0. Baigiame vykdyti &amp;lt;code&amp;gt; mult (3, 0) &amp;lt;/code&amp;gt; ir dabar vėl pradedame vykdyti &amp;lt;code&amp;gt; mult (3, 1) &amp;lt;/code&amp;gt;. Kintamajam &amp;lt;code&amp;gt; rest &amp;lt;/code&amp;gt; priskiriama vertė 0.&lt;br /&gt;
; Kurią eilutę kompiuteris skaito po to?&lt;br /&gt;
: Toliau vykdoma eilutė &amp;lt;code&amp;gt; value = a + rest &amp;lt;/code&amp;gt;. Žinome, kad &amp;lt;code&amp;gt; a = 3 &amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt; rest = 0 &amp;lt;/code&amp;gt; todėl dabar &amp;lt;code&amp;gt; value = 3 &amp;lt;/code&amp;gt;. &lt;br /&gt;
; Kas nutinka toliau?&lt;br /&gt;
: Vykdoma eilutė &amp;lt;code&amp;gt; return value &amp;lt;/code&amp;gt;, kuri grąžina reikšmę 3. Šis skaičius atsiranda iš funkcijos &amp;lt;code&amp;gt; mult (3, 1) &amp;lt;/code&amp;gt; vykdymo. Iškvietus &amp;lt;code&amp;gt; return &amp;lt;/code&amp;gt;, grįžtame prie &amp;lt;code&amp;gt; mult (3, 2) &amp;lt;/code&amp;gt;.&lt;br /&gt;
; Kur yra &amp;lt;code&amp;gt; mult (3, 2) &amp;lt;/code&amp;gt;?&lt;br /&gt;
: Mes turėjome kintamuosius &amp;lt;code&amp;gt; a = 3 &amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt; b = 2 &amp;lt;/code&amp;gt; ir nagrinėjome eilutę &amp;lt;code&amp;gt; rest = mult (a, b - 1) &amp;lt;/code&amp;gt;.&lt;br /&gt;
; Kas įvyksta?&lt;br /&gt;
: Kintamajam &amp;lt;code&amp;gt; rest &amp;lt;/code&amp;gt; priskiriama reikšmė 3. Kita eilutė &amp;lt;code&amp;gt; value = a + rest &amp;lt;/code&amp;gt; nustato &amp;lt;code&amp;gt; value &amp;lt;/code&amp;gt; į &amp;lt;code&amp;gt; 3 + 3 &amp;lt;/code&amp;gt; arba 6.  &lt;br /&gt;
; Kas įvyksta toliau?&lt;br /&gt;
: Pradeda veikti kita eilutė, kuri grąžina 6 iš funkcijos. Tuomet grįžtame prie eilutės &amp;lt;code&amp;gt;result = mult(3, 2)&amp;lt;/code&amp;gt;, kuriai dabar galima priskirti reikšmę 6 kintamajam &amp;lt;code&amp;gt;result&amp;lt;/code&amp;gt;&lt;br /&gt;
; Kas nutinka toliau?  &lt;br /&gt;
: Paleidžiama kita eilutė po funkcijos &amp;lt;code&amp;gt; print (&amp;quot;3 * 2 =&amp;quot;, result) &amp;lt;/code&amp;gt;.&lt;br /&gt;
; Ką ji daro?&lt;br /&gt;
: Ji spausdina &amp;lt;code&amp;gt; 3 * 2 = &amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt; result &amp;lt;/code&amp;gt; reikšmę, kuri yra 6. Visa išspausdinta eilutė yra &amp;lt;code&amp;gt; 3 * 2 = 6 &amp;lt;/code&amp;gt;.&lt;br /&gt;
; Taigi, kas čia įvyko apskritai?  &lt;br /&gt;
: Iš esmės panaudojome du skirtingus faktus, kad apskaičiuotume dviejų skaičių kartotinį. Pirmas, kad bet koks skaičius padauginus iš nulio yra nulis &amp;lt;code&amp;gt;(x * 0 = 0)&amp;lt;/code&amp;gt;. Antras, kad skaičius padaugintas iš kito skaičiaus yra lygus pirmam skaičiui ir pirmas skaičius yra  vienu skaitmeniu mažesnis už antrajį skaičių &amp;lt;code&amp;gt;(x * y = x + x * (y - 1))&amp;lt;/code&amp;gt;. Taigi ir čia &amp;lt;code&amp;gt;3 * 2&amp;lt;/code&amp;gt; pirmiausiai paverčiamas į &amp;lt;code&amp;gt;3 + 3 * 1&amp;lt;/code&amp;gt;. Tada &amp;lt;code&amp;gt;3 * 1&amp;lt;/code&amp;gt; paverčiamas į &amp;lt;code&amp;gt;3 + 3 * 0&amp;lt;/code&amp;gt;. Tuomet mes žinome, kad bet kuris skaičius padaugintas iš nulio yra nulis, todėl &amp;lt;code&amp;gt;3 * 0&amp;lt;/code&amp;gt; yra 0. Tuomet galime apskaičiuoti, kad &amp;lt;code&amp;gt; 3 + 3 * 0&amp;lt;/code&amp;gt; yra &amp;lt;code&amp;gt;3 + 0&amp;lt;/code&amp;gt; arba kitaip tariant tiesiog &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt;. Tuomet mes žinome, kas yra &amp;lt;code&amp;gt;3 * 1&amp;lt;/code&amp;gt;, todėl galime apskaičiuoti, kad &amp;lt;code&amp;gt;3 + 3 * 1&amp;lt;/code&amp;gt; yra &amp;lt;code&amp;gt;3 + 3&amp;lt;/code&amp;gt; arba kitaip tariant &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Štai kaip viskas veikia:&lt;br /&gt;
&lt;br /&gt;
 mult(3, 2)&lt;br /&gt;
 3 + mult(3, 1)&lt;br /&gt;
 3 + 3 + mult(3, 0)&lt;br /&gt;
 3 + 3 + 0&lt;br /&gt;
 3 + 3&lt;br /&gt;
 6&lt;br /&gt;
&lt;br /&gt;
==== Rekursija ====&lt;br /&gt;
Programavimo konstrukcijos, išsprendžiančios problemą išsprendžiant mažesnę tos pačios problemos versiją, vadinamos „rekursyviomis“. Šio skyriaus pavyzdžiuose rekursija realizuojama apibrėžiant funkciją, kuri pati save iškviečia. Tai palengvina programavimo užduočių spendimų įgyvendinimą, nes kartais pakanka apsvarstyti tik vieną problemos žingsnį, o ne visą problemą iš karto. Be to tai leidžia išreikšti kai kurias matematines sąvokas paprastu, lengvai skaitomu kodu.&lt;br /&gt;
&lt;br /&gt;
Bet kokią problemą, kurią galime išspręsti naudojant rekursiją, gali būti išspręsta naudojant ciklus. Jie veikia greičiau, bet kartais ciklus sunku atlikti teisingai.&lt;br /&gt;
&lt;br /&gt;
Turbūt intuityviausias „rekursijos“ apibrėžimas yra toks:&lt;br /&gt;
; Rekursija&lt;br /&gt;
: Jei vis dar nesupranti, tai skaityk: REKURSIJA.&lt;br /&gt;
Pabandyk perskaityti faktinį pavyzdį, jei nesupratai daugybos pavyzdžio.&lt;br /&gt;
&lt;br /&gt;
=== Pavyzdžiai ===&lt;br /&gt;
'''faktorialas.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#apibrėžia funkciją, kuri apskaičiuoja koeficientą&lt;br /&gt;
&lt;br /&gt;
def faktorialas(n):&lt;br /&gt;
    if n == 0:&lt;br /&gt;
        return 1&lt;br /&gt;
    if n&amp;lt;0:&lt;br /&gt;
        return &amp;quot;Klaida, neigiami skaičiai neturi faktorialo reikšmių!!&amp;quot;&lt;br /&gt;
    return n * faktorialas(n - 1)&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;2! =&amp;quot;, faktorialas(2))&lt;br /&gt;
print(&amp;quot;3! =&amp;quot;, faktorialas(3))&lt;br /&gt;
print(&amp;quot;4! =&amp;quot;, faktorialas(4))&lt;br /&gt;
print(&amp;quot;5! =&amp;quot;, faktorialas(5))&lt;br /&gt;
print(&amp;quot;-3! =&amp;quot;, faktorialas(-3))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rezultatas:&lt;br /&gt;
 &lt;br /&gt;
 2! = 2&lt;br /&gt;
 3! = 6&lt;br /&gt;
 4! = 24&lt;br /&gt;
 5! = 120&lt;br /&gt;
 -3! = Klaida, neigiami skaičiai neturi faktorialo reikšmių!!&lt;br /&gt;
&lt;br /&gt;
'''atgalinis_kaičiavimas.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def atgalinis_kaičiavimas(n):&lt;br /&gt;
    print(n)&lt;br /&gt;
    if n &amp;gt; 0:&lt;br /&gt;
        return atgalinis_kaičiavimas(n-1)&lt;br /&gt;
&lt;br /&gt;
atgalinis_kaičiavimas(5)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rezultatas:&lt;br /&gt;
 5&lt;br /&gt;
 4&lt;br /&gt;
 3&lt;br /&gt;
 2&lt;br /&gt;
 1&lt;br /&gt;
 0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Dabar pabandyk žodį &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt;(lietuviškai jei) pakeisti žodžiu &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt;(lietuviškai kol). Dabar pavyko kompiuterį paversti skaičiuotuvu, kuris negali suskaičiuoti iki keturių. Iš esmės &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt;(kol) veikia kaip &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt;(jei) ir &amp;lt;code&amp;gt;repeat&amp;lt;/code&amp;gt;(pakartok) kartu sudėjus.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Defining Functions |next=Lists}}&lt;/div&gt;</summary>
		<author><name>Rokas</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Rekursin%C4%97s_funkcijos&amp;diff=3553</id>
		<title>Python Vadovėlis/Rekursinės funkcijos</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Rekursin%C4%97s_funkcijos&amp;diff=3553"/>
		<updated>2021-11-17T08:37:34Z</updated>

		<summary type="html">&lt;p&gt;Rokas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Vieniems šis skyrius gali pasirodyti naudingas, o kitiems - painus. Jeigu tau informacija pasirodys paini, tai nesuk galvos ir praleisk,  prie šio skyriaus galėsi grįžti šiek tiek vėliau. O dabar pabandom pasižiūrėti į mūsų parašytą programą:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def mult(a, b): #multiplication angliškai daugyba&lt;br /&gt;
    if b == 0:&lt;br /&gt;
        return 0&lt;br /&gt;
    rest= mult(a, b - 1) #rest angliškai likutis&lt;br /&gt;
    value= a + rest #value angliškai reikšmė&lt;br /&gt;
    return value&lt;br /&gt;
rezultatas = mult(3, 2)&lt;br /&gt;
print(&amp;quot;3 * 2 = &amp;quot;, result)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Iš esmės ši programa, tai teigiama sveikųjų skaičių daugybos funkcija (reik atkreipti dėmesį į tai, kad Python programavimo kalboje jau yra integruota funkcija dauginimui, čia mes patys parašėme lengvai suprantamą pavyzdį (jeigu kurtume tokią funkciją patys), kuris parodo kaip atrodo daugybos veiksmas. Šioje programoje gali pamatyti rekursijos naudojimą, tai yra iteracijos (kartojimo) forma, kai funkcija yra pakartotinai iškviečiama, kol bus įvykdyta sukurta išvesties sąlyga. Programa naudoja pakartotinius papildymus, kad gautų tą patį rezultatą kaip ir daugyba: pavyzdžiui 3 + 3 (sudėtis) duoda tą patį rezultatą kaip ir 3 * 2 (daugyba).&lt;br /&gt;
&lt;br /&gt;
; ''Klausimas:'' Ką pirmiausia daro programa?&lt;br /&gt;
: ''Atsakymas:'' Pirmiausia yra aprašyta funkcija daugink:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def mult(a, b):&lt;br /&gt;
    if b == 0:&lt;br /&gt;
        return 0&lt;br /&gt;
    rest = mult(a, b - 1)&lt;br /&gt;
    value = a + rest&lt;br /&gt;
    return value&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
: Tai sukuria funkciją, kuri paima du parametrus ir grąžina reikšmę, kai ji atitinka reikiamą rezultatą. Vėliau šią funkciją galima paleisti.&lt;br /&gt;
; Kas nutinka toliau?  &lt;br /&gt;
: Vykdoma kita eilutė einanti po funkcijos &amp;lt;code&amp;gt;result = mult(3, 2)&amp;lt;/code&amp;gt;&lt;br /&gt;
; Ką daro ši eilutė?&lt;br /&gt;
: Ši eilutė priskiria grąžinimo reikšmę &amp;lt;code&amp;gt;mult(3, 2)&amp;lt;/code&amp;gt; kintamajam rezultatas.&lt;br /&gt;
; Ką grąžina &amp;lt;code&amp;gt;mult(3, 2)&amp;lt;/code&amp;gt;?&lt;br /&gt;
: Norėdami tai išsiaiškinti, turime peržiūrėti funkciją &amp;lt;code&amp;gt; mult &amp;lt;/code&amp;gt;.&lt;br /&gt;
; Kas nutinka toliau?&lt;br /&gt;
: Kintamasis &amp;lt;code&amp;gt; a &amp;lt;/code&amp;gt; gauna jam priskirtą 3 reikšmę, o kintamasis &amp;lt;code&amp;gt; b &amp;lt;/code&amp;gt; - jam priskirtą 2 reikšmę.&lt;br /&gt;
; Toliau?&lt;br /&gt;
: Vykdoma eilutė &amp;lt;code&amp;gt;if b == 0: &amp;lt;/code&amp;gt;. Kadangi &amp;lt;code&amp;gt; b &amp;lt;/code&amp;gt; reikšmė yra 2, todėl eilutė &amp;lt;code&amp;gt; return 0 &amp;lt;/code&amp;gt; praleidžiama.&lt;br /&gt;
; Kas toliau?&lt;br /&gt;
: Vykdoma eilutė &amp;lt;code&amp;gt; rest = mult (a, b - 1) &amp;lt;/code&amp;gt;. Ši eilutė nustato vietinį kintamąjį &amp;lt;code&amp;gt; rest &amp;lt;/code&amp;gt; į &amp;lt;code&amp;gt; mult (a, b - 1) &amp;lt;/code&amp;gt; reikšmę. &amp;lt;code&amp;gt; a &amp;lt;/code&amp;gt; reikšmė yra 3, o &amp;lt;code&amp;gt; b &amp;lt;/code&amp;gt; - 2, todėl funkcijos iškvietčiama funkcija yra &amp;lt;code&amp;gt; mult (3,1) &amp;lt;/code&amp;gt;&lt;br /&gt;
; Taigi kokia yra &amp;lt;code&amp;gt; mult (3, 1) &amp;lt;/code&amp;gt; reikšmė?&lt;br /&gt;
: Turime paleisti funkciją &amp;lt;code&amp;gt; mult &amp;lt;/code&amp;gt; su parametrais, kurie yra 3 ir 1.&lt;br /&gt;
; Kas nutinka toliau?&lt;br /&gt;
: Vietiniai kintamieji vėl pasileidus kodui jau yra nustatyti, todėl &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; reikšmė būtų 3, o &amp;lt;code&amp;gt; b&amp;lt;/code&amp;gt; reikšmė -1. Kadangi jie yra vietiniai kintamieji, todėl jie neturi įtakos ankstesnėms &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt; reikšmėms.&lt;br /&gt;
; Kas tada?&lt;br /&gt;
: Kadangi &amp;lt;code&amp;gt; b &amp;lt;/code&amp;gt; turi reikšmę 1, if teiginys yra neigiamas, todėl kita eilutė tampa &amp;lt;code&amp;gt; rest = mult (a, b - 1) &amp;lt;/code&amp;gt;.&lt;br /&gt;
; Ką daro ši eilutė?&lt;br /&gt;
: Ši eilutė &amp;lt;code&amp;gt; mult (3, 0) &amp;lt;/code&amp;gt; reikšmę priskiria kitiems.&lt;br /&gt;
; Ką daro ši reikšmė?&lt;br /&gt;
: Norėdami tai išsiaiškinti, turime dar kartą paleisti funkciją. Šį kartą &amp;lt;code&amp;gt; a &amp;lt;/code&amp;gt; reikšmė yra 3, o &amp;lt;code&amp;gt; b &amp;lt;/code&amp;gt; - 0.&lt;br /&gt;
; Kas nutinka toliau?&lt;br /&gt;
: Pirmoji vykdytinos funkcijos eilutė yra &amp;lt;code&amp;gt;, if b == 0: &amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt; b &amp;lt;/code&amp;gt; reikšmė 0, todėl kita vykdoma eilutė yra &amp;lt;code&amp;gt; return 0 &amp;lt;/code&amp;gt;&lt;br /&gt;
; Ką daro ši eilutė&amp;lt;code&amp;gt;return 0&amp;lt;/code&amp;gt;?&lt;br /&gt;
: Ši eilutė grąžina funkcijos reikšmę 0.&lt;br /&gt;
; Ir?&lt;br /&gt;
: Taigi dabar mes žinome, kad &amp;lt;code&amp;gt; mult (3, 0) &amp;lt;/code&amp;gt; turi reikšmę 0. Dar žinome, ką daro eilutė &amp;lt;code&amp;gt; rest = mult (a, b - 1) &amp;lt;/code&amp;gt;, nes paleidžiame funkciją &amp;lt;code&amp;gt; mult &amp;lt;/code&amp;gt; su parametrais 3 ir 0. Baigiame vykdyti &amp;lt;code&amp;gt; mult (3, 0) &amp;lt;/code&amp;gt; ir dabar vėl pradedame vykdyti &amp;lt;code&amp;gt; mult (3, 1) &amp;lt;/code&amp;gt;. Kintamajam &amp;lt;code&amp;gt; rest &amp;lt;/code&amp;gt; priskiriama vertė 0.&lt;br /&gt;
; Kokia eilutė eina toliau?&lt;br /&gt;
: Toliau vykdoma eilutė &amp;lt;code&amp;gt; value = a + rest &amp;lt;/code&amp;gt;. Vykdydami šią funkciją, &amp;lt;code&amp;gt; a = 3 &amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt; rest = 0 &amp;lt;/code&amp;gt; todėldabar &amp;lt;code&amp;gt; value = 3 &amp;lt;/code&amp;gt;. &lt;br /&gt;
; Kas nutinka toliau?&lt;br /&gt;
: Vykdoma eilutė &amp;lt;code&amp;gt; return value &amp;lt;/code&amp;gt;. Grąžina 3 iš funkcijos. Tai taip pat atsiranda iš funkcijos &amp;lt;code&amp;gt; mult (3, 1) &amp;lt;/code&amp;gt; vykdymo. Iškvietus &amp;lt;code&amp;gt; return &amp;lt;/code&amp;gt;, grįžtame prie &amp;lt;code&amp;gt; mult (3, 2) &amp;lt;/code&amp;gt;.&lt;br /&gt;
; Kur yra &amp;lt;code&amp;gt; mult (3, 2) &amp;lt;/code&amp;gt;?&lt;br /&gt;
: Mes turėjome kintamuosius &amp;lt;code&amp;gt; a = 3 &amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt; b = 2 &amp;lt;/code&amp;gt; ir nagrinėjome eilutę &amp;lt;code&amp;gt; rest = mult (a, b - 1) &amp;lt;/code&amp;gt;.&lt;br /&gt;
; Kas nutinka dabar?&lt;br /&gt;
: Kintamajam &amp;lt;code&amp;gt; rest &amp;lt;/code&amp;gt; priskiriama reikšmė 3. Kita eilutė &amp;lt;code&amp;gt; value = a + rest &amp;lt;/code&amp;gt; nustato &amp;lt;code&amp;gt; value &amp;lt;/code&amp;gt; į &amp;lt;code&amp;gt; 3 + 3 &amp;lt;/code&amp;gt; arba 6.  &lt;br /&gt;
; Kas nutinka dabar?&lt;br /&gt;
: Pradeda veikti kita eilutė, kuri grąžina 6 iš funkcijos. Dabar grįžtame prie eilutės &amp;lt;code&amp;gt;result = mult(3, 2)&amp;lt;/code&amp;gt;, kuriai dabar gali priskirti reikšmę 6 kintamajam &amp;lt;code&amp;gt;result&amp;lt;/code&amp;gt;&lt;br /&gt;
; Kas nutinka toliau?  &lt;br /&gt;
: Paleidžiama kita eilutė po funkcijos &amp;lt;code&amp;gt; print (&amp;quot;3 * 2 =&amp;quot;, rezultatas) &amp;lt;/code&amp;gt;.&lt;br /&gt;
; Ką ji daro?&lt;br /&gt;
: Ji spausdina &amp;lt;code&amp;gt; 3 * 2 = &amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt; result &amp;lt;/code&amp;gt; reikšmę, kuri yra 6. Visa išspausdinta eilutė yra &amp;lt;code&amp;gt; 3 * 2 = 6 &amp;lt;/code&amp;gt;.&lt;br /&gt;
; Taigi, kas čia įvyko apskritai?  &lt;br /&gt;
: Iš esmės panaudojome du skirtingus faktus, kad apskaičiuotume dviejų skaičių kartotinį. Pirmas, kad bet koks skaičius padauginus iš nulio yra nulis &amp;lt;code&amp;gt;(x * 0 = 0)&amp;lt;/code&amp;gt;. Antras, kad skaičius padaugintas iš kito skaičiaus yra lygus pirmam skaičiui ir pirmas skaičius yra  vienu skaitmeniu mažesnis už antrajį skaičių &amp;lt;code&amp;gt;(x * y = x + x * (y - 1))&amp;lt;/code&amp;gt;. Taigi ir čia &amp;lt;code&amp;gt;3 * 2&amp;lt;/code&amp;gt; pirmiausiai paverčiamas į &amp;lt;code&amp;gt;3 + 3 * 1&amp;lt;/code&amp;gt;. Tada &amp;lt;code&amp;gt;3 * 1&amp;lt;/code&amp;gt; paverčiamas į &amp;lt;code&amp;gt;3 + 3 * 0&amp;lt;/code&amp;gt;. Tuomet mes žinome, kad bet kuris skaičius padaugintas iš nulio yra nulis, todėl &amp;lt;code&amp;gt;3 * 0&amp;lt;/code&amp;gt; yra 0. Tuomet galime apskaičiuoti, kad &amp;lt;code&amp;gt; 3 + 3 * 0&amp;lt;/code&amp;gt; yra &amp;lt;code&amp;gt;3 + 0&amp;lt;/code&amp;gt; arba kitaip tariant tiesiog &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt;. Tuomet mes žinome, kas yra &amp;lt;code&amp;gt;3 * 1&amp;lt;/code&amp;gt;, todėl galime apskaičiuoti, kad &amp;lt;code&amp;gt;3 + 3 * 1&amp;lt;/code&amp;gt; yra &amp;lt;code&amp;gt;3 + 3&amp;lt;/code&amp;gt; arba kitaip tariant &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Štai kaip viskas veikia:&lt;br /&gt;
&lt;br /&gt;
 mult(3, 2)&lt;br /&gt;
 3 + mult(3, 1)&lt;br /&gt;
 3 + 3 + mult(3, 0)&lt;br /&gt;
 3 + 3 + 0&lt;br /&gt;
 3 + 3&lt;br /&gt;
 6&lt;br /&gt;
&lt;br /&gt;
==== Rekursija ====&lt;br /&gt;
Programavimo konstrukcijos, išsprendžiančios problemą išsprendžiant mažesnę tos pačios problemos versiją, vadinamos „rekursyviomis“. Šio skyriaus pavyzdžiuose rekursija realizuojama apibrėžiant funkciją, kuri pati save iškviečia. Tai palengvina programavimo užduočių spendimų įgyvendinimą, nes kartais pakanka apsvarstyti tik vieną problemos žingsnį, o ne visą problemą iš karto. Be to tai leidžia išreikšti kai kurias matematines sąvokas paprastu, lengvai skaitomu kodu.&lt;br /&gt;
&lt;br /&gt;
Bet kokią problemą, kurią galime išspręsti naudojant rekursiją, gali būti išspręsta naudojant ciklus. Jie veikia greičiau, bet kartais ciklus sunku atlikti teisingai.&lt;br /&gt;
&lt;br /&gt;
Turbūt intuityviausias „rekursijos“ apibrėžimas yra toks:&lt;br /&gt;
; Rekursija&lt;br /&gt;
: Jei vis dar nesupranti, tai skaityk: REKURSIJA.&lt;br /&gt;
Pabandyk perskaityti faktinį pavyzdį, jei nesupratai daugybos pavyzdžio.&lt;br /&gt;
&lt;br /&gt;
=== Pavyzdžiai ===&lt;br /&gt;
'''faktorialas.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#apibrėžia funkciją, kuri apskaičiuoja koeficientą&lt;br /&gt;
&lt;br /&gt;
def faktorialas(n):&lt;br /&gt;
    if n == 0:&lt;br /&gt;
        return 1&lt;br /&gt;
    if n&amp;lt;0:&lt;br /&gt;
        return &amp;quot;Klaida, neigiami skaičiai neturi faktorialo reikšmių!!&amp;quot;&lt;br /&gt;
    return n * faktorialas(n - 1)&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;2! =&amp;quot;, faktorialas(2))&lt;br /&gt;
print(&amp;quot;3! =&amp;quot;, faktorialas(3))&lt;br /&gt;
print(&amp;quot;4! =&amp;quot;, faktorialas(4))&lt;br /&gt;
print(&amp;quot;5! =&amp;quot;, faktorialas(5))&lt;br /&gt;
print(&amp;quot;-3! =&amp;quot;, faktorialas(-3))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rezultatas:&lt;br /&gt;
 &lt;br /&gt;
 2! = 2&lt;br /&gt;
 3! = 6&lt;br /&gt;
 4! = 24&lt;br /&gt;
 5! = 120&lt;br /&gt;
 -3! = Klaida, neigiami skaičiai neturi faktorialo reikšmių!!&lt;br /&gt;
&lt;br /&gt;
'''atgalinis_kaičiavimas.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def atgalinis_kaičiavimas(n):&lt;br /&gt;
    print(n)&lt;br /&gt;
    if n &amp;gt; 0:&lt;br /&gt;
        return atgalinis_kaičiavimas(n-1)&lt;br /&gt;
&lt;br /&gt;
atgalinis_kaičiavimas(5)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rezultatas:&lt;br /&gt;
 5&lt;br /&gt;
 4&lt;br /&gt;
 3&lt;br /&gt;
 2&lt;br /&gt;
 1&lt;br /&gt;
 0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Dabar pabandyk žodį &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt;(lietuviškai jei) pakeisti žodžiu &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt;(lietuviškai kol). Dabar pavyko kompiuterį paversti skaičiuotuvu, kuris negali suskaičiuoti iki keturių. Iš esmės &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt;(kol) veikia kaip &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt;(jei) ir &amp;lt;code&amp;gt;repeat&amp;lt;/code&amp;gt;(pakartok) kartu sudėjus.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Defining Functions |next=Lists}}&lt;/div&gt;</summary>
		<author><name>Rokas</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Daugiau_apie_tekstines_eilutes&amp;diff=3552</id>
		<title>Python Vadovėlis/Daugiau apie tekstines eilutes</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Daugiau_apie_tekstines_eilutes&amp;diff=3552"/>
		<updated>2021-11-17T08:26:38Z</updated>

		<summary type="html">&lt;p&gt;Rokas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Šiame skyriuje pamatysi, kiek šaunių dalykų galime padaryti su tekstine reikšme:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def rėk(tekstinė_reikšmė):&lt;br /&gt;
    for raidei in tekstinė_reikšmė:&lt;br /&gt;
        print(&amp;quot;Duok man &amp;quot; + raidė)&lt;br /&gt;
        print(&amp;quot;'&amp;quot; + raidė + &amp;quot;'&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
rėk(&amp;quot;Ačiū&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
def vidurys(tekstas):&lt;br /&gt;
    print(&amp;quot;Raidė esanti viduryje yra:&amp;quot;, tekstas[len(tekstas) // 2])&lt;br /&gt;
&lt;br /&gt;
vidurys(&amp;quot;abcdefg&amp;quot;)&lt;br /&gt;
vidurys(&amp;quot;The Python Programming Language&amp;quot;)&lt;br /&gt;
vidurys(&amp;quot;Atlanta&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rezultatas:&lt;br /&gt;
&lt;br /&gt;
 Duok man A&lt;br /&gt;
 'A'&lt;br /&gt;
 Duok man č&lt;br /&gt;
 'č'&lt;br /&gt;
 Duok man i&lt;br /&gt;
 'i'&lt;br /&gt;
 Duok man ū&lt;br /&gt;
 'ū'&lt;br /&gt;
 Raidė esanti viduryje yra: d&lt;br /&gt;
 Raidė esanti viduryje yra: r&lt;br /&gt;
 Raidė esanti viduryje yra: a&lt;br /&gt;
&lt;br /&gt;
Šios dvi programos rodo, kad tekstinė reikšmė(strings) yra keliais aspektais panaši į sąrašus (list). Funkcija &amp;lt;code&amp;gt;rėk()&amp;lt;/code&amp;gt; rodo, kad ciklas &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; gali būti naudojamas su tekstine reikšme lygiai taip pat kaip ir su sąrašais. Funkcija &amp;lt;code&amp;gt;vidurys()&amp;lt;/code&amp;gt; rodo, kad tekstinėje reikšmėje galima naudotis Python programavimo kalboje jau esančia funkcija &amp;lt;code&amp;gt;len()&amp;lt;/code&amp;gt;, taip pat masyvų indeksavimu ir pjaustymu. Dauguma sąrašo (list) funkcijų veikia ir su tekstine reikšme.&lt;br /&gt;
&lt;br /&gt;
Kita šio skyriaus funkcija parodo tam tikras tekstinės reikšmės ypatybes:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def pavertimas_didžiosiomis_raidėmis(tekstas):&lt;br /&gt;
    ## Ši funkcija, tekstinę reikšmę užrašo didžiosiomis raidėmis&lt;br /&gt;
    didžiosios_raidės = &amp;quot;&amp;quot;&lt;br /&gt;
    for raidei in tekstas:&lt;br /&gt;
        if 'a' &amp;lt;= tekstas &amp;lt;= 'z':&lt;br /&gt;
            lokacija = ord(raidei) - ord('a')&lt;br /&gt;
            naujas_ascii = lokacija + ord('A')&lt;br /&gt;
            raidei= chr(naujas_ascii)&lt;br /&gt;
        didžiosios_raidės = pavertimas_didžiosiomis_raidėmis + raidei&lt;br /&gt;
    return didžiosios_raidės&lt;br /&gt;
&lt;br /&gt;
print(pavertimas_didžiosiomis_raidėmis(&amp;quot;Įrašytas tekstas&amp;quot;))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rezultatas:&lt;br /&gt;
&lt;br /&gt;
 ĮRAŠYTAS TEKSTAS&lt;br /&gt;
&lt;br /&gt;
Tai veikia, nes kompiuteris tekstinės reikšmės simbolius šifruoja skaičiais nuo 0 iki 1 114 111. Visos šios tekstinės reikšmės turi savo unikalias unikodo reikšmės. Pavyzdžiui, simboliui „A“ yra priskirtas skaičius 65, simbolis „B“ kompiuterio suprantamas kaip 66, o simbolis א yra 1488. Python programavimo kalba turi funkciją, vadinamą &amp;lt;code&amp;gt;ord()&amp;lt;/code&amp;gt; (trumpinys angliško žodžio ordinal, kuris reiškia iš eilės), kuri grąžina simbolį kaip skaičių. Taip pat Pyhton programavimo kalba turi ir atvirkščią funkcija, vadinama &amp;lt;code&amp;gt;chr()&amp;lt;/code&amp;gt;, kuri skaičių paverčia simboliu. Supratus, kaip veikia šios funkcijos aukščiau užrašyta programa turėtų atrodyti logiška.&lt;br /&gt;
&lt;br /&gt;
Programos pirmoji eilutė &amp;lt;code&amp;gt;if 'a' &amp;lt;= simbolis &amp;lt;= 'z':&amp;lt;/code&amp;gt; patikrina, ar raidė yra mažoji. Jeigu taip, tada naudojamos kitos programos eilutės:&lt;br /&gt;
Pirmiausia eilutė &amp;lt;code&amp;gt;lokacija= ord(simbolis) - ord('a')&amp;lt;/code&amp;gt; nurodo simbolio vietą: a = 0, b = 1, c = 2 ir t.t. &lt;br /&gt;
Tada nauja reikšmė randama su kodo eilute &amp;lt;code&amp;gt;naujas_ascii = lokacija + ord ('A')&amp;lt;/code&amp;gt;. &lt;br /&gt;
Tada ši reikšmė paverčiama atgal į simbolį, kuris dabar yra didžioji raidė. &lt;br /&gt;
&lt;br /&gt;
Žinoma, tai tik programos pavyzdys, daug paprasčiau tai padaryti gali pasinaudodamas šiuo &amp;lt;code&amp;gt;metodu=var.upper()&amp;lt;/code&amp;gt;, kuris veikia su visomis kalbomis.&lt;br /&gt;
&lt;br /&gt;
O dabar pabandykime pasižiūrėti į šį pavyzdį:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''# Skaičius į tekstinę reikšmę'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''2'''&lt;br /&gt;
 2&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''repr(2)'''&lt;br /&gt;
 '2'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''-123'''&lt;br /&gt;
 -123&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''repr(-123)'''&lt;br /&gt;
 '-123'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''# Tekstinė reikšmė į skaičių'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''&amp;quot;23&amp;quot;'''&lt;br /&gt;
 '23'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''int(&amp;quot;23&amp;quot;)'''&lt;br /&gt;
 23&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''&amp;quot;23&amp;quot; * 2'''&lt;br /&gt;
 '2323'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''int(&amp;quot;23&amp;quot;) * 2'''&lt;br /&gt;
 46&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''# Skaičius po kablelio į tekstinę reikšmę'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''1.23'''&lt;br /&gt;
 1.23&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''repr(1.23)'''&lt;br /&gt;
 '1.23'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''# Skaičius po kablelio į skaičių'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''1.23'''&lt;br /&gt;
 1.23&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''int(1.23)'''&lt;br /&gt;
 1&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''int(-1.23)'''&lt;br /&gt;
 -1&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''# Tekstinė reikšmė į skaičių po kablelio'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''float(&amp;quot;1.23&amp;quot;)'''&lt;br /&gt;
 1.23&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''&amp;quot;1.23&amp;quot;''' &lt;br /&gt;
 '1.23'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''float(&amp;quot;123&amp;quot;)'''&lt;br /&gt;
 123.0&lt;br /&gt;
&lt;br /&gt;
Jeigu dar nesupratai, tai funkcija &amp;lt;code&amp;gt;repr()&amp;lt;/code&amp;gt; (galima naudoti ir str()) konvertuoja skaičių į tekstinę reikšmę, o funkcija &amp;lt;code&amp;gt;int()&amp;lt;/code&amp;gt; konvertuoja tekstinę reikšmę į skaičių. Funkcija &amp;lt;code&amp;gt;float()&amp;lt;/code&amp;gt; konvertuoja tekstinę reikšmę į skaičių po kablelio. Grįžtant prie funkcijos &amp;lt;code&amp;gt;repr()&amp;lt;/code&amp;gt; - ji grąžina tekstinę įrašytos reikšmės versiją. Štai keli pavyzdžiai:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''repr(1)'''&lt;br /&gt;
 '1'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''repr(234.14)'''&lt;br /&gt;
 '234.14'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''repr([4, 42, 10])'''&lt;br /&gt;
 '[4, 42, 10]'&lt;br /&gt;
&lt;br /&gt;
Funkcija &amp;lt;code&amp;gt;int()&amp;lt;/code&amp;gt; konvertuoja tekstinę reikšmę (ar skaičių su reikšme po kablelio) į sveikąjį skaičių. Panaši funkcija &amp;lt;Code&amp;gt;float&amp;lt;/code&amp;gt; konvertuoja skaičių ar tekstinę reikšmę į skaičių su reikšme po kablelio. Taip pat Python programavimo kalba turi funkciją &amp;lt;code&amp;gt;eval()&amp;lt;/code&amp;gt;, kuri grąžina eilutės tipą. Pavyzdžiui:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''v = eval('123')'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''print(v, type(v))'''&lt;br /&gt;
 123 &amp;lt;type 'int'&amp;gt;&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''v = eval('645.123')'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''print(v, type(v))'''&lt;br /&gt;
 645.123 &amp;lt;type 'float'&amp;gt;&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''v = eval('[1, 2, 3]')'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''print(v, type(v))'''&lt;br /&gt;
 [1, 2, 3] &amp;lt;type 'list'&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jeigu pamatai funkciją &amp;lt;code&amp;gt;eval()&amp;lt;/code&amp;gt; tai pasitikrink, ar grąžinamas toks reikšmės tipas, kurio tikėjaisi.&lt;br /&gt;
&lt;br /&gt;
Taip pat naudingas ir dažnai paprastose užduotyse naudojamas metodas &amp;lt;code&amp;gt;split()&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''&amp;quot;Čia yra tik ždožių kratinys&amp;quot;.split()'''&lt;br /&gt;
 ['Čia', 'yra', 'tik', 'žodžių', 'kratinys']&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''tekstas= &amp;quot;Pirma partija, antra partija, trečia, ketvirta&amp;quot;'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''tekstas.split(&amp;quot;,&amp;quot;)'''&lt;br /&gt;
 ['Pirma partija', ' antra partija', ' trečia', ' ketvirta']&lt;br /&gt;
&lt;br /&gt;
Ar pastebėjai kaip &amp;lt;code&amp;gt;split()&amp;lt;/code&amp;gt; konvertuoja tekstinę reikšmę į tekstinių reikšmių sąrašą (angl. list)? Pagal numatytus nustatymus tekstinė reikšmė padalijama pagal nurodytus tarpus, šiuo atveju pagal nurodytą argumentą - kablelį.&lt;br /&gt;
Taip pat galima pridėti ir kitą argumentą, kuris nurodo &amp;lt;code&amp;gt;split()&amp;lt;/code&amp;gt; funkcijai, kurioje sąrašo vietoje reikia atskirti tekstą:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''sąrašas= tekstas.split(&amp;quot;,&amp;quot;)'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''len(sąrašas)'''&lt;br /&gt;
 4&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''sąrašas[-1]'''&lt;br /&gt;
 ' ketvirta'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''list = tekstas.split(&amp;quot;,&amp;quot;, 2)'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''len(list)'''&lt;br /&gt;
 3&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''sąrašas[-1]'''&lt;br /&gt;
 ' trečia, ketvirta'&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- TODO add more on strings --&amp;gt;&lt;br /&gt;
=== Tekstinės (ir sąrašo) reikšmės pjaustymas (Slicing strings(and lists) ===&lt;br /&gt;
&lt;br /&gt;
Tekstinę reikšmę galima pjaustyti/skaidyti į skirtingas mažesnes reikšmes. Tą jau matei ankstesniame pavyzdyje, kai laužtiniuose skliaustuose &amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; buvo nurodyta reikiama teksto vieta. Pjaustymo operatorius veikia taip: &amp;lt;code&amp;gt;tekstas[pradžios_indeksas:pabaigos_indeksas]&amp;lt;/code&amp;gt; (retais atvejais galime pridėti dar ir trečią argumentą, kaip apačioje esančiame pavyzdyje)&lt;br /&gt;
&lt;br /&gt;
Kad nesusipainiotum įrašydamas indekso skaičius, įsivaizduok, kad žirklėmis karpai tekstą, o programai nurodai, kurioje vietoje kirpti. Štai vienas pavyzdys, kaip tai viekia - geltonai pažymėtos kirpimo vietos, o raudonai ir mėlynai indekso numeris&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
{| style=&amp;quot;text-align:center&amp;quot; cellspacing=&amp;quot;0px&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width:2ex;color:red&amp;quot; |0&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width:2ex;color:red&amp;quot; |1&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width:2ex;color:red&amp;quot; |2&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; | ...&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width:2ex;color:blue&amp;quot; | -2&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width:2ex;color:blue&amp;quot; | -1&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&amp;amp;darr;&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&amp;amp;darr;&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&amp;amp;darr;&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&amp;amp;darr;&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&amp;amp;darr;&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&amp;amp;darr;&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&amp;amp;darr;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| tekstas = &lt;br /&gt;
|&amp;quot;&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
!S &lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
!T&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
!R&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
!I&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
!N&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
!G&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
|&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&amp;amp;uarr;&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&amp;amp;uarr;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[:&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|:]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Įsidėmėk, kad raudonai pažymėti indeksai skaičiuojami nuo pradžios, o mėlyni atvirkščiai nuo kito galo t.y. teksto pabaigos. Taip pat ar pastebėjai, kad skaičiuojant nuo galo nėra -0 reikšmės? Taip yra todėl, kad 0 visada priskiriamas tik reikšmės pradžiai:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|tekstas[1:4] || style=&amp;quot;width:3em;text-align:center&amp;quot; | &amp;amp;rarr; || &amp;quot;TRI&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|tekstas[:5] || style=&amp;quot;width:3em;text-align:center&amp;quot; | &amp;amp;rarr; || &amp;quot;STRIN&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|tekstas[:-1] || style=&amp;quot;width:3em;text-align:center&amp;quot; | &amp;amp;rarr; || &amp;quot;STRIN&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|tekstas[-4:] || style=&amp;quot;width:3em;text-align:center&amp;quot; | &amp;amp;rarr; || &amp;quot;RING&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|tekstas[2] || style=&amp;quot;width:3em;text-align:center&amp;quot; | &amp;amp;rarr; || &amp;quot;R&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|tekstas[:] || style=&amp;quot;width:3em;text-align:center&amp;quot; | &amp;amp;rarr; || &amp;quot;STRING&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|tekstas[::-1] || style=&amp;quot;width:3em;text-align:center&amp;quot; | &amp;amp;rarr; || &amp;quot;GNIRTS&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;tekstas[1:4]&amp;lt;/tt&amp;gt; duoda visas &amp;lt;tt&amp;gt;tekstas&amp;lt;/tt&amp;gt; reikšmes tarp 1 ir 4, &amp;quot;&amp;lt;tt&amp;gt;TRI&amp;lt;/tt&amp;gt;&amp;quot;. Jei praleisi vieną iš argumentų [pradžios_indeksas:pabaigos indeksas], automatiškai gausi tekstinę reikšmę nuo pradžios ar pabaigos: &amp;lt;tt&amp;gt;tekstas[:5]&amp;lt;/tt&amp;gt; atspausdina&amp;quot;&amp;lt;tt&amp;gt;STRIN&amp;lt;/tt&amp;gt;&amp;quot;. Taip pat, tiek su &amp;lt;tt&amp;gt;pradžios_indeksas&amp;lt;/tt&amp;gt;, tiek su &amp;lt;tt&amp;gt;pabaigos_indeksas&amp;lt;/tt&amp;gt; galime naudoti raudonai ir mėlynai pavaizduotą skaičiavimo schemą - t.y. galime skaičuoti nuo pradžios, arba nuo pabaigos: &amp;lt;tt&amp;gt;tekstas[:-1]&amp;lt;/tt&amp;gt; duoda tą patį rezultatą kaip &amp;lt;tt&amp;gt;tekstas[:5]&amp;lt;/tt&amp;gt;, todėl, kad indekas -1 šiame žodyje yra toje pačioje vietoje kaip indeksas 5. Jeigu nenaudojame argumento kartu su dvitaškiu, tai skaičius traktuojamas kitaip, pavyzdžiui: &amp;lt;tt&amp;gt;tekstas[2]&amp;lt;/tt&amp;gt; duoda vieną raidę, kuri yra nurodytoje vietoje, šiuo atveju &amp;quot;&amp;lt;tt&amp;gt;R&amp;lt;/tt&amp;gt;&amp;quot;. Speciali pjaustymo operacija &amp;lt;tt&amp;gt;tekstas[:]&amp;lt;/tt&amp;gt; reiškia nuo pradžios iki pabaigos ir duodą visos tekstinės reikšmės ar sąrašo (list) kopiją. &lt;br /&gt;
&lt;br /&gt;
Na ir galiausiai, pjaustymo operacija gali turėti ir trečią argumentą, kuris suprantamas, kaip „žingsnio dydis“: &amp;lt;tt&amp;gt;tekstas[::-1]&amp;lt;/tt&amp;gt; yra &amp;lt;tt&amp;gt;tekstas&amp;lt;/tt&amp;gt; nuo pradžios iki pabaigos, kai nurodytas žingsnio dydis yra -1. Tai reiškia - kiekviena raidė, tik atvirkštine eilės tvarka. &amp;quot;&amp;lt;tt&amp;gt;STRING&amp;lt;/tt&amp;gt;&amp;quot; atvirkščiai yra &amp;quot;&amp;lt;tt&amp;gt;GNIRTS&amp;lt;/tt&amp;gt;&amp;quot; (jeigu nesupratai, tai pabandyk prasitestuoti įrašydamas kaip žingsnio ilgį skaičių 2).&lt;br /&gt;
&lt;br /&gt;
Visos šios pjaustymo operacijos veikia ir su sąrašais (lists). Šiuo atveju tekstinę reikšmę galime suprasti, kaip sąrašą, kai visi sąrašo elementai yra atskiros raidės. Iš šio skyriaus atsimink pagrindinį principą - į viską žiūrėk taip lyg karpytum, tai padės nesusipainioti įrašant indeksus.&lt;br /&gt;
&lt;br /&gt;
=== Pavyzdžiai ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Ši programa reikalauja dešimtainių skaičių supratimo.&lt;br /&gt;
def į_tekstą(į_skaičių):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Konvertuoja skaičių į teksta&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    tekstas = &amp;quot;&amp;quot;&lt;br /&gt;
    prefiksas = &amp;quot;&amp;quot;&lt;br /&gt;
    if į_skaičių &amp;lt; 0:&lt;br /&gt;
        prefiksas = &amp;quot;-&amp;quot;&lt;br /&gt;
        į_skaičių = -į_skaičių&lt;br /&gt;
    while į_skaičių // 10 != 0:&lt;br /&gt;
        out_str = str(į_skaičių % 10) + tekstas&lt;br /&gt;
        į_skaičių= į_skaičių// 10&lt;br /&gt;
    tekstas = str(į_skaičių % 10) + tekstas&lt;br /&gt;
    return prefiksas + tekstas&lt;br /&gt;
&lt;br /&gt;
def į_skaičių(į_tekstą):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Konvertuoja tekstą į skaičių&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    skaičius = 0&lt;br /&gt;
    if į_tekstą[0] == &amp;quot;-&amp;quot;:&lt;br /&gt;
        daugiklis = -1&lt;br /&gt;
        į_tekstą = į_tekstą[1:]&lt;br /&gt;
    else:&lt;br /&gt;
        daugiklis = 1&lt;br /&gt;
    for c in į_tekstą:&lt;br /&gt;
        skaičius = skaičius* 10 + int(c)&lt;br /&gt;
    return skaičius * daugiklis&lt;br /&gt;
&lt;br /&gt;
print(į_tekstą(2))&lt;br /&gt;
print(į_tekstą(23445))&lt;br /&gt;
print(į_tekstą(-23445))&lt;br /&gt;
print(į_skaičių(&amp;quot;14234&amp;quot;))&lt;br /&gt;
print(į_skaičių(&amp;quot;12345&amp;quot;))&lt;br /&gt;
print(į_skaičių(&amp;quot;-3512&amp;quot;))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rezultatas:&lt;br /&gt;
&lt;br /&gt;
 2&lt;br /&gt;
 23445&lt;br /&gt;
 -23445&lt;br /&gt;
 14234&lt;br /&gt;
 12345&lt;br /&gt;
 -3512&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=More on Lists|next=File IO}}&lt;br /&gt;
{{BookCat}}&lt;/div&gt;</summary>
		<author><name>Rokas</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Daugiau_apie_tekstines_eilutes&amp;diff=3551</id>
		<title>Python Vadovėlis/Daugiau apie tekstines eilutes</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Daugiau_apie_tekstines_eilutes&amp;diff=3551"/>
		<updated>2021-11-17T08:23:52Z</updated>

		<summary type="html">&lt;p&gt;Rokas: /* Tekstinės (ir sąrašo) reikšmės pjaustymas (Slicing strings(and lists) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Šiame skyriuje pamatysi, kiek šaunių dalykų galime padaryti su tekstine reikšme:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def rėk(tekstinė_reikšmė):&lt;br /&gt;
    for raidei in tekstinė_reikšmė:&lt;br /&gt;
        print(&amp;quot;Duok man &amp;quot; + raidė)&lt;br /&gt;
        print(&amp;quot;'&amp;quot; + raidė + &amp;quot;'&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
rėk(&amp;quot;Ačiū&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
def vidurys(tekstas):&lt;br /&gt;
    print(&amp;quot;Raidė esanti viduryje yra:&amp;quot;, tekstas[len(tekstas) // 2])&lt;br /&gt;
&lt;br /&gt;
vidurys(&amp;quot;abcdefg&amp;quot;)&lt;br /&gt;
vidurys(&amp;quot;The Python Programming Language&amp;quot;)&lt;br /&gt;
vidurys(&amp;quot;Atlanta&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rezultatas:&lt;br /&gt;
&lt;br /&gt;
 Duok man A&lt;br /&gt;
 'A'&lt;br /&gt;
 Duok man č&lt;br /&gt;
 'č'&lt;br /&gt;
 Duok man i&lt;br /&gt;
 'i'&lt;br /&gt;
 Duok man ū&lt;br /&gt;
 'ū'&lt;br /&gt;
 Raidė esanti viduryje yra: d&lt;br /&gt;
 Raidė esanti viduryje yra: r&lt;br /&gt;
 Raidė esanti viduryje yra: a&lt;br /&gt;
&lt;br /&gt;
Šios dvi programos rodo, kad tekstinė reikšmė(strings) yra keliais aspektais panaši į sąrašus (list). Funkcija &amp;lt;code&amp;gt;rėk()&amp;lt;/code&amp;gt; rodo, kad ciklas &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; gali būti naudojamas su tekstine reikšme lygiai taip pat kaip ir su sąrašais. Funkcija &amp;lt;code&amp;gt;vidurys()&amp;lt;/code&amp;gt; rodo, kad tekstinėje reikšmėje galima naudotis Python programavimo kalboje jau esančia funkcija &amp;lt;code&amp;gt;len()&amp;lt;/code&amp;gt;, taip pat masyvų indeksavimu ir pjaustymu. Dauguma sąrašo (list) funkcijų veikia ir su tekstine reikšme.&lt;br /&gt;
&lt;br /&gt;
Kita šio skyriaus funkcija parodo tam tikras tekstinės reikšmės ypatybes:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def pavertimas_didžiosiomis_raidėmis(tekstas):&lt;br /&gt;
    ## Ši funkcija, tekstinę reikšmę užrašo didžiosiomis raidėmis&lt;br /&gt;
    didžiosios_raidės = &amp;quot;&amp;quot;&lt;br /&gt;
    for raidei in tekstas:&lt;br /&gt;
        if 'a' &amp;lt;= tekstas &amp;lt;= 'z':&lt;br /&gt;
            lokacija = ord(raidei) - ord('a')&lt;br /&gt;
            naujas_ascii = lokacija + ord('A')&lt;br /&gt;
            raidei= chr(naujas_ascii)&lt;br /&gt;
        didžiosios_raidės = pavertimas_didžiosiomis_raidėmis + raidei&lt;br /&gt;
    return didžiosios_raidės&lt;br /&gt;
&lt;br /&gt;
print(pavertimas_didžiosiomis_raidėmis(&amp;quot;Įrašytas tekstas&amp;quot;))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rezultatas:&lt;br /&gt;
&lt;br /&gt;
 ĮRAŠYTAS TEKSTAS&lt;br /&gt;
&lt;br /&gt;
Tai veikia, nes kompiuteris tekstinės reikšmės simbolius šifruoja skaičiais nuo 0 iki 1 114 111. Visos šios tekstinės reikšmės turi savo unikalias unikodo reikšmės. Pavyzdžiui, simboliui „A“ yra priskirtas skaičius 65, simbolis „B“ kompiuterio suprantamas kaip 66, o simbolis א yra 1488. Python programavimo kalba turi funkciją, vadinamą &amp;lt;code&amp;gt;ord()&amp;lt;/code&amp;gt; (trumpinys angliško žodžio ordinal, kuris reiškia iš eilės), kuri grąžina simbolį kaip skaičių. Taip pat Pyhton programavimo kalba turi ir atvirkščią funkcija, vadinama &amp;lt;code&amp;gt;chr()&amp;lt;/code&amp;gt;, kuri skaičių paverčia simboliu. Supratus, kaip veikia šios funkcijos aukščiau užrašyta programa turėtų atrodyti logiška.&lt;br /&gt;
&lt;br /&gt;
Programos pirmoji eilutė &amp;lt;code&amp;gt;if 'a' &amp;lt;= simbolis &amp;lt;= 'z':&amp;lt;/code&amp;gt; patikrina, ar raidė yra mažoji. Jeigu taip, tada naudojamos kitos programos eilutės:&lt;br /&gt;
Pirmiausia eilutė &amp;lt;code&amp;gt;lokacija= ord(simbolis) - ord('a')&amp;lt;/code&amp;gt; nurodo simbolio vietą: a = 0, b = 1, c = 2 ir t.t. &lt;br /&gt;
Tada nauja reikšmė randama su kodo eilute &amp;lt;code&amp;gt;naujas_ascii = lokacija + ord ('A')&amp;lt;/code&amp;gt;. &lt;br /&gt;
Tada ši reikšmė paverčiama atgal į simbolį, kuris dabar yra didžioji raidė. &lt;br /&gt;
&lt;br /&gt;
Žinoma, tai tik programos pavyzdys, daug paprasčiau tai padaryti gali pasinaudodamas šiuo &amp;lt;code&amp;gt;metodu=var.upper()&amp;lt;/code&amp;gt;, kuris veikia su visomis kalbomis.&lt;br /&gt;
&lt;br /&gt;
O dabar pabandykime pasižiūrėti į šį pavyzdį:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''# Skaičius į tekstinę reikšmę'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''2'''&lt;br /&gt;
 2&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''repr(2)'''&lt;br /&gt;
 '2'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''-123'''&lt;br /&gt;
 -123&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''repr(-123)'''&lt;br /&gt;
 '-123'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''# Tekstinė reikšmė į skaičių'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''&amp;quot;23&amp;quot;'''&lt;br /&gt;
 '23'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''int(&amp;quot;23&amp;quot;)'''&lt;br /&gt;
 23&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''&amp;quot;23&amp;quot; * 2'''&lt;br /&gt;
 '2323'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''int(&amp;quot;23&amp;quot;) * 2'''&lt;br /&gt;
 46&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''# Skaičius po kablelio į tekstinę reikšmę'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''1.23'''&lt;br /&gt;
 1.23&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''repr(1.23)'''&lt;br /&gt;
 '1.23'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''# Skaičius po kablelio į skaičių'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''1.23'''&lt;br /&gt;
 1.23&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''int(1.23)'''&lt;br /&gt;
 1&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''int(-1.23)'''&lt;br /&gt;
 -1&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''# Tekstinė reikšmė į skaičių po kablelio'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''float(&amp;quot;1.23&amp;quot;)'''&lt;br /&gt;
 1.23&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''&amp;quot;1.23&amp;quot;''' &lt;br /&gt;
 '1.23'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''float(&amp;quot;123&amp;quot;)'''&lt;br /&gt;
 123.0&lt;br /&gt;
&lt;br /&gt;
Jeigu dar nesupratai, tai funkcija &amp;lt;code&amp;gt;repr()&amp;lt;/code&amp;gt; (galima naudoti ir str()) konvertuoja skaičių į tekstinę reikšmę, o funkcija &amp;lt;code&amp;gt;int()&amp;lt;/code&amp;gt; konvertuoja tekstinę reikšmę į skaičių. Funkcija &amp;lt;code&amp;gt;float()&amp;lt;/code&amp;gt; konvertuoja tekstinę reikšmę į skaičių po kablelio. Grįžtant prie funkcijos &amp;lt;code&amp;gt;repr()&amp;lt;/code&amp;gt; - ji grąžina tekstinę įrašytos reikšmės versiją. Štai keli pavyzdžiai:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''repr(1)'''&lt;br /&gt;
 '1'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''repr(234.14)'''&lt;br /&gt;
 '234.14'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''repr([4, 42, 10])'''&lt;br /&gt;
 '[4, 42, 10]'&lt;br /&gt;
&lt;br /&gt;
Funkcija &amp;lt;code&amp;gt;int()&amp;lt;/code&amp;gt; konvertuoja tekstinę reikšmę (ar skaičių su reikšme po kablelio) į sveikąjį skaičių. Panaši funkcija &amp;lt;Code&amp;gt;float&amp;lt;/code&amp;gt; konvertuoja skaičių ar tekstinę reikšmę į skaičių su reikšme po kablelio. Taip pat Python programavimo kalba turi funkciją &amp;lt;code&amp;gt;eval()&amp;lt;/code&amp;gt;, kuri grąžina eilutės tipą. Pavyzdžiui:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''v = eval('123')'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''print(v, type(v))'''&lt;br /&gt;
 123 &amp;lt;type 'int'&amp;gt;&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''v = eval('645.123')'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''print(v, type(v))'''&lt;br /&gt;
 645.123 &amp;lt;type 'float'&amp;gt;&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''v = eval('[1, 2, 3]')'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''print(v, type(v))'''&lt;br /&gt;
 [1, 2, 3] &amp;lt;type 'list'&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jeigu pamatai funkciją &amp;lt;code&amp;gt;eval()&amp;lt;/code&amp;gt; tai pasitikrink, ar grąžinamas toks reikšmės tipas, kurio tikėjaisi.&lt;br /&gt;
&lt;br /&gt;
Taip pat naudingas ir dažnai paprastose užduotyse naudojamas metodas &amp;lt;code&amp;gt;split()&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''&amp;quot;Čia yra tik ždožių kratinys&amp;quot;.split()'''&lt;br /&gt;
 ['Čia', 'yra', 'tik', 'žodžių', 'kratinys']&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''tekstas= &amp;quot;Pirma partija, antra partija, trečia, ketvirta&amp;quot;'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''tekstas.split(&amp;quot;,&amp;quot;)'''&lt;br /&gt;
 ['Pirma partija', ' antra partija', ' trečia', ' ketvirta']&lt;br /&gt;
&lt;br /&gt;
Ar pastebėjai kaip &amp;lt;code&amp;gt;split()&amp;lt;/code&amp;gt; konvertuoja tekstinę reikšmę į tekstinių reikšmių sąrašą (angl. list)? Pagal numatytus nustatymus tekstinė reikšmė padalijama pagal nurodytus tarpus, šiuo atveju pagal nurodytą argumentą - kablelį.&lt;br /&gt;
Taip pat galima pridėti ir kitą argumentą, kuris nurodo &amp;lt;code&amp;gt;split()&amp;lt;/code&amp;gt; funkcijai, kurioje sąrašo vietoje reikia atskirti tekstą:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''sąrašas= tekstas.split(&amp;quot;,&amp;quot;)'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''len(sąrašas)'''&lt;br /&gt;
 4&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''sąrašas[-1]'''&lt;br /&gt;
 ' ketvirta'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''list = tekstas.split(&amp;quot;,&amp;quot;, 2)'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''len(list)'''&lt;br /&gt;
 3&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''sąrašas[-1]'''&lt;br /&gt;
 ' trečia, ketvirta'&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- TODO add more on strings --&amp;gt;&lt;br /&gt;
=== Tekstinės (ir sąrašo) reikšmės pjaustymas (Slicing strings(and lists) ===&lt;br /&gt;
&lt;br /&gt;
Tekstinę reikšmę galima pjaustyti/skaidyti į skirtingas mažesnes reikšmes. Tą jau matei ankstesniame pavyzdyje, kai laužtiniuose skliaustuose &amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; buvo nurodyta reikiama teksto vieta. Pjaustymo operatorius veikia taip: &amp;lt;code&amp;gt;tekstas[pradžios_indeksas:pabaigos_indeksas]&amp;lt;/code&amp;gt; (retais atvejais galime pridėti dar ir trečią argumentą, kaip apačioje esančiame pavyzdyje)&lt;br /&gt;
&lt;br /&gt;
Kad nesusipainiotum įrašydamas indekso skaičius, įsivaizduok, kad žirklėmis karpai tekstą, o programai nurodai, kurioje vietoje kirpti. Štai vienas pavyzdys, kaip tai viekia - geltonai pažymėtos kirpimo vietos, o raudonai ir mėlynai indekso numeris&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
{| style=&amp;quot;text-align:center&amp;quot; cellspacing=&amp;quot;0px&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width:2ex;color:red&amp;quot; |0&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width:2ex;color:red&amp;quot; |1&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width:2ex;color:red&amp;quot; |2&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; | ...&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width:2ex;color:blue&amp;quot; | -2&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width:2ex;color:blue&amp;quot; | -1&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&amp;amp;darr;&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&amp;amp;darr;&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&amp;amp;darr;&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&amp;amp;darr;&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&amp;amp;darr;&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&amp;amp;darr;&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&amp;amp;darr;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| tekstas = &lt;br /&gt;
|&amp;quot;&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
!S &lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
!T&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
!R&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
!I&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
!N&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
!G&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
|&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&amp;amp;uarr;&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&amp;amp;uarr;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[:&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|:]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Įsidėmėk, kad raudonai pažymėti indeksai skaičiuojami nuo pradžios, o mėlyni atvirkščiai nuo kito galo t.y. teksto pabaigos. Taip pat ar pastebėjai, kad skaičiuojant nuo galo nėra -0 reikšmės? Taip yra todėl, kad 0 visada priskiriamas tik reikšmės pradžiai:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|tekstas[1:4] || style=&amp;quot;width:3em;text-align:center&amp;quot; | &amp;amp;rarr; || &amp;quot;TRI&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|tekstas[:5] || style=&amp;quot;width:3em;text-align:center&amp;quot; | &amp;amp;rarr; || &amp;quot;STRIN&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|tekstas[:-1] || style=&amp;quot;width:3em;text-align:center&amp;quot; | &amp;amp;rarr; || &amp;quot;STRIN&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|tekstas[-4:] || style=&amp;quot;width:3em;text-align:center&amp;quot; | &amp;amp;rarr; || &amp;quot;RING&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|tekstas[2] || style=&amp;quot;width:3em;text-align:center&amp;quot; | &amp;amp;rarr; || &amp;quot;R&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|tekstas[:] || style=&amp;quot;width:3em;text-align:center&amp;quot; | &amp;amp;rarr; || &amp;quot;STRING&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|tekstas[::-1] || style=&amp;quot;width:3em;text-align:center&amp;quot; | &amp;amp;rarr; || &amp;quot;GNIRTS&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;tekstas[1:4]&amp;lt;/tt&amp;gt; duoda visas &amp;lt;tt&amp;gt;tekstas&amp;lt;/tt&amp;gt; reikšmes tarp 1 ir 4, &amp;quot;&amp;lt;tt&amp;gt;TRI&amp;lt;/tt&amp;gt;&amp;quot;. Jei praleisi vieną iš argumentų [pradžios_indeksas:pabaigos indeksas], automatiškai gausi tekstinę reikšmę nuo pradžios ar pabaigos: &amp;lt;tt&amp;gt;tekstas[:5]&amp;lt;/tt&amp;gt; atspausdina&amp;quot;&amp;lt;tt&amp;gt;STRIN&amp;lt;/tt&amp;gt;&amp;quot;. Taip pat tiek &amp;lt;tt&amp;gt;pradžios_indeksas&amp;lt;/tt&amp;gt; tiek &amp;lt;tt&amp;gt;pabaigos_indeksas&amp;lt;/tt&amp;gt; galime naudoti raudonai ir mėlynai pavaizduotą skaičiavimo schemą - t.y. galime skaičuoti tiek nuo pradžios tiek nuo pabaigos: &amp;lt;tt&amp;gt;tekstas[:-1]&amp;lt;/tt&amp;gt; duoda tą patį rezultatą kaip &amp;lt;tt&amp;gt;tekstas[:5]&amp;lt;/tt&amp;gt;, todėl, kad indekas -1 šiame žodyje yra toje pačioje vietoje kaip indeksas 5. Jeigu nenaudojame argumento kartu su dvitaškiu, tai skaičius traktuojamas kitaip, pavyzdžiui: &amp;lt;tt&amp;gt;tekstas[2]&amp;lt;/tt&amp;gt; duoda vieną raidę, kuri yra nurodytoje vietoje, šiuo atveju &amp;quot;&amp;lt;tt&amp;gt;R&amp;lt;/tt&amp;gt;&amp;quot;. Speciali pjaustymo operacija &amp;lt;tt&amp;gt;tekstas[:]&amp;lt;/tt&amp;gt;  reiškia nuo pradžios iki pabaigos ir duodą visos tekstinės reikšmės ar sąrašo (list) kopiją. &lt;br /&gt;
&lt;br /&gt;
Na ir galiausiai, pjaustymo operacija gali turėti ir trečią argumentą, kuris suprantamas, kaip „žingsnio dydis“: &amp;lt;tt&amp;gt;tekstas[::-1]&amp;lt;/tt&amp;gt; yra &amp;lt;tt&amp;gt;tekstas&amp;lt;/tt&amp;gt; nuo pradžios iki pabaigos, kai nurodytas žingsnio dydis yra -1. Tai reiškia - kiekviena raidė, tik atvirkštine eilės tvarka. &amp;quot;&amp;lt;tt&amp;gt;STRING&amp;lt;/tt&amp;gt;&amp;quot; atvirkščiai yra &amp;quot;&amp;lt;tt&amp;gt;GNIRTS&amp;lt;/tt&amp;gt;&amp;quot; (jeigu nesupratai, tai pabandyk prasitestuoti įrašydamas kaip žingsnio ilgį skaičių 2).&lt;br /&gt;
&lt;br /&gt;
Visos šios pjaustymo operacijos veikia ir su sąrašais (lists). Šiuo atveju tekstinę reikšmę galime suprasti, kaip sąrašą, kai visi sąrašo elementai yra atskiros raidės. Iš šio skyriaus atsimink pagrindinį principą - į viską žiūrėk taip lyg karpytum, tai padės nesusipainioti įrašant indeksus.&lt;br /&gt;
&lt;br /&gt;
=== Pavyzdžiai ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Ši programa reikalauja dešimtainių skaičių supratimo.&lt;br /&gt;
def į_tekstą(į_skaičių):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Konvertuoja skaičių į teksta&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    tekstas = &amp;quot;&amp;quot;&lt;br /&gt;
    prefiksas = &amp;quot;&amp;quot;&lt;br /&gt;
    if į_skaičių &amp;lt; 0:&lt;br /&gt;
        prefiksas = &amp;quot;-&amp;quot;&lt;br /&gt;
        į_skaičių = -į_skaičių&lt;br /&gt;
    while į_skaičių // 10 != 0:&lt;br /&gt;
        out_str = str(į_skaičių % 10) + tekstas&lt;br /&gt;
        į_skaičių= į_skaičių// 10&lt;br /&gt;
    tekstas = str(į_skaičių % 10) + tekstas&lt;br /&gt;
    return prefiksas + tekstas&lt;br /&gt;
&lt;br /&gt;
def į_skaičių(į_tekstą):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Konvertuoja tekstą į skaičių&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    skaičius = 0&lt;br /&gt;
    if į_tekstą[0] == &amp;quot;-&amp;quot;:&lt;br /&gt;
        daugiklis = -1&lt;br /&gt;
        į_tekstą = į_tekstą[1:]&lt;br /&gt;
    else:&lt;br /&gt;
        daugiklis = 1&lt;br /&gt;
    for c in į_tekstą:&lt;br /&gt;
        skaičius = skaičius* 10 + int(c)&lt;br /&gt;
    return skaičius * daugiklis&lt;br /&gt;
&lt;br /&gt;
print(į_tekstą(2))&lt;br /&gt;
print(į_tekstą(23445))&lt;br /&gt;
print(į_tekstą(-23445))&lt;br /&gt;
print(į_skaičių(&amp;quot;14234&amp;quot;))&lt;br /&gt;
print(į_skaičių(&amp;quot;12345&amp;quot;))&lt;br /&gt;
print(į_skaičių(&amp;quot;-3512&amp;quot;))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rezultatas:&lt;br /&gt;
&lt;br /&gt;
 2&lt;br /&gt;
 23445&lt;br /&gt;
 -23445&lt;br /&gt;
 14234&lt;br /&gt;
 12345&lt;br /&gt;
 -3512&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=More on Lists|next=File IO}}&lt;br /&gt;
{{BookCat}}&lt;/div&gt;</summary>
		<author><name>Rokas</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Daugiau_apie_tekstines_eilutes&amp;diff=3550</id>
		<title>Python Vadovėlis/Daugiau apie tekstines eilutes</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Daugiau_apie_tekstines_eilutes&amp;diff=3550"/>
		<updated>2021-11-17T08:11:07Z</updated>

		<summary type="html">&lt;p&gt;Rokas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Šiame skyriuje pamatysi, kiek šaunių dalykų galime padaryti su tekstine reikšme:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def rėk(tekstinė_reikšmė):&lt;br /&gt;
    for raidei in tekstinė_reikšmė:&lt;br /&gt;
        print(&amp;quot;Duok man &amp;quot; + raidė)&lt;br /&gt;
        print(&amp;quot;'&amp;quot; + raidė + &amp;quot;'&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
rėk(&amp;quot;Ačiū&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
def vidurys(tekstas):&lt;br /&gt;
    print(&amp;quot;Raidė esanti viduryje yra:&amp;quot;, tekstas[len(tekstas) // 2])&lt;br /&gt;
&lt;br /&gt;
vidurys(&amp;quot;abcdefg&amp;quot;)&lt;br /&gt;
vidurys(&amp;quot;The Python Programming Language&amp;quot;)&lt;br /&gt;
vidurys(&amp;quot;Atlanta&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rezultatas:&lt;br /&gt;
&lt;br /&gt;
 Duok man A&lt;br /&gt;
 'A'&lt;br /&gt;
 Duok man č&lt;br /&gt;
 'č'&lt;br /&gt;
 Duok man i&lt;br /&gt;
 'i'&lt;br /&gt;
 Duok man ū&lt;br /&gt;
 'ū'&lt;br /&gt;
 Raidė esanti viduryje yra: d&lt;br /&gt;
 Raidė esanti viduryje yra: r&lt;br /&gt;
 Raidė esanti viduryje yra: a&lt;br /&gt;
&lt;br /&gt;
Šios dvi programos rodo, kad tekstinė reikšmė(strings) yra keliais aspektais panaši į sąrašus (list). Funkcija &amp;lt;code&amp;gt;rėk()&amp;lt;/code&amp;gt; rodo, kad ciklas &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; gali būti naudojamas su tekstine reikšme lygiai taip pat kaip ir su sąrašais. Funkcija &amp;lt;code&amp;gt;vidurys()&amp;lt;/code&amp;gt; rodo, kad tekstinėje reikšmėje galima naudotis Python programavimo kalboje jau esančia funkcija &amp;lt;code&amp;gt;len()&amp;lt;/code&amp;gt;, taip pat masyvų indeksavimu ir pjaustymu. Dauguma sąrašo (list) funkcijų veikia ir su tekstine reikšme.&lt;br /&gt;
&lt;br /&gt;
Kita šio skyriaus funkcija parodo tam tikras tekstinės reikšmės ypatybes:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def pavertimas_didžiosiomis_raidėmis(tekstas):&lt;br /&gt;
    ## Ši funkcija, tekstinę reikšmę užrašo didžiosiomis raidėmis&lt;br /&gt;
    didžiosios_raidės = &amp;quot;&amp;quot;&lt;br /&gt;
    for raidei in tekstas:&lt;br /&gt;
        if 'a' &amp;lt;= tekstas &amp;lt;= 'z':&lt;br /&gt;
            lokacija = ord(raidei) - ord('a')&lt;br /&gt;
            naujas_ascii = lokacija + ord('A')&lt;br /&gt;
            raidei= chr(naujas_ascii)&lt;br /&gt;
        didžiosios_raidės = pavertimas_didžiosiomis_raidėmis + raidei&lt;br /&gt;
    return didžiosios_raidės&lt;br /&gt;
&lt;br /&gt;
print(pavertimas_didžiosiomis_raidėmis(&amp;quot;Įrašytas tekstas&amp;quot;))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rezultatas:&lt;br /&gt;
&lt;br /&gt;
 ĮRAŠYTAS TEKSTAS&lt;br /&gt;
&lt;br /&gt;
Tai veikia, nes kompiuteris tekstinės reikšmės simbolius šifruoja skaičiais nuo 0 iki 1 114 111. Visos šios tekstinės reikšmės turi savo unikalias unikodo reikšmės. Pavyzdžiui, simboliui „A“ yra priskirtas skaičius 65, simbolis „B“ kompiuterio suprantamas kaip 66, o simbolis א yra 1488. Python programavimo kalba turi funkciją, vadinamą &amp;lt;code&amp;gt;ord()&amp;lt;/code&amp;gt; (trumpinys angliško žodžio ordinal, kuris reiškia iš eilės), kuri grąžina simbolį kaip skaičių. Taip pat Pyhton programavimo kalba turi ir atvirkščią funkcija, vadinama &amp;lt;code&amp;gt;chr()&amp;lt;/code&amp;gt;, kuri skaičių paverčia simboliu. Supratus, kaip veikia šios funkcijos aukščiau užrašyta programa turėtų atrodyti logiška.&lt;br /&gt;
&lt;br /&gt;
Programos pirmoji eilutė &amp;lt;code&amp;gt;if 'a' &amp;lt;= simbolis &amp;lt;= 'z':&amp;lt;/code&amp;gt; patikrina, ar raidė yra mažoji. Jeigu taip, tada naudojamos kitos programos eilutės:&lt;br /&gt;
Pirmiausia eilutė &amp;lt;code&amp;gt;lokacija= ord(simbolis) - ord('a')&amp;lt;/code&amp;gt; nurodo simbolio vietą: a = 0, b = 1, c = 2 ir t.t. &lt;br /&gt;
Tada nauja reikšmė randama su kodo eilute &amp;lt;code&amp;gt;naujas_ascii = lokacija + ord ('A')&amp;lt;/code&amp;gt;. &lt;br /&gt;
Tada ši reikšmė paverčiama atgal į simbolį, kuris dabar yra didžioji raidė. &lt;br /&gt;
&lt;br /&gt;
Žinoma, tai tik programos pavyzdys, daug paprasčiau tai padaryti gali pasinaudodamas šiuo &amp;lt;code&amp;gt;metodu=var.upper()&amp;lt;/code&amp;gt;, kuris veikia su visomis kalbomis.&lt;br /&gt;
&lt;br /&gt;
O dabar pabandykime pasižiūrėti į šį pavyzdį:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''# Skaičius į tekstinę reikšmę'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''2'''&lt;br /&gt;
 2&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''repr(2)'''&lt;br /&gt;
 '2'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''-123'''&lt;br /&gt;
 -123&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''repr(-123)'''&lt;br /&gt;
 '-123'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''# Tekstinė reikšmė į skaičių'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''&amp;quot;23&amp;quot;'''&lt;br /&gt;
 '23'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''int(&amp;quot;23&amp;quot;)'''&lt;br /&gt;
 23&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''&amp;quot;23&amp;quot; * 2'''&lt;br /&gt;
 '2323'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''int(&amp;quot;23&amp;quot;) * 2'''&lt;br /&gt;
 46&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''# Skaičius po kablelio į tekstinę reikšmę'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''1.23'''&lt;br /&gt;
 1.23&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''repr(1.23)'''&lt;br /&gt;
 '1.23'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''# Skaičius po kablelio į skaičių'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''1.23'''&lt;br /&gt;
 1.23&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''int(1.23)'''&lt;br /&gt;
 1&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''int(-1.23)'''&lt;br /&gt;
 -1&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''# Tekstinė reikšmė į skaičių po kablelio'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''float(&amp;quot;1.23&amp;quot;)'''&lt;br /&gt;
 1.23&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''&amp;quot;1.23&amp;quot;''' &lt;br /&gt;
 '1.23'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''float(&amp;quot;123&amp;quot;)'''&lt;br /&gt;
 123.0&lt;br /&gt;
&lt;br /&gt;
Jeigu dar nesupratai, tai funkcija &amp;lt;code&amp;gt;repr()&amp;lt;/code&amp;gt; (galima naudoti ir str()) konvertuoja skaičių į tekstinę reikšmę, o funkcija &amp;lt;code&amp;gt;int()&amp;lt;/code&amp;gt; konvertuoja tekstinę reikšmę į skaičių. Funkcija &amp;lt;code&amp;gt;float()&amp;lt;/code&amp;gt; konvertuoja tekstinę reikšmę į skaičių po kablelio. Grįžtant prie funkcijos &amp;lt;code&amp;gt;repr()&amp;lt;/code&amp;gt; - ji grąžina tekstinę įrašytos reikšmės versiją. Štai keli pavyzdžiai:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''repr(1)'''&lt;br /&gt;
 '1'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''repr(234.14)'''&lt;br /&gt;
 '234.14'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''repr([4, 42, 10])'''&lt;br /&gt;
 '[4, 42, 10]'&lt;br /&gt;
&lt;br /&gt;
Funkcija &amp;lt;code&amp;gt;int()&amp;lt;/code&amp;gt; konvertuoja tekstinę reikšmę (ar skaičių su reikšme po kablelio) į sveikąjį skaičių. Panaši funkcija &amp;lt;Code&amp;gt;float&amp;lt;/code&amp;gt; konvertuoja skaičių ar tekstinę reikšmę į skaičių su reikšme po kablelio. Taip pat Python programavimo kalba turi funkciją &amp;lt;code&amp;gt;eval()&amp;lt;/code&amp;gt;, kuri grąžina eilutės tipą. Pavyzdžiui:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''v = eval('123')'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''print(v, type(v))'''&lt;br /&gt;
 123 &amp;lt;type 'int'&amp;gt;&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''v = eval('645.123')'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''print(v, type(v))'''&lt;br /&gt;
 645.123 &amp;lt;type 'float'&amp;gt;&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''v = eval('[1, 2, 3]')'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''print(v, type(v))'''&lt;br /&gt;
 [1, 2, 3] &amp;lt;type 'list'&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jeigu pamatai funkciją &amp;lt;code&amp;gt;eval()&amp;lt;/code&amp;gt; tai pasitikrink, ar grąžinamas toks reikšmės tipas, kurio tikėjaisi.&lt;br /&gt;
&lt;br /&gt;
Taip pat naudingas ir dažnai paprastose užduotyse naudojamas metodas &amp;lt;code&amp;gt;split()&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''&amp;quot;Čia yra tik ždožių kratinys&amp;quot;.split()'''&lt;br /&gt;
 ['Čia', 'yra', 'tik', 'žodžių', 'kratinys']&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''tekstas= &amp;quot;Pirma partija, antra partija, trečia, ketvirta&amp;quot;'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''tekstas.split(&amp;quot;,&amp;quot;)'''&lt;br /&gt;
 ['Pirma partija', ' antra partija', ' trečia', ' ketvirta']&lt;br /&gt;
&lt;br /&gt;
Ar pastebėjai kaip &amp;lt;code&amp;gt;split()&amp;lt;/code&amp;gt; konvertuoja tekstinę reikšmę į tekstinių reikšmių sąrašą (angl. list)? Pagal numatytus nustatymus tekstinė reikšmė padalijama pagal nurodytus tarpus, šiuo atveju pagal nurodytą argumentą - kablelį.&lt;br /&gt;
Taip pat galima pridėti ir kitą argumentą, kuris nurodo &amp;lt;code&amp;gt;split()&amp;lt;/code&amp;gt; funkcijai, kurioje sąrašo vietoje reikia atskirti tekstą:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''sąrašas= tekstas.split(&amp;quot;,&amp;quot;)'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''len(sąrašas)'''&lt;br /&gt;
 4&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''sąrašas[-1]'''&lt;br /&gt;
 ' ketvirta'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''list = tekstas.split(&amp;quot;,&amp;quot;, 2)'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''len(list)'''&lt;br /&gt;
 3&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''sąrašas[-1]'''&lt;br /&gt;
 ' trečia, ketvirta'&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- TODO add more on strings --&amp;gt;&lt;br /&gt;
=== Tekstinės (ir sąrašo) reikšmės pjaustymas (Slicing strings(and lists) ===&lt;br /&gt;
&lt;br /&gt;
Tekstinę reikšmę galima pjaustyti/skaidyti į skirtingas mažesnes reikšmes. Tą jau matei ankstesniame pavyzdyje, kai laužtiniuose skliaustuose &amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; buvo nurodyta reikiama teksto vieta. Pjaustymo operatorius veikia taip: &amp;lt;code&amp;gt;tekstas[pradžios_indeksas:pabaigos_indeksas]&amp;lt;/code&amp;gt; (retais atvejais galime pridėti dar ir trečią argumentą, kaip apačioje esančiame pavyzdyje)&lt;br /&gt;
&lt;br /&gt;
Kad nesusipainiotum įrašydamas indekso skaičius, įsivaizduok, kad žirklėmis karpai tekstą, o programai nurodai, kurioje vietoje kirpti. Štai vienas pavyzdys, kaip tai viekia - geltonai pažymėtos kirpimo vietos, o raudonai ir mėlynai indekso numeris&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
{| style=&amp;quot;text-align:center&amp;quot; cellspacing=&amp;quot;0px&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width:2ex;color:red&amp;quot; |0&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width:2ex;color:red&amp;quot; |1&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width:2ex;color:red&amp;quot; |2&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; | ...&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width:2ex;color:blue&amp;quot; | -2&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width:2ex;color:blue&amp;quot; | -1&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&amp;amp;darr;&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&amp;amp;darr;&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&amp;amp;darr;&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&amp;amp;darr;&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&amp;amp;darr;&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&amp;amp;darr;&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&amp;amp;darr;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| tekstas = &lt;br /&gt;
|&amp;quot;&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
!S &lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
!T&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
!R&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
!I&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
!N&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
!G&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
|&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&amp;amp;uarr;&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&amp;amp;uarr;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[:&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|:]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Įsidėmėk, kad raudonai pažymėti indeksai skaičiuojami nuo pradžios, o mėlyni atvirkščiai nuo kito galo t.y. teksto pabaigos. Taip pat ar pastebėjai, kad skaičiuojant nuo galo nėra -0 reikšmės? Taip yra todėl, kad 0 visada priskiriamas tik reikšmės pradžiai:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|tekstas[1:4] || style=&amp;quot;width:3em;text-align:center&amp;quot; | &amp;amp;rarr; || &amp;quot;TRI&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|tekstas[:5] || style=&amp;quot;width:3em;text-align:center&amp;quot; | &amp;amp;rarr; || &amp;quot;STRIN&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|tekstas[:-1] || style=&amp;quot;width:3em;text-align:center&amp;quot; | &amp;amp;rarr; || &amp;quot;STRIN&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|tekstas[-4:] || style=&amp;quot;width:3em;text-align:center&amp;quot; | &amp;amp;rarr; || &amp;quot;RING&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|tekstas[2] || style=&amp;quot;width:3em;text-align:center&amp;quot; | &amp;amp;rarr; || &amp;quot;R&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|tekstas[:] || style=&amp;quot;width:3em;text-align:center&amp;quot; | &amp;amp;rarr; || &amp;quot;STRING&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|tekstas[::-1] || style=&amp;quot;width:3em;text-align:center&amp;quot; | &amp;amp;rarr; || &amp;quot;GNIRTS&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;tekstas[1:4]&amp;lt;/tt&amp;gt; duoda visas &amp;lt;tt&amp;gt;tekstas&amp;lt;/tt&amp;gt; reikšmes tarp 1 ir 4, &amp;quot;&amp;lt;tt&amp;gt;TRI&amp;lt;/tt&amp;gt;&amp;quot;. Jei praleisi vieną iš argumentų [pradžios_indeksas:pabaigos indeksas], automatiškai gausi tekstinės reikšmę nuo pradžios ar pabaigos: &amp;lt;tt&amp;gt;tekstas[:5]&amp;lt;/tt&amp;gt; atspausdina&amp;quot;&amp;lt;tt&amp;gt;STRIN&amp;lt;/tt&amp;gt;&amp;quot;. Taip pat tiek &amp;lt;tt&amp;gt;pradžios_indeksas&amp;lt;/tt&amp;gt; tiek &amp;lt;tt&amp;gt;pabaigos_indeksas&amp;lt;/tt&amp;gt; galime naudoti raudonai ir mėlynai pavaizduotą skaičiavimo schemą - t.y. galime skaičuoti tike nuo pradžios tiek nuo pabaigos: &amp;lt;tt&amp;gt;tekstas[:-1]&amp;lt;/tt&amp;gt; duoda tą patį rezultatą kaip &amp;lt;tt&amp;gt;tekstas[:5]&amp;lt;/tt&amp;gt;, todėl, kad indekas -1 šiame žodyje yra toje pačioje vietoje kaip indeksas 5. Jeigu nenaudojame argumento kartu su dvitaškiu, tai skaičius traktuojamas kitaip, pavyzdžiui: &amp;lt;tt&amp;gt;tekstas[2]&amp;lt;/tt&amp;gt; duoda vieną raidę, kuri yra nurodytoje vietoje, šiuo atveju &amp;quot;&amp;lt;tt&amp;gt;R&amp;lt;/tt&amp;gt;&amp;quot;. Speciali pjaustymo operacija &amp;lt;tt&amp;gt;tekstas[:]&amp;lt;/tt&amp;gt;  reiškia nuo pradžios iki pabaigos ir duodą visos tekstinės reikšmės ar sąrašo (list) kopiją. &lt;br /&gt;
&lt;br /&gt;
Na ir galiausiai, pjaustymo operacija gali turėti ir trečią argumentą, kuris suprantamas, kaip „žingsnio dydis“: &amp;lt;tt&amp;gt;tekstas[::-1]&amp;lt;/tt&amp;gt; yra &amp;lt;tt&amp;gt;tekstas&amp;lt;/tt&amp;gt; nuo pradžios iki pabaigos, kai nurodytas žingsnio dydis yra -1. Tai reiškia - kiekviena raidė, tik atvirkštine eilės tvarka. &amp;quot;&amp;lt;tt&amp;gt;STRING&amp;lt;/tt&amp;gt;&amp;quot; atvirkščiai yra &amp;quot;&amp;lt;tt&amp;gt;GNIRTS&amp;lt;/tt&amp;gt;&amp;quot; (jeigu nesupratai, tai pabandyk prasitestuoti įrašydamas kaip žingsnio ilgį skaičių 2).&lt;br /&gt;
&lt;br /&gt;
Visos šios pjaustymo operacijos veikia ir su sąrašais (lists). Šiuo atveju tekstinę reikšmę galime suprasti, kaip sąrašą, kai visi sąrašo elementai yra atskiros raidės. Iš šio skyriaus atsimink pagrindinį principą - į viską žiūrėk taip lyg karpytum, tai padės nesusipainioti įrašant indeksus.&lt;br /&gt;
&lt;br /&gt;
=== Pavyzdžiai ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Ši programa reikalauja dešimtainių skaičių supratimo.&lt;br /&gt;
def į_tekstą(į_skaičių):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Konvertuoja skaičių į teksta&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    tekstas = &amp;quot;&amp;quot;&lt;br /&gt;
    prefiksas = &amp;quot;&amp;quot;&lt;br /&gt;
    if į_skaičių &amp;lt; 0:&lt;br /&gt;
        prefiksas = &amp;quot;-&amp;quot;&lt;br /&gt;
        į_skaičių = -į_skaičių&lt;br /&gt;
    while į_skaičių // 10 != 0:&lt;br /&gt;
        out_str = str(į_skaičių % 10) + tekstas&lt;br /&gt;
        į_skaičių= į_skaičių// 10&lt;br /&gt;
    tekstas = str(į_skaičių % 10) + tekstas&lt;br /&gt;
    return prefiksas + tekstas&lt;br /&gt;
&lt;br /&gt;
def į_skaičių(į_tekstą):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Konvertuoja tekstą į skaičių&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    skaičius = 0&lt;br /&gt;
    if į_tekstą[0] == &amp;quot;-&amp;quot;:&lt;br /&gt;
        daugiklis = -1&lt;br /&gt;
        į_tekstą = į_tekstą[1:]&lt;br /&gt;
    else:&lt;br /&gt;
        daugiklis = 1&lt;br /&gt;
    for c in į_tekstą:&lt;br /&gt;
        skaičius = skaičius* 10 + int(c)&lt;br /&gt;
    return skaičius * daugiklis&lt;br /&gt;
&lt;br /&gt;
print(į_tekstą(2))&lt;br /&gt;
print(į_tekstą(23445))&lt;br /&gt;
print(į_tekstą(-23445))&lt;br /&gt;
print(į_skaičių(&amp;quot;14234&amp;quot;))&lt;br /&gt;
print(į_skaičių(&amp;quot;12345&amp;quot;))&lt;br /&gt;
print(į_skaičių(&amp;quot;-3512&amp;quot;))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rezultatas:&lt;br /&gt;
&lt;br /&gt;
 2&lt;br /&gt;
 23445&lt;br /&gt;
 -23445&lt;br /&gt;
 14234&lt;br /&gt;
 12345&lt;br /&gt;
 -3512&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=More on Lists|next=File IO}}&lt;br /&gt;
{{BookCat}}&lt;/div&gt;</summary>
		<author><name>Rokas</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Daugiau_apie_tekstines_eilutes&amp;diff=3549</id>
		<title>Python Vadovėlis/Daugiau apie tekstines eilutes</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Daugiau_apie_tekstines_eilutes&amp;diff=3549"/>
		<updated>2021-11-17T08:07:30Z</updated>

		<summary type="html">&lt;p&gt;Rokas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Šiame skyriuje pamatysi, kiek šaunių dalykų galime padaryti su tekstine reikšme:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def rėk(tekstinė_reikšmė):&lt;br /&gt;
    for raidei in tekstinė_reikšmė:&lt;br /&gt;
        print(&amp;quot;Duok man &amp;quot; + raidė)&lt;br /&gt;
        print(&amp;quot;'&amp;quot; + raidė + &amp;quot;'&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
rėk(&amp;quot;Ačiū&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
def vidurys(tekstas):&lt;br /&gt;
    print(&amp;quot;Raidė esanti viduryje yra:&amp;quot;, tekstas[len(tekstas) // 2])&lt;br /&gt;
&lt;br /&gt;
vidurys(&amp;quot;abcdefg&amp;quot;)&lt;br /&gt;
vidurys(&amp;quot;The Python Programming Language&amp;quot;)&lt;br /&gt;
vidurys(&amp;quot;Atlanta&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rezultatas:&lt;br /&gt;
&lt;br /&gt;
 Duok man A&lt;br /&gt;
 'A'&lt;br /&gt;
 Duok man č&lt;br /&gt;
 'č'&lt;br /&gt;
 Duok man i&lt;br /&gt;
 'i'&lt;br /&gt;
 Duok man ū&lt;br /&gt;
 'ū'&lt;br /&gt;
 Raidė esanti viduryje yra: d&lt;br /&gt;
 Raidė esanti viduryje yra: r&lt;br /&gt;
 Raidė esanti viduryje yra: a&lt;br /&gt;
&lt;br /&gt;
Šios dvi programos rodo, kad tekstinė reikšmė(strings) yra keliais aspektais panaši į sąrašus (list). Funkcija &amp;lt;code&amp;gt;rėk()&amp;lt;/code&amp;gt; rodo, kad ciklas &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; gali būti naudojamas su tekstine reikšme lygiai taip pat kaip ir su sąrašais. Funkcija &amp;lt;code&amp;gt;vidurys()&amp;lt;/code&amp;gt; rodo, kad tekstinėje reikšmėje galima naudotis Python programavimo kalboje jau esančia funkcija &amp;lt;code&amp;gt;len()&amp;lt;/code&amp;gt;, taip pat masyvų indeksavimu ir pjaustymu. Dauguma sąrašo (list) funkcijų veikia ir su tekstine reikšme.&lt;br /&gt;
&lt;br /&gt;
Kita šio skyriaus funkcija parodo tam tikras tekstinės reikšmės ypatybes:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def pavertimas_didžiosiomis_raidėmis(tekstas):&lt;br /&gt;
    ## Ši funkcija, tekstinę reikšmę užrašo didžiosiomis raidėmis&lt;br /&gt;
    didžiosios_raidės = &amp;quot;&amp;quot;&lt;br /&gt;
    for raidei in tekstas:&lt;br /&gt;
        if 'a' &amp;lt;= tekstas &amp;lt;= 'z':&lt;br /&gt;
            lokacija = ord(raidei) - ord('a')&lt;br /&gt;
            naujas_ascii = lokacija + ord('A')&lt;br /&gt;
            raidei= chr(naujas_ascii)&lt;br /&gt;
        didžiosios_raidės = pavertimas_didžiosiomis_raidėmis + raidei&lt;br /&gt;
    return didžiosios_raidės&lt;br /&gt;
&lt;br /&gt;
print(pavertimas_didžiosiomis_raidėmis(&amp;quot;Įrašytas tekstas&amp;quot;))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rezultatas:&lt;br /&gt;
&lt;br /&gt;
 ĮRAŠYTAS TEKSTAS&lt;br /&gt;
&lt;br /&gt;
Tai veikia, nes kompiuteris tekstinės reikšmės simbolius šifruoja skaičiais nuo 0 iki 1 114 111. Visos šios tekstinės reikšmės turi savo unikalias unikodo reikšmės. Pavyzdžiui, simboliui „A“ yra priskirtas skaičius 65, simbolis „B“ kompiuterio suprantamas kaip 66, o simbolis א yra 1488. Python programavimo kalba turi funkciją, vadinamą &amp;lt;code&amp;gt;ord()&amp;lt;/code&amp;gt; (trumpinys angliško žodžio ordinal, kuris reiškia iš eilės), kuri grąžina simbolį kaip skaičių. Taip pat Pyhton programavimo kalba turi ir atvirkščią funkcija, vadinama &amp;lt;code&amp;gt;chr()&amp;lt;/code&amp;gt;, kuri skaičių paverčia simboliu. Supratus, kaip veikia šios funkcijos aukščiau užrašyta programa turėtų atrodyti logiška.&lt;br /&gt;
&lt;br /&gt;
Programos pirmoji eilutė &amp;lt;code&amp;gt;if 'a' &amp;lt;= simbolis &amp;lt;= 'z':&amp;lt;/code&amp;gt; patikrina, ar raidė yra mažoji. Jeigu taip, tada naudojamos kitos programos eilutės:&lt;br /&gt;
Pirmiausia eilutė &amp;lt;code&amp;gt;lokacija= ord(simbolis) - ord('a')&amp;lt;/code&amp;gt; nurodo simbolio vietą: a = 0, b = 1, c = 2 ir t.t. &lt;br /&gt;
Tada nauja reikšmė randama su kodo eilute &amp;lt;code&amp;gt;naujas_ascii = lokacija + ord ('A')&amp;lt;/code&amp;gt;. &lt;br /&gt;
Tada ši reikšmė paverčiama atgal į simbolį, kuris dabar yra didžioji raidė. &lt;br /&gt;
&lt;br /&gt;
Žinoma, tai tik programos pavyzdys, daug paprasčiau tai padaryti gali pasinaudodamas šiuo &amp;lt;code&amp;gt;metodu=var.upper()&amp;lt;/code&amp;gt;, kuris veikia su visomis kalbomis.&lt;br /&gt;
&lt;br /&gt;
O dabar pabandykime pasižiūrėti į šį pavyzdį:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''# Skaičius į tekstinę reikšmę'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''2'''&lt;br /&gt;
 2&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''repr(2)'''&lt;br /&gt;
 '2'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''-123'''&lt;br /&gt;
 -123&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''repr(-123)'''&lt;br /&gt;
 '-123'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''# Tekstinė reikšmė į skaičių'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''&amp;quot;23&amp;quot;'''&lt;br /&gt;
 '23'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''int(&amp;quot;23&amp;quot;)'''&lt;br /&gt;
 23&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''&amp;quot;23&amp;quot; * 2'''&lt;br /&gt;
 '2323'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''int(&amp;quot;23&amp;quot;) * 2'''&lt;br /&gt;
 46&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''# Skaičius po kablelio į tekstinę reikšmę'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''1.23'''&lt;br /&gt;
 1.23&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''repr(1.23)'''&lt;br /&gt;
 '1.23'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''# Skaičius po kablelio į skaičių'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''1.23'''&lt;br /&gt;
 1.23&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''int(1.23)'''&lt;br /&gt;
 1&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''int(-1.23)'''&lt;br /&gt;
 -1&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''# Tekstinė reikšmė į skaičių po kablelio'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''float(&amp;quot;1.23&amp;quot;)'''&lt;br /&gt;
 1.23&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''&amp;quot;1.23&amp;quot;''' &lt;br /&gt;
 '1.23'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''float(&amp;quot;123&amp;quot;)'''&lt;br /&gt;
 123.0&lt;br /&gt;
&lt;br /&gt;
Jeigu dar nesupratai, tai funkcija &amp;lt;code&amp;gt;repr()&amp;lt;/code&amp;gt; (galima naudoti ir str()) konvertuoja skaičių į tekstinę reikšmę, o funkcija &amp;lt;code&amp;gt;int()&amp;lt;/code&amp;gt; konvertuoja tekstinę reikšmę į skaičių. Funkcija &amp;lt;code&amp;gt;float()&amp;lt;/code&amp;gt; konvertuoja tekstinę reikšmę į skaičių po kablelio. Grįžtant prie funkcijos &amp;lt;code&amp;gt;repr()&amp;lt;/code&amp;gt; - ji grąžina tekstinę įrašytos reikšmės versiją. Štai keli pavyzdžiai:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''repr(1)'''&lt;br /&gt;
 '1'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''repr(234.14)'''&lt;br /&gt;
 '234.14'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''repr([4, 42, 10])'''&lt;br /&gt;
 '[4, 42, 10]'&lt;br /&gt;
&lt;br /&gt;
Funkcija &amp;lt;code&amp;gt;int()&amp;lt;/code&amp;gt; konvertuoja tekstinę reikšmę (ar skaičių su reikšme po kablelio) į sveikąjį skaičių. Panaši funkcija &amp;lt;Code&amp;gt;float&amp;lt;/code&amp;gt; konvertuoja skaičių ar tekstinę reikšmę į skaičių su reikšme po kablelio. Taip pat Python programavimo kalba turi funkciją &amp;lt;code&amp;gt;type()&amp;lt;/code&amp;gt;, kuri grąžina eilutės tipą. Pavyzdžiui:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''v = eval('123')'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''print(v, type(v))'''&lt;br /&gt;
 123 &amp;lt;type 'int'&amp;gt;&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''v = eval('645.123')'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''print(v, type(v))'''&lt;br /&gt;
 645.123 &amp;lt;type 'float'&amp;gt;&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''v = eval('[1, 2, 3]')'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''print(v, type(v))'''&lt;br /&gt;
 [1, 2, 3] &amp;lt;type 'list'&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jeigu pamatai funkciją &amp;lt;code&amp;gt;eval()&amp;lt;/code&amp;gt; tai pasitikrink, ar grąžinamas toks reikšmės tipas, kurio tikėjaisi.&lt;br /&gt;
&lt;br /&gt;
Taip pat naudingas ir dažnai paprastose užduotyse naudojamas metodas &amp;lt;code&amp;gt;split()&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''&amp;quot;Čia yra tik ždožių kratinys&amp;quot;.split()'''&lt;br /&gt;
 ['Čia', 'yra', 'tik', 'žodžių', 'kratinys']&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''tekstas= &amp;quot;Pirma partija, antra partija, trečia, ketvirta&amp;quot;'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''tekstas.split(&amp;quot;,&amp;quot;)'''&lt;br /&gt;
 ['Pirma partija', ' antra partija', ' trečia', ' ketvirta']&lt;br /&gt;
&lt;br /&gt;
Ar pastebėjai kaip &amp;lt;code&amp;gt;split()&amp;lt;/code&amp;gt; konvertuoja tekstinę reikšmę į tekstinių reikšmių sąrašą (angl. list)? Pagal numatytus nustatymus tekstinė reikšmė padalijama pagal tarpus, šiuo atveju pagal nurodytą argumentą - kablelį.&lt;br /&gt;
Taip pat galima pridėti ir kitą argumentą, kuris nurodo &amp;lt;code&amp;gt;split()&amp;lt;/code&amp;gt; funkcijai, kurioje sąrašo vietoje reikia atskirti tekstą:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''sąrašas= tekstas.split(&amp;quot;,&amp;quot;)'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''len(sąrašas)'''&lt;br /&gt;
 4&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''sąrašas[-1]'''&lt;br /&gt;
 ' ketvirta'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''list = tekstas.split(&amp;quot;,&amp;quot;, 2)'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''len(list)'''&lt;br /&gt;
 3&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''sąrašas[-1]'''&lt;br /&gt;
 ' trečia, ketvirta'&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- TODO add more on strings --&amp;gt;&lt;br /&gt;
=== Tekstinės (ir sąrašo) reikšmės pjaustymas (Slicing strings(and lists) ===&lt;br /&gt;
&lt;br /&gt;
Tekstinę reikšmę galima pjaustyti/skaidyti į skirtingas mažesnes reikšmes. Tą jau matėme ankstesniame pavyzdyje, kai skliaustuos &amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; buvo nurodyta reikiama teksto vieta. Pjaustymo operatorius veikia taip: &amp;lt;code&amp;gt;tekstas[pradžios_indeksas:pabaigos_indeksas]&amp;lt;/code&amp;gt; (retais atvejais galime pridėti dar ir trečią argumentą, kaip apačioje esančiame pavyzdyje)&lt;br /&gt;
&lt;br /&gt;
Kad nesusipainiotum įrašydamas indekso skaičius, įsivaizduok, kad žirklėmis karpai tekstą, o programai nurodai, kurioje vietoje kirpti. Štai vienas pavyzdys, kaip tai viekia - geltonai pažymėtos kirpimo vietos, o raudonai ir mėlynai indekso numeris&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
{| style=&amp;quot;text-align:center&amp;quot; cellspacing=&amp;quot;0px&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width:2ex;color:red&amp;quot; |0&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width:2ex;color:red&amp;quot; |1&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width:2ex;color:red&amp;quot; |2&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; | ...&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width:2ex;color:blue&amp;quot; | -2&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width:2ex;color:blue&amp;quot; | -1&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&amp;amp;darr;&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&amp;amp;darr;&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&amp;amp;darr;&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&amp;amp;darr;&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&amp;amp;darr;&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&amp;amp;darr;&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&amp;amp;darr;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| tekstas = &lt;br /&gt;
|&amp;quot;&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
!S &lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
!T&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
!R&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
!I&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
!N&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
!G&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
|&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&amp;amp;uarr;&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&amp;amp;uarr;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[:&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|:]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Įsidėmėk, kad raudonai pažymėti indeksai skaičiuojami nuo pradžios, o mėlyni atvirkščiai nuo kito galo - teksto pabaigos. Taip pat ar pastebėjai, kad skaičiuojant nuo galo nėra -0 reikšmės? Taip yra todėl, kad 0 visada priskiriamas reikšmės pradžiai:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|tekstas[1:4] || style=&amp;quot;width:3em;text-align:center&amp;quot; | &amp;amp;rarr; || &amp;quot;TRI&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|tekstas[:5] || style=&amp;quot;width:3em;text-align:center&amp;quot; | &amp;amp;rarr; || &amp;quot;STRIN&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|tekstas[:-1] || style=&amp;quot;width:3em;text-align:center&amp;quot; | &amp;amp;rarr; || &amp;quot;STRIN&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|tekstas[-4:] || style=&amp;quot;width:3em;text-align:center&amp;quot; | &amp;amp;rarr; || &amp;quot;RING&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|tekstas[2] || style=&amp;quot;width:3em;text-align:center&amp;quot; | &amp;amp;rarr; || &amp;quot;R&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|tekstas[:] || style=&amp;quot;width:3em;text-align:center&amp;quot; | &amp;amp;rarr; || &amp;quot;STRING&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|tekstas[::-1] || style=&amp;quot;width:3em;text-align:center&amp;quot; | &amp;amp;rarr; || &amp;quot;GNIRTS&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;tekstas[1:4]&amp;lt;/tt&amp;gt; duoda visas &amp;lt;tt&amp;gt;tekstas&amp;lt;/tt&amp;gt; reikšmes tarp 1 ir 4, &amp;quot;&amp;lt;tt&amp;gt;TRI&amp;lt;/tt&amp;gt;&amp;quot;. Jei praleisi vieną iš argumentų [pradžios_indeksas:pabaigos indeksas], automatiškai gausi tekstinės reikšmę nuo pradžios ar pabaigos: &amp;lt;tt&amp;gt;tekstas[:5]&amp;lt;/tt&amp;gt; atspausdina&amp;quot;&amp;lt;tt&amp;gt;STRIN&amp;lt;/tt&amp;gt;&amp;quot;. Taip pat tiek &amp;lt;tt&amp;gt;pradžios_indeksas&amp;lt;/tt&amp;gt; tiek &amp;lt;tt&amp;gt;pabaigos_indeksas&amp;lt;/tt&amp;gt; galime naudoti raudonai ir mėlynai pavaizduotą skaičiavimo schemą - t.y. galime skaičuoti tike nuo pradžios tiek nuo pabaigos: &amp;lt;tt&amp;gt;tekstas[:-1]&amp;lt;/tt&amp;gt; duoda tą patį rezultatą kaip &amp;lt;tt&amp;gt;tekstas[:5]&amp;lt;/tt&amp;gt;, todėl, kad indekas -1 šiame žodyje yra toje pačioje vietoje kaip indeksas 5. Jeigu nenaudojame argumento kartu su dvitaškiu, tai skaičius traktuojamas kitaip, pavyzdžiui: &amp;lt;tt&amp;gt;tekstas[2]&amp;lt;/tt&amp;gt; duoda vieną raidę, kuri yra nurodytoje vietoje, šiuo atveju &amp;quot;&amp;lt;tt&amp;gt;R&amp;lt;/tt&amp;gt;&amp;quot;. Speciali pjaustymo operacija &amp;lt;tt&amp;gt;tekstas[:]&amp;lt;/tt&amp;gt;  reiškia nuo pradžios iki pabaigos ir duodą visos tekstinės reikšmės ar sąrašo (list) kopiją. &lt;br /&gt;
&lt;br /&gt;
Na ir galiausiai, pjaustymo operacija gali turėti ir trečią argumentą, kuris suprantamas, kaip „žingsnio dydis“: &amp;lt;tt&amp;gt;tekstas[::-1]&amp;lt;/tt&amp;gt; yra &amp;lt;tt&amp;gt;tekstas&amp;lt;/tt&amp;gt; nuo pradžios iki pabaigos, kai nurodytas žingsnio dydis yra -1. Tai reiškia - kiekviena raidė, tik atvirkštine eilės tvarka. &amp;quot;&amp;lt;tt&amp;gt;STRING&amp;lt;/tt&amp;gt;&amp;quot; atvirkščiai yra &amp;quot;&amp;lt;tt&amp;gt;GNIRTS&amp;lt;/tt&amp;gt;&amp;quot; (jeigu nesupratai, tai pabandyk prasitestuoti įrašydamas kaip žingsnio ilgį skaičių 2).&lt;br /&gt;
&lt;br /&gt;
Visos šios pjaustymo operacijos veikia ir su sąrašais (lists). Šiuo atveju tekstinę reikšmę galime suprasti, kaip sąrašą, kai visi sąrašo elementai yra atskiros raidės. Iš šio skyriaus atsimink pagrindinį principą - į viską žiūrėk taip lyg karpytum, tai padės nesusipainioti įrašant indeksus.&lt;br /&gt;
&lt;br /&gt;
=== Pavyzdžiai ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Ši programa reikalauja dešimtainių skaičių supratimo.&lt;br /&gt;
def į_tekstą(į_skaičių):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Konvertuoja skaičių į teksta&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    tekstas = &amp;quot;&amp;quot;&lt;br /&gt;
    prefiksas = &amp;quot;&amp;quot;&lt;br /&gt;
    if į_skaičių &amp;lt; 0:&lt;br /&gt;
        prefiksas = &amp;quot;-&amp;quot;&lt;br /&gt;
        į_skaičių = -į_skaičių&lt;br /&gt;
    while į_skaičių // 10 != 0:&lt;br /&gt;
        out_str = str(į_skaičių % 10) + tekstas&lt;br /&gt;
        į_skaičių= į_skaičių// 10&lt;br /&gt;
    tekstas = str(į_skaičių % 10) + tekstas&lt;br /&gt;
    return prefiksas + tekstas&lt;br /&gt;
&lt;br /&gt;
def į_skaičių(į_tekstą):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Konvertuoja tekstą į skaičių&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    skaičius = 0&lt;br /&gt;
    if į_tekstą[0] == &amp;quot;-&amp;quot;:&lt;br /&gt;
        daugiklis = -1&lt;br /&gt;
        į_tekstą = į_tekstą[1:]&lt;br /&gt;
    else:&lt;br /&gt;
        daugiklis = 1&lt;br /&gt;
    for c in į_tekstą:&lt;br /&gt;
        skaičius = skaičius* 10 + int(c)&lt;br /&gt;
    return skaičius * daugiklis&lt;br /&gt;
&lt;br /&gt;
print(į_tekstą(2))&lt;br /&gt;
print(į_tekstą(23445))&lt;br /&gt;
print(į_tekstą(-23445))&lt;br /&gt;
print(į_skaičių(&amp;quot;14234&amp;quot;))&lt;br /&gt;
print(į_skaičių(&amp;quot;12345&amp;quot;))&lt;br /&gt;
print(į_skaičių(&amp;quot;-3512&amp;quot;))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rezultatas:&lt;br /&gt;
&lt;br /&gt;
 2&lt;br /&gt;
 23445&lt;br /&gt;
 -23445&lt;br /&gt;
 14234&lt;br /&gt;
 12345&lt;br /&gt;
 -3512&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=More on Lists|next=File IO}}&lt;br /&gt;
{{BookCat}}&lt;/div&gt;</summary>
		<author><name>Rokas</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Funkcij%C5%B3_apibr%C4%97%C5%BEimas&amp;diff=3548</id>
		<title>Python Vadovėlis/Funkcijų apibrėžimas</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Funkcij%C5%B3_apibr%C4%97%C5%BEimas&amp;diff=3548"/>
		<updated>2021-11-17T07:45:51Z</updated>

		<summary type="html">&lt;p&gt;Rokas: /* Užduotis */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Funkcijų kūrimas ===&lt;br /&gt;
Prieš pradėdami šį skyrių pateiksime tau pavyzdį, kurio gali nepersirašinėti:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=python&amp;gt;&lt;br /&gt;
a = 23&lt;br /&gt;
b = -23&lt;br /&gt;
&lt;br /&gt;
if a &amp;lt; 0:&lt;br /&gt;
    a = -a&lt;br /&gt;
if b &amp;lt; 0:&lt;br /&gt;
    b = -b&lt;br /&gt;
if a == b:&lt;br /&gt;
    print(&amp;quot;Absoliučios&amp;quot;, a, &amp;quot;ir&amp;quot;, b, &amp;quot;reikšmės yra lygios.&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Absoliučios&amp;quot;, a, &amp;quot;ir&amp;quot;, b, &amp;quot;reikšmės yra skirtingos.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Programos rezultatas:&lt;br /&gt;
 &lt;br /&gt;
 Absoliučios 23 ir 23 reikšmės yra lygios.&lt;br /&gt;
&lt;br /&gt;
Ar neatrogo, kad programa yra šiek tiek pasikartojanti?.. Ir tikriausiai jau numanai, programuotojai nemėgsta pasikartojančių dalykų, nes juk pasikartojantiems dalykams atlikti ir yra sukurti kompiuteriai!! Be to atkreipk dėmesį, kad radus absoliučią reikšmę pasikeitė kintamojo vertė, todėl programa spausdina 23, o ne -23. Mūsų laimei Python leidžia sukurti funkcijas, kurios šalina dubliavimą:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=python&amp;gt;&lt;br /&gt;
a = 23&lt;br /&gt;
b = -23&lt;br /&gt;
&lt;br /&gt;
def absoliuti_reikšmė(n):&lt;br /&gt;
    if n &amp;lt; 0:&lt;br /&gt;
        n = -n&lt;br /&gt;
    return n&lt;br /&gt;
&lt;br /&gt;
if absoliuti_reikšmė(a) == absoliuti_reikšmė(b):&lt;br /&gt;
    print(&amp;quot;Absoliučios&amp;quot;, a, &amp;quot;ir&amp;quot;, b, &amp;quot;reikšmės yra lygios.&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Absoliučios&amp;quot;, a, &amp;quot;ir&amp;quot;, b, &amp;quot;reikšmės yra lygios.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Programos rezultatas:&lt;br /&gt;
&lt;br /&gt;
 Absoliučios 23 ir -23 reikšmės yra lygios.&lt;br /&gt;
&lt;br /&gt;
Pagrindinis šios programos elementas yra žodis &amp;lt;code&amp;gt;def&amp;lt;/code&amp;gt;.  &lt;br /&gt;
&amp;lt;code&amp;gt;def&amp;lt;/code&amp;gt; yra angliško žodžio &amp;lt;code&amp;gt;define&amp;lt;/code&amp;gt;, kuris reiškia apibrėžti, trumpinys, o juo pradedame apibrėžti savo kuriamą funkciją. Po &amp;lt;code&amp;gt;def&amp;lt;/code&amp;gt; eina funkcijos pavadinimas: &amp;lt;code&amp;gt;absoliuti_reikšmė&amp;lt;/code&amp;gt;. Vėliau skliausteliuose eina parametras n - &amp;lt;code&amp;gt;(n)&amp;lt;/code&amp;gt;, kurio reikšmė yra paimama iš programos, kai funkcija yra iškviečiama. Vėliau eina dvitaškis &amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt;, po kurio esantys teiginiai yra vykdomi naudojant šią funkciją. Teiginiai tęsiami tol, kol pasibaigia funkcijoje nurodyti veiksmai arba grąžinamas norimas rezultatas nurodytas po &amp;lt;code&amp;gt;return&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;return&amp;lt;/code&amp;gt; teiginys grąžina reikšmę į vietą, kur buvo iškviesta funkcija, kaip pirmoje mūsų kurtoje programoje rezultatas buvo grąžintas, kur kvietėme &amp;lt;code&amp;gt;print()&amp;lt;/code&amp;gt; funkciją. Na, o dabar galime kurti naujas funkcijas.&lt;br /&gt;
&lt;br /&gt;
Ar pastebėjai, kad &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt; reikšmės nepasikeitė?&lt;br /&gt;
&lt;br /&gt;
Funkcijos gali būti naudojamos kartojant užduotis, kurios negrąžina reikšmių. Štai keli pavyzdžiai:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def labas():&lt;br /&gt;
    print(&amp;quot;Labas&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
def plotas(plotis, aukštis):&lt;br /&gt;
    return plotis * aukštis&lt;br /&gt;
&lt;br /&gt;
def rašyk_mano_vardas(vardas):&lt;br /&gt;
    print(&amp;quot;Mano vardas&amp;quot;, vardas)&lt;br /&gt;
&lt;br /&gt;
labas()&lt;br /&gt;
labas()&lt;br /&gt;
&lt;br /&gt;
rašyk_labas(&amp;quot;Fredas&amp;quot;)&lt;br /&gt;
w = 4&lt;br /&gt;
h = 5&lt;br /&gt;
print(&amp;quot;plotis =&amp;quot;, w, &amp;quot; aukštis=&amp;quot;, h, &amp;quot; plotas=&amp;quot;, plotas(w, h))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
programos rezultatas&lt;br /&gt;
&lt;br /&gt;
 Labas&lt;br /&gt;
 Labas&lt;br /&gt;
 Mano vardas Fredas&lt;br /&gt;
 plotis = 4  aukštis = 5  plotas = 20&lt;br /&gt;
&lt;br /&gt;
Šis pavyzdys parodo ir daugiau dalykų, kuriuos galima padaryti su funkcijomis. Atkreipk dėmesį, kad galima nenaudoti argumentų arba galima naudoti du argumentus, ar daugiau. Šis pavyzdys rodo dar kelis svarbius dalykus, kuriuos galite padaryti naudodami funkcijas. Taip pat atkreipk dėmesį, kad funkcijai nereikia grąžinti vertės - grąžinimas yra neprivalomas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Funkcijos gali būti naudojamos pakartotiniam kodui pašalinti. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Kintamieji funkcijose ===&lt;br /&gt;
Dažnai pasitaiko, kad pasikartojančiam kode yra kintamųjų, todėl į juos reikia atkreipti dėmesį, kai šaliname pakartotiną kodą. Iki šiol visi kintamieji, kuriuos matėme yra globalūs kintamieji, o funkcijose esantys kintamieji yra vadinami specialiu pavadinimu - lokalūs kintamieji. Šie kintamieji egzistuoja tik veikiant funkcijai. Kai lokalus kintamasis turi globalaus kintamojo pavadinimą, tai funkcijoje pirmenybė teikiama ir naudojamas lokalus kintamasis. Skamba painiai? Štai keli pavyzdžiai:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
a = 4&lt;br /&gt;
 &lt;br /&gt;
def manoFunkcija():&lt;br /&gt;
    a = 17&lt;br /&gt;
    print(&amp;quot;Mano funkcijoje a =&amp;quot;, a)&lt;br /&gt;
&lt;br /&gt;
manoFunkcija()&lt;br /&gt;
print(&amp;quot;a = &amp;quot;, a)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Gaunamas rezultatas&lt;br /&gt;
 Mano funkcijoje a = 17&lt;br /&gt;
 a = 4&lt;br /&gt;
&lt;br /&gt;
Kaip matai pavyzdyje, funkcijos viduje esantis kintamasis nepaiso globalaus kintamojo, nes ji egzistuoja tik funkcijos viduje. Taip pat, turėjai pastebėti, kas funkcijos viduje kintamajam &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; buvo priskirta nauja reikšmė, bet ji buvo aktuali tik funkcijoje, o ne už jos ribų - globalus kintamasis &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; liko nepakitęs.&lt;br /&gt;
&lt;br /&gt;
Kitas kiek sudėtingesnis kodo pavyzdys:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
a_var = 10&lt;br /&gt;
b_var = 15&lt;br /&gt;
e_var = 25&lt;br /&gt;
&lt;br /&gt;
def funkcija(a_var):&lt;br /&gt;
    print(&amp;quot;funkcijoje a_var =&amp;quot;, a_var)&lt;br /&gt;
    b_var = 100 + a_var&lt;br /&gt;
    d_var = 2 * a_var&lt;br /&gt;
    print(&amp;quot;funkcijoje  b_var =&amp;quot;, b_var)&lt;br /&gt;
    print(&amp;quot;funkcijoje  d_var =&amp;quot;, d_var)&lt;br /&gt;
    print(&amp;quot;funkcijoje  e_var =&amp;quot;, e_var)&lt;br /&gt;
    return b_var + 10&lt;br /&gt;
&lt;br /&gt;
c_var = funkcija(b_var)&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;a_var =&amp;quot;, a_var)&lt;br /&gt;
print(&amp;quot;b_var =&amp;quot;, b_var)&lt;br /&gt;
print(&amp;quot;c_var =&amp;quot;, c_var)&lt;br /&gt;
print(&amp;quot;d_var =&amp;quot;, d_var)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
rezultatas:&lt;br /&gt;
&lt;br /&gt;
 funkcijoje a_var =  15&lt;br /&gt;
 funkcijoje  b_var =  115&lt;br /&gt;
 funkcijoje  d_var =  30&lt;br /&gt;
 funkcijoje  e_var =  25&lt;br /&gt;
 a_var =  10&lt;br /&gt;
 b_var =  15&lt;br /&gt;
 c_var =  125&lt;br /&gt;
 d_var = &lt;br /&gt;
 &lt;br /&gt;
 Klaida (paskutinė aptikta klaida):&lt;br /&gt;
  File &amp;quot;C:\def2.py&amp;quot;, eilutė 19, in &amp;lt;module&amp;gt; (modulyje)&lt;br /&gt;
    print(&amp;quot;d_var = &amp;quot;, d_var)&lt;br /&gt;
 NameError: pavadinimas 'd_var' yra neapibrėžtas&lt;br /&gt;
&lt;br /&gt;
Šiame pavyzdyje kintamieji &amp;lt;code&amp;gt;a_var&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;b_var&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;d_var&amp;lt;/code&amp;gt; yra lokalūs kintamieji priklausantyje funkcijai &amp;lt;code&amp;gt;funkcija()&amp;lt;/code&amp;gt;. Po argumento &amp;lt;code&amp;gt;return b_var + 10&amp;lt;/code&amp;gt; visi jie nustoja egzistuoti. Kintamasis &amp;lt;code&amp;gt; a_var &amp;lt;/code&amp;gt; yra parametro pavadinimas, todėl tai jį automatiškai padaro lokaliu kintamuoju. Kintamieji &amp;lt;code&amp;gt; b_var &amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt; d_var &amp;lt;/code&amp;gt; yra vietiniai kintamieji, nes jie rodomi funkcijos lygybės ženklo kairėje pusėje esančiuose teiginiuose &amp;lt;code&amp;gt; b_var = 100 + a_var &amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt; d_var = 2 * a_var &amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Funkcijos &amp;lt;code&amp;gt; a_var &amp;lt;/code&amp;gt; viduje nėra jai priskirtos vertės. Kai funkcija iškviečiama naudojant &amp;lt;code&amp;gt; c_var = funkcija(b_var) &amp;lt;/code&amp;gt;, 15 priskiriama &amp;lt;code&amp;gt; a_var &amp;lt;/code&amp;gt;, nes tuo metu &amp;lt;code&amp;gt; b_var &amp;lt;/code&amp;gt; yra 15, kai kviečiama funkcija &amp;lt;code&amp;gt; funkcija(15) &amp;lt;/code&amp;gt;. Galiausiai &amp;lt;code&amp;gt; a_var &amp;lt;/code&amp;gt; reikšmė nustatoma į 15, kai jis yra funkcijos &amp;lt;code&amp;gt;funkcija&amp;lt;/code&amp;gt; viduje.&lt;br /&gt;
&lt;br /&gt;
Kaip matai, pasibaigus funkcijai, lokalūs kintamieji &amp;lt;code&amp;gt; a_var &amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt; b_var &amp;lt;/code&amp;gt;, kurie buvo naudojami vietoj globalių kintamųjų dingo. Tada teiginys &amp;lt;code&amp;gt; print (&amp;quot;a_var =&amp;quot;, a_var) &amp;lt;/code&amp;gt; atspausdina reikšmę &amp;lt;code&amp;gt; 10 &amp;lt;/code&amp;gt;, o ne reikšmę &amp;lt;code&amp;gt; 15 &amp;lt;/code&amp;gt; kai dingo lokalus kintamasis, kuris slėpė globalaus kintamojo reikšmę.&lt;br /&gt;
&lt;br /&gt;
Taip pat, atkreipk dėmesį į klaidą &amp;lt;code&amp;gt; NameError &amp;lt;/code&amp;gt;, kuri atsiranda mūsų programos pabaigoje. Tai nutinka, nes kintamasis &amp;lt;code&amp;gt; d_var &amp;lt;/code&amp;gt; nebeegzistuoja nuo tada, kai baigėsi &amp;lt;code&amp;gt;funkcija()&amp;lt;/code&amp;gt;. Išjungus funkciją, visi lokalūs kintamieji ištrinami. Jeigu nori, ką nors gauti iš funkcijos, turėsi naudoti žodį &amp;lt;code&amp;gt;return&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Paskutinis dalykas, į kurį reikia atkreipti dėmesį, yra tai, kad funkcijos viduje &amp;lt;code&amp;gt;e_var&amp;lt;/code&amp;gt; vertė išlieka nepakitusi, nes tai nėra parametras ir jis niekada nerodomas kairėje funkcijos pusėje. &amp;lt;code&amp;gt; a_func &amp;lt;/code&amp;gt;. Kai funkcijos viduje pasiekiamas globalus kintamasis, tai yra išorinis kintamasis esantis už funkcijos ribų.&lt;br /&gt;
&lt;br /&gt;
Funkcijos naudoja lokalius kintamuosius, kurie egzistuoja tik funkcijos viduje, ir gali ignoruoti kitus kintamuosius, kurie yra už funkcijos ribų.&lt;br /&gt;
&lt;br /&gt;
=== Pavyzdžiai ===&lt;br /&gt;
'''temperatūra2.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#! /usr/bin/python&lt;br /&gt;
#-*-coding: utf-8 -*-&lt;br /&gt;
# konvertuoja temperatūrą į Farenheitus ar Celsijų&lt;br /&gt;
 &lt;br /&gt;
def spausdinti_pasirinkimus():&lt;br /&gt;
    print(&amp;quot;Pasirinkimai:&amp;quot;)&lt;br /&gt;
    print(&amp;quot; 'p' spausdinti pasirinkimus&amp;quot;)&lt;br /&gt;
    print(&amp;quot; 'c' konvertuoti iš Celsijaus&amp;quot;)&lt;br /&gt;
    print(&amp;quot; 'f' konvertuoti iš Farenheitų&amp;quot;)&lt;br /&gt;
    print(&amp;quot; 'q' išjungti programą&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
def celsijus_į_farenheitus(c_temp):&lt;br /&gt;
    return 9.0 / 5.0 * c_temp + 32&lt;br /&gt;
 &lt;br /&gt;
def farenheitai_į_celsijų(f_temp):&lt;br /&gt;
    return (f_temp - 32.0) * 5.0 / 9.0&lt;br /&gt;
 &lt;br /&gt;
pasirinkimas = &amp;quot;p&amp;quot;&lt;br /&gt;
while pasirinkimas != &amp;quot;q&amp;quot;:&lt;br /&gt;
    if pasirinkimas == &amp;quot;c&amp;quot;:&lt;br /&gt;
        c_temp = float(input(&amp;quot;Celsijaus temperatūra: &amp;quot;))&lt;br /&gt;
        print(&amp;quot;Farenheitai:&amp;quot;, celsijus_į_farenheitus(c_temp))&lt;br /&gt;
        pasirinkimas = input(&amp;quot;pasirinkimas: &amp;quot;)&lt;br /&gt;
    elif pasirinkimas == &amp;quot;f&amp;quot;:&lt;br /&gt;
        f_temp = float(input(&amp;quot;farenheitai_į_celsijų: &amp;quot;))&lt;br /&gt;
        print(&amp;quot;Celsijus:&amp;quot;, farenheitai_į_celsijų(f_temp))&lt;br /&gt;
        pasirinkimas= input(&amp;quot;option: &amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        pasirinkimas= &amp;quot;p&amp;quot;    #Arba pasirinkimas! = &amp;quot;q&amp;quot;: kad spausdintų&lt;br /&gt;
                        #kai įrašoma, kas nors netikėto&lt;br /&gt;
        spausdinti_pasirinkimus()&lt;br /&gt;
        pasirinkimas = input(&amp;quot;pasirinkimas: &amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kaip tai veikia?:&lt;br /&gt;
&lt;br /&gt;
 Pasirinkimai:&lt;br /&gt;
  'p' spausdinti pasirinkimus&lt;br /&gt;
  'c' konvertuoti iš Celsijaus&lt;br /&gt;
  'f' konvertuoti iš Farenheitų&lt;br /&gt;
  'q' išjungti programą&lt;br /&gt;
 pasirinkimas: '''c'''&lt;br /&gt;
 Celsijaus temperatūra: '''30''' &lt;br /&gt;
 Farenheitai: 86.0&lt;br /&gt;
 pasirinkimas: '''f'''&lt;br /&gt;
 Farenheitų temperatūra: '''60'''&lt;br /&gt;
 Celsijus: 15.5555555556&lt;br /&gt;
 pasirinkimas: '''q'''&lt;br /&gt;
&lt;br /&gt;
'''plotas2.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#! /usr/bin/python&lt;br /&gt;
#-*-coding: utf-8 -*-&lt;br /&gt;
# apskaičiuoja duotą stačiakampio plotą&lt;br /&gt;
&lt;br /&gt;
def pasisveikinimas():&lt;br /&gt;
    print('Labas!')&lt;br /&gt;
 &lt;br /&gt;
def plotas(plotis, aukštis):&lt;br /&gt;
    return plotis * aukštis&lt;br /&gt;
 &lt;br /&gt;
def mano_vardas(vardas):&lt;br /&gt;
    print('Mano vardas yra,', vardas)&lt;br /&gt;
 &lt;br /&gt;
def teigiama_įvestis(sugalvotas_skaičius):&lt;br /&gt;
    skaičius = float(input(sugalvotas_skaičius))&lt;br /&gt;
    while skaičius&amp;lt;= 0:&lt;br /&gt;
        print('Privalo būti teigiamas skaičius')&lt;br /&gt;
        skaičius = float(input(sugalvotas_skaičius))&lt;br /&gt;
    return skaičius&lt;br /&gt;
 &lt;br /&gt;
vardas = input('Tavo vardas: ')&lt;br /&gt;
pasisveikinimas()&lt;br /&gt;
mano_vardas(name)&lt;br /&gt;
print()&lt;br /&gt;
print('Kad rastum stačiakampio plotą,')&lt;br /&gt;
print('įrašyk plotį ir aukštį')&lt;br /&gt;
print()&lt;br /&gt;
w = teigiama_įvestis('Plotis: ')&lt;br /&gt;
h = teigiama_įvestis('Aukštis: ')&lt;br /&gt;
 &lt;br /&gt;
print('Plotis =', w, ' Aukštis =', h, ' Plotas =', area(w, h))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kaip veikia ši programa?&lt;br /&gt;
&lt;br /&gt;
 Tavo vardas: '''Jonas'''&lt;br /&gt;
 Labas!&lt;br /&gt;
 Mano vardas yra Jonas&lt;br /&gt;
 &lt;br /&gt;
 Kad rastum stačiakampio plotą,&lt;br /&gt;
 įrašyk plotį ir aukštį.&lt;br /&gt;
 &lt;br /&gt;
 Plotis: '''-4'''&lt;br /&gt;
 Privalo būti teigiamas skaičius&lt;br /&gt;
 Plotis: '''4'''&lt;br /&gt;
 Aukštis: '''3'''&lt;br /&gt;
 Plotis = 4  Aukštis = 3  Plotas = 12&lt;br /&gt;
&lt;br /&gt;
=== Užduotis ===&lt;br /&gt;
Perrašyk programą plotas2.py, kuri yra aukščiau pateiktame pavyzdyje, kad turėtum atskiras kvadrato, stačiakampio ir apskritimo ploto funkcijas ((&amp;lt;code&amp;gt;3.14 * spindulys**2&amp;lt;/code&amp;gt;). Taip pat šioje programoje turėtų būti sukurtas meniu:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Solution|title=Sprendimas|text=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def kvadratas(L):&lt;br /&gt;
    return L * L&lt;br /&gt;
&lt;br /&gt;
def stačiakampis(aukštis, plotis):&lt;br /&gt;
    return aukštis * plotis&lt;br /&gt;
&lt;br /&gt;
def apskritimas(spindulys):&lt;br /&gt;
    return 3.14159 * spindulys** 2&lt;br /&gt;
&lt;br /&gt;
def opcijos():&lt;br /&gt;
    print()&lt;br /&gt;
    print(&amp;quot;Pasirinkimai:&amp;quot;)&lt;br /&gt;
    print(&amp;quot;s = skaičiuoti kvadrato plotą.&amp;quot;)&lt;br /&gt;
    print(&amp;quot;c = skaičiuoti apskritimo plotą.&amp;quot;)&lt;br /&gt;
    print(&amp;quot;r = skaičiuoti stačiakampio plotą.&amp;quot;)&lt;br /&gt;
    print(&amp;quot;q = išeiti&amp;quot;)&lt;br /&gt;
    print()&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Ši programa apskaičiuos kvadrato, apskritimo ar stačiakampio plotą.&amp;quot;)&lt;br /&gt;
pasirinkimas = &amp;quot;x&amp;quot;&lt;br /&gt;
opcijos()&lt;br /&gt;
while pasirinkimas != &amp;quot;q&amp;quot;:&lt;br /&gt;
    choice = input(&amp;quot;Įrašykite jūsų pasirinkimą: &amp;quot;)&lt;br /&gt;
    if pasirinkimas== &amp;quot;s&amp;quot;:&lt;br /&gt;
        L = float(input(&amp;quot;Kvadrato kraštinės ilgis: &amp;quot;))&lt;br /&gt;
        print(&amp;quot;Šio kvadrato plotas&amp;quot;, kvadratas(L))&lt;br /&gt;
        opcijos()&lt;br /&gt;
    elif pasirinkimas == &amp;quot;c&amp;quot;:&lt;br /&gt;
        spindulys = float(input(&amp;quot;Apskritimo spindulys yra: &amp;quot;))&lt;br /&gt;
        print(&amp;quot;Apskritimo plotas yra&amp;quot;, apskritimas(spindulys))&lt;br /&gt;
        opcijos()&lt;br /&gt;
    elif pasirinkimas == &amp;quot;r&amp;quot;:&lt;br /&gt;
        plotis = float(input(&amp;quot;Stačiakampio plotis: &amp;quot;))&lt;br /&gt;
        aukštis = float(input(&amp;quot;Stačiakampio aukštis: &amp;quot;))&lt;br /&gt;
        print(&amp;quot;Stačiakampio plotas yra&amp;quot;, kvadratas(plotis, aukštis))&lt;br /&gt;
        opcijos()&lt;br /&gt;
    elif pasirinkimas == &amp;quot;q&amp;quot;:&lt;br /&gt;
        print(&amp;quot; &amp;quot;,end=&amp;quot;&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Neatpažintas pasirinkimas.&amp;quot;)&lt;br /&gt;
        opcijos()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Debugging |next=Advanced Functions Example}}&lt;/div&gt;</summary>
		<author><name>Rokas</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Funkcij%C5%B3_apibr%C4%97%C5%BEimas&amp;diff=3547</id>
		<title>Python Vadovėlis/Funkcijų apibrėžimas</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Funkcij%C5%B3_apibr%C4%97%C5%BEimas&amp;diff=3547"/>
		<updated>2021-11-17T07:45:12Z</updated>

		<summary type="html">&lt;p&gt;Rokas: /* Pavyzdžiai */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Funkcijų kūrimas ===&lt;br /&gt;
Prieš pradėdami šį skyrių pateiksime tau pavyzdį, kurio gali nepersirašinėti:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=python&amp;gt;&lt;br /&gt;
a = 23&lt;br /&gt;
b = -23&lt;br /&gt;
&lt;br /&gt;
if a &amp;lt; 0:&lt;br /&gt;
    a = -a&lt;br /&gt;
if b &amp;lt; 0:&lt;br /&gt;
    b = -b&lt;br /&gt;
if a == b:&lt;br /&gt;
    print(&amp;quot;Absoliučios&amp;quot;, a, &amp;quot;ir&amp;quot;, b, &amp;quot;reikšmės yra lygios.&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Absoliučios&amp;quot;, a, &amp;quot;ir&amp;quot;, b, &amp;quot;reikšmės yra skirtingos.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Programos rezultatas:&lt;br /&gt;
 &lt;br /&gt;
 Absoliučios 23 ir 23 reikšmės yra lygios.&lt;br /&gt;
&lt;br /&gt;
Ar neatrogo, kad programa yra šiek tiek pasikartojanti?.. Ir tikriausiai jau numanai, programuotojai nemėgsta pasikartojančių dalykų, nes juk pasikartojantiems dalykams atlikti ir yra sukurti kompiuteriai!! Be to atkreipk dėmesį, kad radus absoliučią reikšmę pasikeitė kintamojo vertė, todėl programa spausdina 23, o ne -23. Mūsų laimei Python leidžia sukurti funkcijas, kurios šalina dubliavimą:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=python&amp;gt;&lt;br /&gt;
a = 23&lt;br /&gt;
b = -23&lt;br /&gt;
&lt;br /&gt;
def absoliuti_reikšmė(n):&lt;br /&gt;
    if n &amp;lt; 0:&lt;br /&gt;
        n = -n&lt;br /&gt;
    return n&lt;br /&gt;
&lt;br /&gt;
if absoliuti_reikšmė(a) == absoliuti_reikšmė(b):&lt;br /&gt;
    print(&amp;quot;Absoliučios&amp;quot;, a, &amp;quot;ir&amp;quot;, b, &amp;quot;reikšmės yra lygios.&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Absoliučios&amp;quot;, a, &amp;quot;ir&amp;quot;, b, &amp;quot;reikšmės yra lygios.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Programos rezultatas:&lt;br /&gt;
&lt;br /&gt;
 Absoliučios 23 ir -23 reikšmės yra lygios.&lt;br /&gt;
&lt;br /&gt;
Pagrindinis šios programos elementas yra žodis &amp;lt;code&amp;gt;def&amp;lt;/code&amp;gt;.  &lt;br /&gt;
&amp;lt;code&amp;gt;def&amp;lt;/code&amp;gt; yra angliško žodžio &amp;lt;code&amp;gt;define&amp;lt;/code&amp;gt;, kuris reiškia apibrėžti, trumpinys, o juo pradedame apibrėžti savo kuriamą funkciją. Po &amp;lt;code&amp;gt;def&amp;lt;/code&amp;gt; eina funkcijos pavadinimas: &amp;lt;code&amp;gt;absoliuti_reikšmė&amp;lt;/code&amp;gt;. Vėliau skliausteliuose eina parametras n - &amp;lt;code&amp;gt;(n)&amp;lt;/code&amp;gt;, kurio reikšmė yra paimama iš programos, kai funkcija yra iškviečiama. Vėliau eina dvitaškis &amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt;, po kurio esantys teiginiai yra vykdomi naudojant šią funkciją. Teiginiai tęsiami tol, kol pasibaigia funkcijoje nurodyti veiksmai arba grąžinamas norimas rezultatas nurodytas po &amp;lt;code&amp;gt;return&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;return&amp;lt;/code&amp;gt; teiginys grąžina reikšmę į vietą, kur buvo iškviesta funkcija, kaip pirmoje mūsų kurtoje programoje rezultatas buvo grąžintas, kur kvietėme &amp;lt;code&amp;gt;print()&amp;lt;/code&amp;gt; funkciją. Na, o dabar galime kurti naujas funkcijas.&lt;br /&gt;
&lt;br /&gt;
Ar pastebėjai, kad &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt; reikšmės nepasikeitė?&lt;br /&gt;
&lt;br /&gt;
Funkcijos gali būti naudojamos kartojant užduotis, kurios negrąžina reikšmių. Štai keli pavyzdžiai:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def labas():&lt;br /&gt;
    print(&amp;quot;Labas&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
def plotas(plotis, aukštis):&lt;br /&gt;
    return plotis * aukštis&lt;br /&gt;
&lt;br /&gt;
def rašyk_mano_vardas(vardas):&lt;br /&gt;
    print(&amp;quot;Mano vardas&amp;quot;, vardas)&lt;br /&gt;
&lt;br /&gt;
labas()&lt;br /&gt;
labas()&lt;br /&gt;
&lt;br /&gt;
rašyk_labas(&amp;quot;Fredas&amp;quot;)&lt;br /&gt;
w = 4&lt;br /&gt;
h = 5&lt;br /&gt;
print(&amp;quot;plotis =&amp;quot;, w, &amp;quot; aukštis=&amp;quot;, h, &amp;quot; plotas=&amp;quot;, plotas(w, h))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
programos rezultatas&lt;br /&gt;
&lt;br /&gt;
 Labas&lt;br /&gt;
 Labas&lt;br /&gt;
 Mano vardas Fredas&lt;br /&gt;
 plotis = 4  aukštis = 5  plotas = 20&lt;br /&gt;
&lt;br /&gt;
Šis pavyzdys parodo ir daugiau dalykų, kuriuos galima padaryti su funkcijomis. Atkreipk dėmesį, kad galima nenaudoti argumentų arba galima naudoti du argumentus, ar daugiau. Šis pavyzdys rodo dar kelis svarbius dalykus, kuriuos galite padaryti naudodami funkcijas. Taip pat atkreipk dėmesį, kad funkcijai nereikia grąžinti vertės - grąžinimas yra neprivalomas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Funkcijos gali būti naudojamos pakartotiniam kodui pašalinti. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Kintamieji funkcijose ===&lt;br /&gt;
Dažnai pasitaiko, kad pasikartojančiam kode yra kintamųjų, todėl į juos reikia atkreipti dėmesį, kai šaliname pakartotiną kodą. Iki šiol visi kintamieji, kuriuos matėme yra globalūs kintamieji, o funkcijose esantys kintamieji yra vadinami specialiu pavadinimu - lokalūs kintamieji. Šie kintamieji egzistuoja tik veikiant funkcijai. Kai lokalus kintamasis turi globalaus kintamojo pavadinimą, tai funkcijoje pirmenybė teikiama ir naudojamas lokalus kintamasis. Skamba painiai? Štai keli pavyzdžiai:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
a = 4&lt;br /&gt;
 &lt;br /&gt;
def manoFunkcija():&lt;br /&gt;
    a = 17&lt;br /&gt;
    print(&amp;quot;Mano funkcijoje a =&amp;quot;, a)&lt;br /&gt;
&lt;br /&gt;
manoFunkcija()&lt;br /&gt;
print(&amp;quot;a = &amp;quot;, a)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Gaunamas rezultatas&lt;br /&gt;
 Mano funkcijoje a = 17&lt;br /&gt;
 a = 4&lt;br /&gt;
&lt;br /&gt;
Kaip matai pavyzdyje, funkcijos viduje esantis kintamasis nepaiso globalaus kintamojo, nes ji egzistuoja tik funkcijos viduje. Taip pat, turėjai pastebėti, kas funkcijos viduje kintamajam &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; buvo priskirta nauja reikšmė, bet ji buvo aktuali tik funkcijoje, o ne už jos ribų - globalus kintamasis &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; liko nepakitęs.&lt;br /&gt;
&lt;br /&gt;
Kitas kiek sudėtingesnis kodo pavyzdys:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
a_var = 10&lt;br /&gt;
b_var = 15&lt;br /&gt;
e_var = 25&lt;br /&gt;
&lt;br /&gt;
def funkcija(a_var):&lt;br /&gt;
    print(&amp;quot;funkcijoje a_var =&amp;quot;, a_var)&lt;br /&gt;
    b_var = 100 + a_var&lt;br /&gt;
    d_var = 2 * a_var&lt;br /&gt;
    print(&amp;quot;funkcijoje  b_var =&amp;quot;, b_var)&lt;br /&gt;
    print(&amp;quot;funkcijoje  d_var =&amp;quot;, d_var)&lt;br /&gt;
    print(&amp;quot;funkcijoje  e_var =&amp;quot;, e_var)&lt;br /&gt;
    return b_var + 10&lt;br /&gt;
&lt;br /&gt;
c_var = funkcija(b_var)&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;a_var =&amp;quot;, a_var)&lt;br /&gt;
print(&amp;quot;b_var =&amp;quot;, b_var)&lt;br /&gt;
print(&amp;quot;c_var =&amp;quot;, c_var)&lt;br /&gt;
print(&amp;quot;d_var =&amp;quot;, d_var)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
rezultatas:&lt;br /&gt;
&lt;br /&gt;
 funkcijoje a_var =  15&lt;br /&gt;
 funkcijoje  b_var =  115&lt;br /&gt;
 funkcijoje  d_var =  30&lt;br /&gt;
 funkcijoje  e_var =  25&lt;br /&gt;
 a_var =  10&lt;br /&gt;
 b_var =  15&lt;br /&gt;
 c_var =  125&lt;br /&gt;
 d_var = &lt;br /&gt;
 &lt;br /&gt;
 Klaida (paskutinė aptikta klaida):&lt;br /&gt;
  File &amp;quot;C:\def2.py&amp;quot;, eilutė 19, in &amp;lt;module&amp;gt; (modulyje)&lt;br /&gt;
    print(&amp;quot;d_var = &amp;quot;, d_var)&lt;br /&gt;
 NameError: pavadinimas 'd_var' yra neapibrėžtas&lt;br /&gt;
&lt;br /&gt;
Šiame pavyzdyje kintamieji &amp;lt;code&amp;gt;a_var&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;b_var&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;d_var&amp;lt;/code&amp;gt; yra lokalūs kintamieji priklausantyje funkcijai &amp;lt;code&amp;gt;funkcija()&amp;lt;/code&amp;gt;. Po argumento &amp;lt;code&amp;gt;return b_var + 10&amp;lt;/code&amp;gt; visi jie nustoja egzistuoti. Kintamasis &amp;lt;code&amp;gt; a_var &amp;lt;/code&amp;gt; yra parametro pavadinimas, todėl tai jį automatiškai padaro lokaliu kintamuoju. Kintamieji &amp;lt;code&amp;gt; b_var &amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt; d_var &amp;lt;/code&amp;gt; yra vietiniai kintamieji, nes jie rodomi funkcijos lygybės ženklo kairėje pusėje esančiuose teiginiuose &amp;lt;code&amp;gt; b_var = 100 + a_var &amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt; d_var = 2 * a_var &amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Funkcijos &amp;lt;code&amp;gt; a_var &amp;lt;/code&amp;gt; viduje nėra jai priskirtos vertės. Kai funkcija iškviečiama naudojant &amp;lt;code&amp;gt; c_var = funkcija(b_var) &amp;lt;/code&amp;gt;, 15 priskiriama &amp;lt;code&amp;gt; a_var &amp;lt;/code&amp;gt;, nes tuo metu &amp;lt;code&amp;gt; b_var &amp;lt;/code&amp;gt; yra 15, kai kviečiama funkcija &amp;lt;code&amp;gt; funkcija(15) &amp;lt;/code&amp;gt;. Galiausiai &amp;lt;code&amp;gt; a_var &amp;lt;/code&amp;gt; reikšmė nustatoma į 15, kai jis yra funkcijos &amp;lt;code&amp;gt;funkcija&amp;lt;/code&amp;gt; viduje.&lt;br /&gt;
&lt;br /&gt;
Kaip matai, pasibaigus funkcijai, lokalūs kintamieji &amp;lt;code&amp;gt; a_var &amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt; b_var &amp;lt;/code&amp;gt;, kurie buvo naudojami vietoj globalių kintamųjų dingo. Tada teiginys &amp;lt;code&amp;gt; print (&amp;quot;a_var =&amp;quot;, a_var) &amp;lt;/code&amp;gt; atspausdina reikšmę &amp;lt;code&amp;gt; 10 &amp;lt;/code&amp;gt;, o ne reikšmę &amp;lt;code&amp;gt; 15 &amp;lt;/code&amp;gt; kai dingo lokalus kintamasis, kuris slėpė globalaus kintamojo reikšmę.&lt;br /&gt;
&lt;br /&gt;
Taip pat, atkreipk dėmesį į klaidą &amp;lt;code&amp;gt; NameError &amp;lt;/code&amp;gt;, kuri atsiranda mūsų programos pabaigoje. Tai nutinka, nes kintamasis &amp;lt;code&amp;gt; d_var &amp;lt;/code&amp;gt; nebeegzistuoja nuo tada, kai baigėsi &amp;lt;code&amp;gt;funkcija()&amp;lt;/code&amp;gt;. Išjungus funkciją, visi lokalūs kintamieji ištrinami. Jeigu nori, ką nors gauti iš funkcijos, turėsi naudoti žodį &amp;lt;code&amp;gt;return&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Paskutinis dalykas, į kurį reikia atkreipti dėmesį, yra tai, kad funkcijos viduje &amp;lt;code&amp;gt;e_var&amp;lt;/code&amp;gt; vertė išlieka nepakitusi, nes tai nėra parametras ir jis niekada nerodomas kairėje funkcijos pusėje. &amp;lt;code&amp;gt; a_func &amp;lt;/code&amp;gt;. Kai funkcijos viduje pasiekiamas globalus kintamasis, tai yra išorinis kintamasis esantis už funkcijos ribų.&lt;br /&gt;
&lt;br /&gt;
Funkcijos naudoja lokalius kintamuosius, kurie egzistuoja tik funkcijos viduje, ir gali ignoruoti kitus kintamuosius, kurie yra už funkcijos ribų.&lt;br /&gt;
&lt;br /&gt;
=== Pavyzdžiai ===&lt;br /&gt;
'''temperatūra2.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#! /usr/bin/python&lt;br /&gt;
#-*-coding: utf-8 -*-&lt;br /&gt;
# konvertuoja temperatūrą į Farenheitus ar Celsijų&lt;br /&gt;
 &lt;br /&gt;
def spausdinti_pasirinkimus():&lt;br /&gt;
    print(&amp;quot;Pasirinkimai:&amp;quot;)&lt;br /&gt;
    print(&amp;quot; 'p' spausdinti pasirinkimus&amp;quot;)&lt;br /&gt;
    print(&amp;quot; 'c' konvertuoti iš Celsijaus&amp;quot;)&lt;br /&gt;
    print(&amp;quot; 'f' konvertuoti iš Farenheitų&amp;quot;)&lt;br /&gt;
    print(&amp;quot; 'q' išjungti programą&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
def celsijus_į_farenheitus(c_temp):&lt;br /&gt;
    return 9.0 / 5.0 * c_temp + 32&lt;br /&gt;
 &lt;br /&gt;
def farenheitai_į_celsijų(f_temp):&lt;br /&gt;
    return (f_temp - 32.0) * 5.0 / 9.0&lt;br /&gt;
 &lt;br /&gt;
pasirinkimas = &amp;quot;p&amp;quot;&lt;br /&gt;
while pasirinkimas != &amp;quot;q&amp;quot;:&lt;br /&gt;
    if pasirinkimas == &amp;quot;c&amp;quot;:&lt;br /&gt;
        c_temp = float(input(&amp;quot;Celsijaus temperatūra: &amp;quot;))&lt;br /&gt;
        print(&amp;quot;Farenheitai:&amp;quot;, celsijus_į_farenheitus(c_temp))&lt;br /&gt;
        pasirinkimas = input(&amp;quot;pasirinkimas: &amp;quot;)&lt;br /&gt;
    elif pasirinkimas == &amp;quot;f&amp;quot;:&lt;br /&gt;
        f_temp = float(input(&amp;quot;farenheitai_į_celsijų: &amp;quot;))&lt;br /&gt;
        print(&amp;quot;Celsijus:&amp;quot;, farenheitai_į_celsijų(f_temp))&lt;br /&gt;
        pasirinkimas= input(&amp;quot;option: &amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        pasirinkimas= &amp;quot;p&amp;quot;    #Arba pasirinkimas! = &amp;quot;q&amp;quot;: kad spausdintų&lt;br /&gt;
                        #kai įrašoma, kas nors netikėto&lt;br /&gt;
        spausdinti_pasirinkimus()&lt;br /&gt;
        pasirinkimas = input(&amp;quot;pasirinkimas: &amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kaip tai veikia?:&lt;br /&gt;
&lt;br /&gt;
 Pasirinkimai:&lt;br /&gt;
  'p' spausdinti pasirinkimus&lt;br /&gt;
  'c' konvertuoti iš Celsijaus&lt;br /&gt;
  'f' konvertuoti iš Farenheitų&lt;br /&gt;
  'q' išjungti programą&lt;br /&gt;
 pasirinkimas: '''c'''&lt;br /&gt;
 Celsijaus temperatūra: '''30''' &lt;br /&gt;
 Farenheitai: 86.0&lt;br /&gt;
 pasirinkimas: '''f'''&lt;br /&gt;
 Farenheitų temperatūra: '''60'''&lt;br /&gt;
 Celsijus: 15.5555555556&lt;br /&gt;
 pasirinkimas: '''q'''&lt;br /&gt;
&lt;br /&gt;
'''plotas2.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#! /usr/bin/python&lt;br /&gt;
#-*-coding: utf-8 -*-&lt;br /&gt;
# apskaičiuoja duotą stačiakampio plotą&lt;br /&gt;
&lt;br /&gt;
def pasisveikinimas():&lt;br /&gt;
    print('Labas!')&lt;br /&gt;
 &lt;br /&gt;
def plotas(plotis, aukštis):&lt;br /&gt;
    return plotis * aukštis&lt;br /&gt;
 &lt;br /&gt;
def mano_vardas(vardas):&lt;br /&gt;
    print('Mano vardas yra,', vardas)&lt;br /&gt;
 &lt;br /&gt;
def teigiama_įvestis(sugalvotas_skaičius):&lt;br /&gt;
    skaičius = float(input(sugalvotas_skaičius))&lt;br /&gt;
    while skaičius&amp;lt;= 0:&lt;br /&gt;
        print('Privalo būti teigiamas skaičius')&lt;br /&gt;
        skaičius = float(input(sugalvotas_skaičius))&lt;br /&gt;
    return skaičius&lt;br /&gt;
 &lt;br /&gt;
vardas = input('Tavo vardas: ')&lt;br /&gt;
pasisveikinimas()&lt;br /&gt;
mano_vardas(name)&lt;br /&gt;
print()&lt;br /&gt;
print('Kad rastum stačiakampio plotą,')&lt;br /&gt;
print('įrašyk plotį ir aukštį')&lt;br /&gt;
print()&lt;br /&gt;
w = teigiama_įvestis('Plotis: ')&lt;br /&gt;
h = teigiama_įvestis('Aukštis: ')&lt;br /&gt;
 &lt;br /&gt;
print('Plotis =', w, ' Aukštis =', h, ' Plotas =', area(w, h))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kaip veikia ši programa?&lt;br /&gt;
&lt;br /&gt;
 Tavo vardas: '''Jonas'''&lt;br /&gt;
 Labas!&lt;br /&gt;
 Mano vardas yra Jonas&lt;br /&gt;
 &lt;br /&gt;
 Kad rastum stačiakampio plotą,&lt;br /&gt;
 įrašyk plotį ir aukštį.&lt;br /&gt;
 &lt;br /&gt;
 Plotis: '''-4'''&lt;br /&gt;
 Privalo būti teigiamas skaičius&lt;br /&gt;
 Plotis: '''4'''&lt;br /&gt;
 Aukštis: '''3'''&lt;br /&gt;
 Plotis = 4  Aukštis = 3  Plotas = 12&lt;br /&gt;
&lt;br /&gt;
=== Užduotis ===&lt;br /&gt;
Perrašyk programą plotas2.py, kuri yra aukščiau pateiktame pavyzdyje, kad turėtum atskirą kvadrato, stačiakampio ir apskritimo ploto funkcijas ((&amp;lt;code&amp;gt;3.14 * spindulys**2&amp;lt;/code&amp;gt;). Taip pat šioje programoje turėtų būti meniu:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Solution|title=Sprendimas|text=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def kvadratas(L):&lt;br /&gt;
    return L * L&lt;br /&gt;
&lt;br /&gt;
def stačiakampis(aukštis, plotis):&lt;br /&gt;
    return aukštis * plotis&lt;br /&gt;
&lt;br /&gt;
def apskritimas(spindulys):&lt;br /&gt;
    return 3.14159 * spindulys** 2&lt;br /&gt;
&lt;br /&gt;
def opcijos():&lt;br /&gt;
    print()&lt;br /&gt;
    print(&amp;quot;Pasirinkimai:&amp;quot;)&lt;br /&gt;
    print(&amp;quot;s = skaičiuoti kvadrato plotą.&amp;quot;)&lt;br /&gt;
    print(&amp;quot;c = skaičiuoti apskritimo plotą.&amp;quot;)&lt;br /&gt;
    print(&amp;quot;r = skaičiuoti stačiakampio plotą.&amp;quot;)&lt;br /&gt;
    print(&amp;quot;q = išeiti&amp;quot;)&lt;br /&gt;
    print()&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Ši programa apskaičiuos kvadrato, apskritimo ar stačiakampio plotą.&amp;quot;)&lt;br /&gt;
pasirinkimas = &amp;quot;x&amp;quot;&lt;br /&gt;
opcijos()&lt;br /&gt;
while pasirinkimas != &amp;quot;q&amp;quot;:&lt;br /&gt;
    choice = input(&amp;quot;Įrašykite jūsų pasirinkimą: &amp;quot;)&lt;br /&gt;
    if pasirinkimas== &amp;quot;s&amp;quot;:&lt;br /&gt;
        L = float(input(&amp;quot;Kvadrato kraštinės ilgis: &amp;quot;))&lt;br /&gt;
        print(&amp;quot;Šio kvadrato plotas&amp;quot;, kvadratas(L))&lt;br /&gt;
        opcijos()&lt;br /&gt;
    elif pasirinkimas == &amp;quot;c&amp;quot;:&lt;br /&gt;
        spindulys = float(input(&amp;quot;Apskritimo spindulys yra: &amp;quot;))&lt;br /&gt;
        print(&amp;quot;Apskritimo plotas yra&amp;quot;, apskritimas(spindulys))&lt;br /&gt;
        opcijos()&lt;br /&gt;
    elif pasirinkimas == &amp;quot;r&amp;quot;:&lt;br /&gt;
        plotis = float(input(&amp;quot;Stačiakampio plotis: &amp;quot;))&lt;br /&gt;
        aukštis = float(input(&amp;quot;Stačiakampio aukštis: &amp;quot;))&lt;br /&gt;
        print(&amp;quot;Stačiakampio plotas yra&amp;quot;, kvadratas(plotis, aukštis))&lt;br /&gt;
        opcijos()&lt;br /&gt;
    elif pasirinkimas == &amp;quot;q&amp;quot;:&lt;br /&gt;
        print(&amp;quot; &amp;quot;,end=&amp;quot;&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Neatpažintas pasirinkimas.&amp;quot;)&lt;br /&gt;
        opcijos()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Debugging |next=Advanced Functions Example}}&lt;/div&gt;</summary>
		<author><name>Rokas</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Funkcij%C5%B3_apibr%C4%97%C5%BEimas&amp;diff=3545</id>
		<title>Python Vadovėlis/Funkcijų apibrėžimas</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Funkcij%C5%B3_apibr%C4%97%C5%BEimas&amp;diff=3545"/>
		<updated>2021-11-17T07:03:03Z</updated>

		<summary type="html">&lt;p&gt;Rokas: /* Kintamieji funkcijose */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Funkcijų kūrimas ===&lt;br /&gt;
Prieš pradėdami šį skyrių pateiksime tau pavyzdį, kurio gali nepersirašinėti:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=python&amp;gt;&lt;br /&gt;
a = 23&lt;br /&gt;
b = -23&lt;br /&gt;
&lt;br /&gt;
if a &amp;lt; 0:&lt;br /&gt;
    a = -a&lt;br /&gt;
if b &amp;lt; 0:&lt;br /&gt;
    b = -b&lt;br /&gt;
if a == b:&lt;br /&gt;
    print(&amp;quot;Absoliučios&amp;quot;, a, &amp;quot;ir&amp;quot;, b, &amp;quot;reikšmės yra lygios.&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Absoliučios&amp;quot;, a, &amp;quot;ir&amp;quot;, b, &amp;quot;reikšmės yra skirtingos.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Programos rezultatas:&lt;br /&gt;
 &lt;br /&gt;
 Absoliučios 23 ir 23 reikšmės yra lygios.&lt;br /&gt;
&lt;br /&gt;
Ar neatrogo, kad programa yra šiek tiek pasikartojanti?.. Ir tikriausiai jau numanai, programuotojai nemėgsta pasikartojančių dalykų, nes juk pasikartojantiems dalykams atlikti ir yra sukurti kompiuteriai!! Be to atkreipk dėmesį, kad radus absoliučią reikšmę pasikeitė kintamojo vertė, todėl programa spausdina 23, o ne -23. Mūsų laimei Python leidžia sukurti funkcijas, kurios šalina dubliavimą:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=python&amp;gt;&lt;br /&gt;
a = 23&lt;br /&gt;
b = -23&lt;br /&gt;
&lt;br /&gt;
def absoliuti_reikšmė(n):&lt;br /&gt;
    if n &amp;lt; 0:&lt;br /&gt;
        n = -n&lt;br /&gt;
    return n&lt;br /&gt;
&lt;br /&gt;
if absoliuti_reikšmė(a) == absoliuti_reikšmė(b):&lt;br /&gt;
    print(&amp;quot;Absoliučios&amp;quot;, a, &amp;quot;ir&amp;quot;, b, &amp;quot;reikšmės yra lygios.&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Absoliučios&amp;quot;, a, &amp;quot;ir&amp;quot;, b, &amp;quot;reikšmės yra lygios.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Programos rezultatas:&lt;br /&gt;
&lt;br /&gt;
 Absoliučios 23 ir -23 reikšmės yra lygios.&lt;br /&gt;
&lt;br /&gt;
Pagrindinis šios programos elementas yra žodis &amp;lt;code&amp;gt;def&amp;lt;/code&amp;gt;.  &lt;br /&gt;
&amp;lt;code&amp;gt;def&amp;lt;/code&amp;gt; yra angliško žodžio &amp;lt;code&amp;gt;define&amp;lt;/code&amp;gt;, kuris reiškia apibrėžti, trumpinys, o juo pradedame apibrėžti savo kuriamą funkciją. Po &amp;lt;code&amp;gt;def&amp;lt;/code&amp;gt; eina funkcijos pavadinimas: &amp;lt;code&amp;gt;absoliuti_reikšmė&amp;lt;/code&amp;gt;. Vėliau skliausteliuose eina parametras n - &amp;lt;code&amp;gt;(n)&amp;lt;/code&amp;gt;, kurio reikšmė yra paimama iš programos, kai funkcija yra iškviečiama. Vėliau eina dvitaškis &amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt;, po kurio esantys teiginiai yra vykdomi naudojant šią funkciją. Teiginiai tęsiami tol, kol pasibaigia funkcijoje nurodyti veiksmai arba grąžinamas norimas rezultatas nurodytas po &amp;lt;code&amp;gt;return&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;return&amp;lt;/code&amp;gt; teiginys grąžina reikšmę į vietą, kur buvo iškviesta funkcija, kaip pirmoje mūsų kurtoje programoje rezultatas buvo grąžintas, kur kvietėme &amp;lt;code&amp;gt;print()&amp;lt;/code&amp;gt; funkciją. Na, o dabar galime kurti naujas funkcijas.&lt;br /&gt;
&lt;br /&gt;
Ar pastebėjai, kad &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt; reikšmės nepasikeitė?&lt;br /&gt;
&lt;br /&gt;
Funkcijos gali būti naudojamos kartojant užduotis, kurios negrąžina reikšmių. Štai keli pavyzdžiai:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def labas():&lt;br /&gt;
    print(&amp;quot;Labas&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
def plotas(plotis, aukštis):&lt;br /&gt;
    return plotis * aukštis&lt;br /&gt;
&lt;br /&gt;
def rašyk_mano_vardas(vardas):&lt;br /&gt;
    print(&amp;quot;Mano vardas&amp;quot;, vardas)&lt;br /&gt;
&lt;br /&gt;
labas()&lt;br /&gt;
labas()&lt;br /&gt;
&lt;br /&gt;
rašyk_labas(&amp;quot;Fredas&amp;quot;)&lt;br /&gt;
w = 4&lt;br /&gt;
h = 5&lt;br /&gt;
print(&amp;quot;plotis =&amp;quot;, w, &amp;quot; aukštis=&amp;quot;, h, &amp;quot; plotas=&amp;quot;, plotas(w, h))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
programos rezultatas&lt;br /&gt;
&lt;br /&gt;
 Labas&lt;br /&gt;
 Labas&lt;br /&gt;
 Mano vardas Fredas&lt;br /&gt;
 plotis = 4  aukštis = 5  plotas = 20&lt;br /&gt;
&lt;br /&gt;
Šis pavyzdys parodo ir daugiau dalykų, kuriuos galima padaryti su funkcijomis. Atkreipk dėmesį, kad galima nenaudoti argumentų arba galima naudoti du argumentus, ar daugiau. Šis pavyzdys rodo dar kelis svarbius dalykus, kuriuos galite padaryti naudodami funkcijas. Taip pat atkreipk dėmesį, kad funkcijai nereikia grąžinti vertės - grąžinimas yra neprivalomas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Funkcijos gali būti naudojamos pakartotiniam kodui pašalinti. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Kintamieji funkcijose ===&lt;br /&gt;
Dažnai pasitaiko, kad pasikartojančiam kode yra kintamųjų, todėl į juos reikia atkreipti dėmesį, kai šaliname pakartotiną kodą. Iki šiol visi kintamieji, kuriuos matėme yra globalūs kintamieji, o funkcijose esantys kintamieji yra vadinami specialiu pavadinimu - lokalūs kintamieji. Šie kintamieji egzistuoja tik veikiant funkcijai. Kai lokalus kintamasis turi globalaus kintamojo pavadinimą, tai funkcijoje pirmenybė teikiama ir naudojamas lokalus kintamasis. Skamba painiai? Štai keli pavyzdžiai:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
a = 4&lt;br /&gt;
 &lt;br /&gt;
def manoFunkcija():&lt;br /&gt;
    a = 17&lt;br /&gt;
    print(&amp;quot;Mano funkcijoje a =&amp;quot;, a)&lt;br /&gt;
&lt;br /&gt;
manoFunkcija()&lt;br /&gt;
print(&amp;quot;a = &amp;quot;, a)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Gaunamas rezultatas&lt;br /&gt;
 Mano funkcijoje a = 17&lt;br /&gt;
 a = 4&lt;br /&gt;
&lt;br /&gt;
Kaip matai pavyzdyje, funkcijos viduje esantis kintamasis nepaiso globalaus kintamojo, nes ji egzistuoja tik funkcijos viduje. Taip pat, turėjai pastebėti, kas funkcijos viduje kintamajam &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; buvo priskirta nauja reikšmė, bet ji buvo aktuali tik funkcijoje, o ne už jos ribų - globalus kintamasis &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; liko nepakitęs.&lt;br /&gt;
&lt;br /&gt;
Kitas kiek sudėtingesnis kodo pavyzdys:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
a_var = 10&lt;br /&gt;
b_var = 15&lt;br /&gt;
e_var = 25&lt;br /&gt;
&lt;br /&gt;
def funkcija(a_var):&lt;br /&gt;
    print(&amp;quot;funkcijoje a_var =&amp;quot;, a_var)&lt;br /&gt;
    b_var = 100 + a_var&lt;br /&gt;
    d_var = 2 * a_var&lt;br /&gt;
    print(&amp;quot;funkcijoje  b_var =&amp;quot;, b_var)&lt;br /&gt;
    print(&amp;quot;funkcijoje  d_var =&amp;quot;, d_var)&lt;br /&gt;
    print(&amp;quot;funkcijoje  e_var =&amp;quot;, e_var)&lt;br /&gt;
    return b_var + 10&lt;br /&gt;
&lt;br /&gt;
c_var = funkcija(b_var)&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;a_var =&amp;quot;, a_var)&lt;br /&gt;
print(&amp;quot;b_var =&amp;quot;, b_var)&lt;br /&gt;
print(&amp;quot;c_var =&amp;quot;, c_var)&lt;br /&gt;
print(&amp;quot;d_var =&amp;quot;, d_var)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
rezultatas:&lt;br /&gt;
&lt;br /&gt;
 funkcijoje a_var =  15&lt;br /&gt;
 funkcijoje  b_var =  115&lt;br /&gt;
 funkcijoje  d_var =  30&lt;br /&gt;
 funkcijoje  e_var =  25&lt;br /&gt;
 a_var =  10&lt;br /&gt;
 b_var =  15&lt;br /&gt;
 c_var =  125&lt;br /&gt;
 d_var = &lt;br /&gt;
 &lt;br /&gt;
 Klaida (paskutinė aptikta klaida):&lt;br /&gt;
  File &amp;quot;C:\def2.py&amp;quot;, eilutė 19, in &amp;lt;module&amp;gt; (modulyje)&lt;br /&gt;
    print(&amp;quot;d_var = &amp;quot;, d_var)&lt;br /&gt;
 NameError: pavadinimas 'd_var' yra neapibrėžtas&lt;br /&gt;
&lt;br /&gt;
Šiame pavyzdyje kintamieji &amp;lt;code&amp;gt;a_var&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;b_var&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;d_var&amp;lt;/code&amp;gt; yra lokalūs kintamieji priklausantyje funkcijai &amp;lt;code&amp;gt;funkcija()&amp;lt;/code&amp;gt;. Po argumento &amp;lt;code&amp;gt;return b_var + 10&amp;lt;/code&amp;gt; visi jie nustoja egzistuoti. Kintamasis &amp;lt;code&amp;gt; a_var &amp;lt;/code&amp;gt; yra parametro pavadinimas, todėl tai jį automatiškai padaro lokaliu kintamuoju. Kintamieji &amp;lt;code&amp;gt; b_var &amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt; d_var &amp;lt;/code&amp;gt; yra vietiniai kintamieji, nes jie rodomi funkcijos lygybės ženklo kairėje pusėje esančiuose teiginiuose &amp;lt;code&amp;gt; b_var = 100 + a_var &amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt; d_var = 2 * a_var &amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Funkcijos &amp;lt;code&amp;gt; a_var &amp;lt;/code&amp;gt; viduje nėra jai priskirtos vertės. Kai funkcija iškviečiama naudojant &amp;lt;code&amp;gt; c_var = funkcija(b_var) &amp;lt;/code&amp;gt;, 15 priskiriama &amp;lt;code&amp;gt; a_var &amp;lt;/code&amp;gt;, nes tuo metu &amp;lt;code&amp;gt; b_var &amp;lt;/code&amp;gt; yra 15, kai kviečiama funkcija &amp;lt;code&amp;gt; funkcija(15) &amp;lt;/code&amp;gt;. Galiausiai &amp;lt;code&amp;gt; a_var &amp;lt;/code&amp;gt; reikšmė nustatoma į 15, kai jis yra funkcijos &amp;lt;code&amp;gt;funkcija&amp;lt;/code&amp;gt; viduje.&lt;br /&gt;
&lt;br /&gt;
Kaip matai, pasibaigus funkcijai, lokalūs kintamieji &amp;lt;code&amp;gt; a_var &amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt; b_var &amp;lt;/code&amp;gt;, kurie buvo naudojami vietoj globalių kintamųjų dingo. Tada teiginys &amp;lt;code&amp;gt; print (&amp;quot;a_var =&amp;quot;, a_var) &amp;lt;/code&amp;gt; atspausdina reikšmę &amp;lt;code&amp;gt; 10 &amp;lt;/code&amp;gt;, o ne reikšmę &amp;lt;code&amp;gt; 15 &amp;lt;/code&amp;gt; kai dingo lokalus kintamasis, kuris slėpė globalaus kintamojo reikšmę.&lt;br /&gt;
&lt;br /&gt;
Taip pat, atkreipk dėmesį į klaidą &amp;lt;code&amp;gt; NameError &amp;lt;/code&amp;gt;, kuri atsiranda mūsų programos pabaigoje. Tai nutinka, nes kintamasis &amp;lt;code&amp;gt; d_var &amp;lt;/code&amp;gt; nebeegzistuoja nuo tada, kai baigėsi &amp;lt;code&amp;gt;funkcija()&amp;lt;/code&amp;gt;. Išjungus funkciją, visi lokalūs kintamieji ištrinami. Jeigu nori, ką nors gauti iš funkcijos, turėsi naudoti žodį &amp;lt;code&amp;gt;return&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Paskutinis dalykas, į kurį reikia atkreipti dėmesį, yra tai, kad funkcijos viduje &amp;lt;code&amp;gt;e_var&amp;lt;/code&amp;gt; vertė išlieka nepakitusi, nes tai nėra parametras ir jis niekada nerodomas kairėje funkcijos pusėje. &amp;lt;code&amp;gt; a_func &amp;lt;/code&amp;gt;. Kai funkcijos viduje pasiekiamas globalus kintamasis, tai yra išorinis kintamasis esantis už funkcijos ribų.&lt;br /&gt;
&lt;br /&gt;
Funkcijos naudoja lokalius kintamuosius, kurie egzistuoja tik funkcijos viduje, ir gali ignoruoti kitus kintamuosius, kurie yra už funkcijos ribų.&lt;br /&gt;
&lt;br /&gt;
=== Pavyzdžiai ===&lt;br /&gt;
'''temperatūra2.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#! /usr/bin/python&lt;br /&gt;
#-*-coding: utf-8 -*-&lt;br /&gt;
# konvertuoja temperatūrą į Farenheitus ar Celsijų&lt;br /&gt;
 &lt;br /&gt;
def spausdinti_pasirinkimus():&lt;br /&gt;
    print(&amp;quot;Pasirinkimai:&amp;quot;)&lt;br /&gt;
    print(&amp;quot; 'p' spausdinti pasirinkimus&amp;quot;)&lt;br /&gt;
    print(&amp;quot; 'c' konvertuoti iš Celsijaus&amp;quot;)&lt;br /&gt;
    print(&amp;quot; 'f' konvertuoti iš Farenheitų&amp;quot;)&lt;br /&gt;
    print(&amp;quot; 'q' išjungti programą&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
def celsijus_i_farenheitus(c_temp):&lt;br /&gt;
    return 9.0 / 5.0 * c_temp + 32&lt;br /&gt;
 &lt;br /&gt;
def farenheitai_i_celsiju(f_temp):&lt;br /&gt;
    return (f_temp - 32.0) * 5.0 / 9.0&lt;br /&gt;
 &lt;br /&gt;
pasirinkimas = &amp;quot;p&amp;quot;&lt;br /&gt;
while pasirinkimas != &amp;quot;q&amp;quot;:&lt;br /&gt;
    if pasirinkimas == &amp;quot;c&amp;quot;:&lt;br /&gt;
        c_temp = float(input(&amp;quot;Celsijaus temperatūra: &amp;quot;))&lt;br /&gt;
        print(&amp;quot;Farenheitai:&amp;quot;, celsijus_i_farenheitus(c_temp))&lt;br /&gt;
        pasirinkimas = input(&amp;quot;pasirinkimas: &amp;quot;)&lt;br /&gt;
    elif pasirinkimas == &amp;quot;f&amp;quot;:&lt;br /&gt;
        f_temp = float(input(&amp;quot;farenheitai_i_celsiju: &amp;quot;))&lt;br /&gt;
        print(&amp;quot;Celsijus:&amp;quot;, fahrenheit_to_celsius(f_temp))&lt;br /&gt;
        pasirinkimas= input(&amp;quot;option: &amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        pasirinkimas= &amp;quot;p&amp;quot;    #Arba pasirinkimas! = &amp;quot;q&amp;quot;: kad spausdintų&lt;br /&gt;
                        #kai įrašoma, kas nors netikėto&lt;br /&gt;
        spausdinti_pasirinkimus()&lt;br /&gt;
        pasirinkimas = input(&amp;quot;pasirinkimas: &amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kaip tai veikia?:&lt;br /&gt;
&lt;br /&gt;
 Pasirinkimai:&lt;br /&gt;
  'p' spausdinti pasirinkimus&lt;br /&gt;
  'c' konvertuoti iš Celsijaus&lt;br /&gt;
  'f' konvertuoti iš Farenheitų&lt;br /&gt;
  'q' išjungti programą&lt;br /&gt;
 pasirinkimas: '''c'''&lt;br /&gt;
 Celsijaus temperatūra: '''30''' &lt;br /&gt;
 Farenheitai: 86.0&lt;br /&gt;
 pasirinkimas: '''f'''&lt;br /&gt;
 Farenheitų temperatūra: '''60'''&lt;br /&gt;
 Celsijus: 15.5555555556&lt;br /&gt;
 pasirinkimas: '''q'''&lt;br /&gt;
&lt;br /&gt;
'''plotas2.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#! /usr/bin/python&lt;br /&gt;
#-*-coding: utf-8 -*-&lt;br /&gt;
# apskaičiuoja duotą stačiakampio plotą&lt;br /&gt;
&lt;br /&gt;
def pasisveikinimas():&lt;br /&gt;
    print('Labas!')&lt;br /&gt;
 &lt;br /&gt;
def plotas(plotis, aukštis):&lt;br /&gt;
    return plotis * aukštis&lt;br /&gt;
 &lt;br /&gt;
def mano_vardas(vardas):&lt;br /&gt;
    print('Mano vardas yra,', vardas)&lt;br /&gt;
 &lt;br /&gt;
def teigiama_įvestis(sugalvotas_skaičius):&lt;br /&gt;
    skaičius = float(input(sugalvotas_skaičius))&lt;br /&gt;
    while skaičius&amp;lt;= 0:&lt;br /&gt;
        print('Privalo būti teigiamas skaičius')&lt;br /&gt;
        skaičius = float(input(sugalvotas_skaičius))&lt;br /&gt;
    return skaičius&lt;br /&gt;
 &lt;br /&gt;
vardas = input('Tavo vardas: ')&lt;br /&gt;
pasisveikinimas()&lt;br /&gt;
mano_vardas(name)&lt;br /&gt;
print()&lt;br /&gt;
print('Kad rastum stačiakampio plotą,')&lt;br /&gt;
print('įrašyk plotį ir aukštį')&lt;br /&gt;
print()&lt;br /&gt;
w = positive_input('Plotis: ')&lt;br /&gt;
h = positive_input('Aukštis: ')&lt;br /&gt;
 &lt;br /&gt;
print('Plotis =', w, ' Aukštis =', h, ' Plotas =', area(w, h))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kaip veikia?&lt;br /&gt;
&lt;br /&gt;
 Tavo vardas: '''Josh'''&lt;br /&gt;
 Labas!&lt;br /&gt;
 Mano vardas yra Josh&lt;br /&gt;
 &lt;br /&gt;
 Kad rastum stačiakampio plotą,&lt;br /&gt;
 įrašyk plotį ir aukštį.&lt;br /&gt;
 &lt;br /&gt;
 Plotis: '''-4'''&lt;br /&gt;
 Privalo būti teigiamas skaičius&lt;br /&gt;
 Plotis: '''4'''&lt;br /&gt;
 Aukštis: '''3'''&lt;br /&gt;
 Plotis = 4  Aukštis = 3  Plotas = 12&lt;br /&gt;
&lt;br /&gt;
=== Užduotis ===&lt;br /&gt;
Perrašyk programą plotas2.py, kuri yra aukščiau pateiktame pavyzdyje, kad turėtum atskirą kvadrato, stačiakampio ir apskritimo ploto funkcijas ((&amp;lt;code&amp;gt;3.14 * spindulys**2&amp;lt;/code&amp;gt;). Taip pat šioje programoje turėtų būti meniu:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Solution|title=Sprendimas|text=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def kvadratas(L):&lt;br /&gt;
    return L * L&lt;br /&gt;
&lt;br /&gt;
def stačiakampis(aukštis, plotis):&lt;br /&gt;
    return aukštis * plotis&lt;br /&gt;
&lt;br /&gt;
def apskritimas(spindulys):&lt;br /&gt;
    return 3.14159 * spindulys** 2&lt;br /&gt;
&lt;br /&gt;
def opcijos():&lt;br /&gt;
    print()&lt;br /&gt;
    print(&amp;quot;Pasirinkimai:&amp;quot;)&lt;br /&gt;
    print(&amp;quot;s = skaičiuoti kvadrato plotą.&amp;quot;)&lt;br /&gt;
    print(&amp;quot;c = skaičiuoti apskritimo plotą.&amp;quot;)&lt;br /&gt;
    print(&amp;quot;r = skaičiuoti stačiakampio plotą.&amp;quot;)&lt;br /&gt;
    print(&amp;quot;q = išeiti&amp;quot;)&lt;br /&gt;
    print()&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Ši programa apskaičiuos kvadrato, apskritimo ar stačiakampio plotą.&amp;quot;)&lt;br /&gt;
pasirinkimas = &amp;quot;x&amp;quot;&lt;br /&gt;
opcijos()&lt;br /&gt;
while pasirinkimas != &amp;quot;q&amp;quot;:&lt;br /&gt;
    choice = input(&amp;quot;Įrašykite jūsų pasirinkimą: &amp;quot;)&lt;br /&gt;
    if pasirinkimas== &amp;quot;s&amp;quot;:&lt;br /&gt;
        L = float(input(&amp;quot;Kvadrato kraštinės ilgis: &amp;quot;))&lt;br /&gt;
        print(&amp;quot;Šio kvadrato plotas&amp;quot;, kvadratas(L))&lt;br /&gt;
        opcijos()&lt;br /&gt;
    elif pasirinkimas == &amp;quot;c&amp;quot;:&lt;br /&gt;
        spindulys = float(input(&amp;quot;Apskritimo spindulys yra: &amp;quot;))&lt;br /&gt;
        print(&amp;quot;Apskritimo plotas yra&amp;quot;, apskritimas(spindulys))&lt;br /&gt;
        opcijos()&lt;br /&gt;
    elif pasirinkimas == &amp;quot;r&amp;quot;:&lt;br /&gt;
        plotis = float(input(&amp;quot;Stačiakampio plotis: &amp;quot;))&lt;br /&gt;
        aukštis = float(input(&amp;quot;Stačiakampio aukštis: &amp;quot;))&lt;br /&gt;
        print(&amp;quot;Stačiakampio plotas yra&amp;quot;, kvadratas(plotis, aukštis))&lt;br /&gt;
        opcijos()&lt;br /&gt;
    elif pasirinkimas == &amp;quot;q&amp;quot;:&lt;br /&gt;
        print(&amp;quot; &amp;quot;,end=&amp;quot;&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Neatpažintas pasirinkimas.&amp;quot;)&lt;br /&gt;
        opcijos()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Debugging |next=Advanced Functions Example}}&lt;/div&gt;</summary>
		<author><name>Rokas</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Funkcij%C5%B3_apibr%C4%97%C5%BEimas&amp;diff=3544</id>
		<title>Python Vadovėlis/Funkcijų apibrėžimas</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Funkcij%C5%B3_apibr%C4%97%C5%BEimas&amp;diff=3544"/>
		<updated>2021-11-17T06:58:15Z</updated>

		<summary type="html">&lt;p&gt;Rokas: /* Kintamieji funkcijose */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Funkcijų kūrimas ===&lt;br /&gt;
Prieš pradėdami šį skyrių pateiksime tau pavyzdį, kurio gali nepersirašinėti:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=python&amp;gt;&lt;br /&gt;
a = 23&lt;br /&gt;
b = -23&lt;br /&gt;
&lt;br /&gt;
if a &amp;lt; 0:&lt;br /&gt;
    a = -a&lt;br /&gt;
if b &amp;lt; 0:&lt;br /&gt;
    b = -b&lt;br /&gt;
if a == b:&lt;br /&gt;
    print(&amp;quot;Absoliučios&amp;quot;, a, &amp;quot;ir&amp;quot;, b, &amp;quot;reikšmės yra lygios.&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Absoliučios&amp;quot;, a, &amp;quot;ir&amp;quot;, b, &amp;quot;reikšmės yra skirtingos.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Programos rezultatas:&lt;br /&gt;
 &lt;br /&gt;
 Absoliučios 23 ir 23 reikšmės yra lygios.&lt;br /&gt;
&lt;br /&gt;
Ar neatrogo, kad programa yra šiek tiek pasikartojanti?.. Ir tikriausiai jau numanai, programuotojai nemėgsta pasikartojančių dalykų, nes juk pasikartojantiems dalykams atlikti ir yra sukurti kompiuteriai!! Be to atkreipk dėmesį, kad radus absoliučią reikšmę pasikeitė kintamojo vertė, todėl programa spausdina 23, o ne -23. Mūsų laimei Python leidžia sukurti funkcijas, kurios šalina dubliavimą:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=python&amp;gt;&lt;br /&gt;
a = 23&lt;br /&gt;
b = -23&lt;br /&gt;
&lt;br /&gt;
def absoliuti_reikšmė(n):&lt;br /&gt;
    if n &amp;lt; 0:&lt;br /&gt;
        n = -n&lt;br /&gt;
    return n&lt;br /&gt;
&lt;br /&gt;
if absoliuti_reikšmė(a) == absoliuti_reikšmė(b):&lt;br /&gt;
    print(&amp;quot;Absoliučios&amp;quot;, a, &amp;quot;ir&amp;quot;, b, &amp;quot;reikšmės yra lygios.&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Absoliučios&amp;quot;, a, &amp;quot;ir&amp;quot;, b, &amp;quot;reikšmės yra lygios.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Programos rezultatas:&lt;br /&gt;
&lt;br /&gt;
 Absoliučios 23 ir -23 reikšmės yra lygios.&lt;br /&gt;
&lt;br /&gt;
Pagrindinis šios programos elementas yra žodis &amp;lt;code&amp;gt;def&amp;lt;/code&amp;gt;.  &lt;br /&gt;
&amp;lt;code&amp;gt;def&amp;lt;/code&amp;gt; yra angliško žodžio &amp;lt;code&amp;gt;define&amp;lt;/code&amp;gt;, kuris reiškia apibrėžti, trumpinys, o juo pradedame apibrėžti savo kuriamą funkciją. Po &amp;lt;code&amp;gt;def&amp;lt;/code&amp;gt; eina funkcijos pavadinimas: &amp;lt;code&amp;gt;absoliuti_reikšmė&amp;lt;/code&amp;gt;. Vėliau skliausteliuose eina parametras n - &amp;lt;code&amp;gt;(n)&amp;lt;/code&amp;gt;, kurio reikšmė yra paimama iš programos, kai funkcija yra iškviečiama. Vėliau eina dvitaškis &amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt;, po kurio esantys teiginiai yra vykdomi naudojant šią funkciją. Teiginiai tęsiami tol, kol pasibaigia funkcijoje nurodyti veiksmai arba grąžinamas norimas rezultatas nurodytas po &amp;lt;code&amp;gt;return&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;return&amp;lt;/code&amp;gt; teiginys grąžina reikšmę į vietą, kur buvo iškviesta funkcija, kaip pirmoje mūsų kurtoje programoje rezultatas buvo grąžintas, kur kvietėme &amp;lt;code&amp;gt;print()&amp;lt;/code&amp;gt; funkciją. Na, o dabar galime kurti naujas funkcijas.&lt;br /&gt;
&lt;br /&gt;
Ar pastebėjai, kad &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt; reikšmės nepasikeitė?&lt;br /&gt;
&lt;br /&gt;
Funkcijos gali būti naudojamos kartojant užduotis, kurios negrąžina reikšmių. Štai keli pavyzdžiai:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def labas():&lt;br /&gt;
    print(&amp;quot;Labas&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
def plotas(plotis, aukštis):&lt;br /&gt;
    return plotis * aukštis&lt;br /&gt;
&lt;br /&gt;
def rašyk_mano_vardas(vardas):&lt;br /&gt;
    print(&amp;quot;Mano vardas&amp;quot;, vardas)&lt;br /&gt;
&lt;br /&gt;
labas()&lt;br /&gt;
labas()&lt;br /&gt;
&lt;br /&gt;
rašyk_labas(&amp;quot;Fredas&amp;quot;)&lt;br /&gt;
w = 4&lt;br /&gt;
h = 5&lt;br /&gt;
print(&amp;quot;plotis =&amp;quot;, w, &amp;quot; aukštis=&amp;quot;, h, &amp;quot; plotas=&amp;quot;, plotas(w, h))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
programos rezultatas&lt;br /&gt;
&lt;br /&gt;
 Labas&lt;br /&gt;
 Labas&lt;br /&gt;
 Mano vardas Fredas&lt;br /&gt;
 plotis = 4  aukštis = 5  plotas = 20&lt;br /&gt;
&lt;br /&gt;
Šis pavyzdys parodo ir daugiau dalykų, kuriuos galima padaryti su funkcijomis. Atkreipk dėmesį, kad galima nenaudoti argumentų arba galima naudoti du argumentus, ar daugiau. Šis pavyzdys rodo dar kelis svarbius dalykus, kuriuos galite padaryti naudodami funkcijas. Taip pat atkreipk dėmesį, kad funkcijai nereikia grąžinti vertės - grąžinimas yra neprivalomas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Funkcijos gali būti naudojamos pakartotiniam kodui pašalinti. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Kintamieji funkcijose ===&lt;br /&gt;
Dažnai pasitaiko, kad pasikartojančiam kode yra kintamųjų, todėl į juos reikia atkreipti dėmesį, kai šaliname pakartotiną kodą. Iki šiol visi kintamieji, kuriuos matėme yra globalūs kintamieji, o funkcijose esantys kintamieji yra vadinami specialiu pavadinimu - lokalūs kintamieji. Šie kintamieji egzistuoja tik veikiant funkcijai. Kai lokalus kintamasis turi globalaus kintamojo pavadinimą, tai funkcijoje pirmenybė teikiama ir naudojamas lokalus kintamasis. Skamba painiai? Štai keli pavyzdžiai:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
a = 4&lt;br /&gt;
 &lt;br /&gt;
def manoFunkcija():&lt;br /&gt;
    a = 17&lt;br /&gt;
    print(&amp;quot;Mano funkcijoje a =&amp;quot;, a)&lt;br /&gt;
&lt;br /&gt;
manoFunkcija()&lt;br /&gt;
print(&amp;quot;a = &amp;quot;, a)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Gaunamas rezultatas&lt;br /&gt;
 Mano funkcijoje a = 17&lt;br /&gt;
 a = 4&lt;br /&gt;
&lt;br /&gt;
Kaip matai pavyzdyje, funkcijos viduje esantis kintamasis nepaiso globalaus kintamojo, nes ji egzistuoja tik funkcijos viduje. Taip pat, turėjai pastebėti, kas funkcijos viduje kintamajam &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; buvo priskirta nauja reikšmė, bet ji buvo aktuali tik funkcijoje, o ne už jos ribų - globalus kintamasis &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; liko nepakitęs.&lt;br /&gt;
&lt;br /&gt;
Kitas kiek sudėtingesnis kodo pavyzdys:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
a_var = 10&lt;br /&gt;
b_var = 15&lt;br /&gt;
e_var = 25&lt;br /&gt;
&lt;br /&gt;
def funkcija(a_var):&lt;br /&gt;
    print(&amp;quot;funkcijoje a_var =&amp;quot;, a_var)&lt;br /&gt;
    b_var = 100 + a_var&lt;br /&gt;
    d_var = 2 * a_var&lt;br /&gt;
    print(&amp;quot;funkcijoje  b_var =&amp;quot;, b_var)&lt;br /&gt;
    print(&amp;quot;funkcijoje  d_var =&amp;quot;, d_var)&lt;br /&gt;
    print(&amp;quot;funkcijoje  e_var =&amp;quot;, e_var)&lt;br /&gt;
    return b_var + 10&lt;br /&gt;
&lt;br /&gt;
c_var = funkcija(b_var)&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;a_var =&amp;quot;, a_var)&lt;br /&gt;
print(&amp;quot;b_var =&amp;quot;, b_var)&lt;br /&gt;
print(&amp;quot;c_var =&amp;quot;, c_var)&lt;br /&gt;
print(&amp;quot;d_var =&amp;quot;, d_var)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
rezultatas:&lt;br /&gt;
&lt;br /&gt;
 funkcijoje a_var =  15&lt;br /&gt;
 funkcijoje  b_var =  115&lt;br /&gt;
 funkcijoje  d_var =  30&lt;br /&gt;
 funkcijoje  e_var =  25&lt;br /&gt;
 a_var =  10&lt;br /&gt;
 b_var =  15&lt;br /&gt;
 c_var =  125&lt;br /&gt;
 d_var = &lt;br /&gt;
 &lt;br /&gt;
 Klaida (paskutinė aptikta klaida):&lt;br /&gt;
  File &amp;quot;C:\def2.py&amp;quot;, eilutė 19, in &amp;lt;module&amp;gt; (modulyje)&lt;br /&gt;
    print(&amp;quot;d_var = &amp;quot;, d_var)&lt;br /&gt;
 NameError: pavadinimas 'd_var' yra neapibrėžtas&lt;br /&gt;
&lt;br /&gt;
Šiame pavyzdyje kintamieji &amp;lt;code&amp;gt;a_var&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;b_var&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;d_var&amp;lt;/code&amp;gt; yra lokalūs kintamieji priklausantyje funkcijai &amp;lt;code&amp;gt;funkcija()&amp;lt;/code&amp;gt;. Po argumento &amp;lt;code&amp;gt;return b_var + 10&amp;lt;/code&amp;gt; visi jie nustoja egzistuoti. Kintamasis &amp;lt;code&amp;gt; a_var &amp;lt;/code&amp;gt; yra parametro pavadinimas, todėl tai jį automatiškai padaro lokaliu kintamuoju. Kintamieji &amp;lt;code&amp;gt; b_var &amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt; d_var &amp;lt;/code&amp;gt; yra vietiniai kintamieji, nes jie rodomi funkcijos lygybės ženklo kairėje pusėje esančiuose teiginiuose &amp;lt;code&amp;gt; b_var = 100 + a_var &amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt; d_var = 2 * a_var &amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Funkcijos &amp;lt;code&amp;gt; a_var &amp;lt;/code&amp;gt; viduje nėra jai priskirtos vertės. Kai funkcija iškviečiama naudojant &amp;lt;code&amp;gt; c_var = funkcija(b_var) &amp;lt;/code&amp;gt;, 15 priskiriama &amp;lt;code&amp;gt; a_var &amp;lt;/code&amp;gt;, nes tuo metu &amp;lt;code&amp;gt; b_var &amp;lt;/code&amp;gt; yra 15, kai kviečiama funkcija &amp;lt;code&amp;gt; funkcija(15) &amp;lt;/code&amp;gt;. Galiausiai &amp;lt;code&amp;gt; a_var &amp;lt;/code&amp;gt; reikšmė nustatoma į 15, kai jis yra funkcijos &amp;lt;code&amp;gt;funkcija&amp;lt;/code&amp;gt; viduje.&lt;br /&gt;
&lt;br /&gt;
Kaip matai, pasibaigus funkcijai, vietiniai kintamieji &amp;lt;code&amp;gt; a_var &amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt; b_var &amp;lt;/code&amp;gt;, kurie buvo naudojami vietoj globalių kintamųjų dingo. Tada teiginys &amp;lt;code&amp;gt; print (&amp;quot;a_var =&amp;quot;, a_var) &amp;lt;/code&amp;gt; atspausdina reikšmę &amp;lt;code&amp;gt; 10 &amp;lt;/code&amp;gt;, o ne reikšmę &amp;lt;code&amp;gt; 15 &amp;lt;/code&amp;gt; kai dingo lokalus kintamasis, kuris slėpė globalaus kintamojo reikšmę.&lt;br /&gt;
&lt;br /&gt;
Taip pat reikia atkreipti dėmesį į klaidą &amp;lt;code&amp;gt; NameError &amp;lt;/code&amp;gt;, kuri atsiranda mūsų programos pabaigoje. Tai nutinka, nes kintamasis &amp;lt;code&amp;gt; d_var &amp;lt;/code&amp;gt; nebeegzistuoja nuo tada, kai baigėsi &amp;lt;code&amp;gt; funkcija &amp;lt;/code&amp;gt;. Išjungus funkciją, visi lokalūs kintamieji ištrinami. Jeigu nori, ką nors gauti iš funkcijos, turėsi naudoti &amp;lt;code&amp;gt; return&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Paskutinis dalykas, į kurį reikia atkreipti dėmesį, yra tai, kad funkcijos viduje &amp;lt;code&amp;gt; e_var &amp;lt;/code&amp;gt; vertė išlieka nepakitusi, nes tai nėra parametras ir ji niekada nerodoma kairėje funkcijos pusėje. &amp;lt;code&amp;gt; a_func &amp;lt;/code&amp;gt;. Kai funkcijos viduje pasiekiamas globalus kintamasis, tai yra išorinis kintamasis esantis už funkcijos ribų.&lt;br /&gt;
&lt;br /&gt;
Funkcijos naudoja lokalius kintamuosius, kurie egzistuoja tik funkcijos viduje, ir gali ignoruoti kitus kintamuosius, kurie yra už funkcijos ribų.&lt;br /&gt;
&lt;br /&gt;
=== Pavyzdžiai ===&lt;br /&gt;
'''temperatūra2.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#! /usr/bin/python&lt;br /&gt;
#-*-coding: utf-8 -*-&lt;br /&gt;
# konvertuoja temperatūrą į Farenheitus ar Celsijų&lt;br /&gt;
 &lt;br /&gt;
def spausdinti_pasirinkimus():&lt;br /&gt;
    print(&amp;quot;Pasirinkimai:&amp;quot;)&lt;br /&gt;
    print(&amp;quot; 'p' spausdinti pasirinkimus&amp;quot;)&lt;br /&gt;
    print(&amp;quot; 'c' konvertuoti iš Celsijaus&amp;quot;)&lt;br /&gt;
    print(&amp;quot; 'f' konvertuoti iš Farenheitų&amp;quot;)&lt;br /&gt;
    print(&amp;quot; 'q' išjungti programą&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
def celsijus_i_farenheitus(c_temp):&lt;br /&gt;
    return 9.0 / 5.0 * c_temp + 32&lt;br /&gt;
 &lt;br /&gt;
def farenheitai_i_celsiju(f_temp):&lt;br /&gt;
    return (f_temp - 32.0) * 5.0 / 9.0&lt;br /&gt;
 &lt;br /&gt;
pasirinkimas = &amp;quot;p&amp;quot;&lt;br /&gt;
while pasirinkimas != &amp;quot;q&amp;quot;:&lt;br /&gt;
    if pasirinkimas == &amp;quot;c&amp;quot;:&lt;br /&gt;
        c_temp = float(input(&amp;quot;Celsijaus temperatūra: &amp;quot;))&lt;br /&gt;
        print(&amp;quot;Farenheitai:&amp;quot;, celsijus_i_farenheitus(c_temp))&lt;br /&gt;
        pasirinkimas = input(&amp;quot;pasirinkimas: &amp;quot;)&lt;br /&gt;
    elif pasirinkimas == &amp;quot;f&amp;quot;:&lt;br /&gt;
        f_temp = float(input(&amp;quot;farenheitai_i_celsiju: &amp;quot;))&lt;br /&gt;
        print(&amp;quot;Celsijus:&amp;quot;, fahrenheit_to_celsius(f_temp))&lt;br /&gt;
        pasirinkimas= input(&amp;quot;option: &amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        pasirinkimas= &amp;quot;p&amp;quot;    #Arba pasirinkimas! = &amp;quot;q&amp;quot;: kad spausdintų&lt;br /&gt;
                        #kai įrašoma, kas nors netikėto&lt;br /&gt;
        spausdinti_pasirinkimus()&lt;br /&gt;
        pasirinkimas = input(&amp;quot;pasirinkimas: &amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kaip tai veikia?:&lt;br /&gt;
&lt;br /&gt;
 Pasirinkimai:&lt;br /&gt;
  'p' spausdinti pasirinkimus&lt;br /&gt;
  'c' konvertuoti iš Celsijaus&lt;br /&gt;
  'f' konvertuoti iš Farenheitų&lt;br /&gt;
  'q' išjungti programą&lt;br /&gt;
 pasirinkimas: '''c'''&lt;br /&gt;
 Celsijaus temperatūra: '''30''' &lt;br /&gt;
 Farenheitai: 86.0&lt;br /&gt;
 pasirinkimas: '''f'''&lt;br /&gt;
 Farenheitų temperatūra: '''60'''&lt;br /&gt;
 Celsijus: 15.5555555556&lt;br /&gt;
 pasirinkimas: '''q'''&lt;br /&gt;
&lt;br /&gt;
'''plotas2.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#! /usr/bin/python&lt;br /&gt;
#-*-coding: utf-8 -*-&lt;br /&gt;
# apskaičiuoja duotą stačiakampio plotą&lt;br /&gt;
&lt;br /&gt;
def pasisveikinimas():&lt;br /&gt;
    print('Labas!')&lt;br /&gt;
 &lt;br /&gt;
def plotas(plotis, aukštis):&lt;br /&gt;
    return plotis * aukštis&lt;br /&gt;
 &lt;br /&gt;
def mano_vardas(vardas):&lt;br /&gt;
    print('Mano vardas yra,', vardas)&lt;br /&gt;
 &lt;br /&gt;
def teigiama_įvestis(sugalvotas_skaičius):&lt;br /&gt;
    skaičius = float(input(sugalvotas_skaičius))&lt;br /&gt;
    while skaičius&amp;lt;= 0:&lt;br /&gt;
        print('Privalo būti teigiamas skaičius')&lt;br /&gt;
        skaičius = float(input(sugalvotas_skaičius))&lt;br /&gt;
    return skaičius&lt;br /&gt;
 &lt;br /&gt;
vardas = input('Tavo vardas: ')&lt;br /&gt;
pasisveikinimas()&lt;br /&gt;
mano_vardas(name)&lt;br /&gt;
print()&lt;br /&gt;
print('Kad rastum stačiakampio plotą,')&lt;br /&gt;
print('įrašyk plotį ir aukštį')&lt;br /&gt;
print()&lt;br /&gt;
w = positive_input('Plotis: ')&lt;br /&gt;
h = positive_input('Aukštis: ')&lt;br /&gt;
 &lt;br /&gt;
print('Plotis =', w, ' Aukštis =', h, ' Plotas =', area(w, h))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kaip veikia?&lt;br /&gt;
&lt;br /&gt;
 Tavo vardas: '''Josh'''&lt;br /&gt;
 Labas!&lt;br /&gt;
 Mano vardas yra Josh&lt;br /&gt;
 &lt;br /&gt;
 Kad rastum stačiakampio plotą,&lt;br /&gt;
 įrašyk plotį ir aukštį.&lt;br /&gt;
 &lt;br /&gt;
 Plotis: '''-4'''&lt;br /&gt;
 Privalo būti teigiamas skaičius&lt;br /&gt;
 Plotis: '''4'''&lt;br /&gt;
 Aukštis: '''3'''&lt;br /&gt;
 Plotis = 4  Aukštis = 3  Plotas = 12&lt;br /&gt;
&lt;br /&gt;
=== Užduotis ===&lt;br /&gt;
Perrašyk programą plotas2.py, kuri yra aukščiau pateiktame pavyzdyje, kad turėtum atskirą kvadrato, stačiakampio ir apskritimo ploto funkcijas ((&amp;lt;code&amp;gt;3.14 * spindulys**2&amp;lt;/code&amp;gt;). Taip pat šioje programoje turėtų būti meniu:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Solution|title=Sprendimas|text=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def kvadratas(L):&lt;br /&gt;
    return L * L&lt;br /&gt;
&lt;br /&gt;
def stačiakampis(aukštis, plotis):&lt;br /&gt;
    return aukštis * plotis&lt;br /&gt;
&lt;br /&gt;
def apskritimas(spindulys):&lt;br /&gt;
    return 3.14159 * spindulys** 2&lt;br /&gt;
&lt;br /&gt;
def opcijos():&lt;br /&gt;
    print()&lt;br /&gt;
    print(&amp;quot;Pasirinkimai:&amp;quot;)&lt;br /&gt;
    print(&amp;quot;s = skaičiuoti kvadrato plotą.&amp;quot;)&lt;br /&gt;
    print(&amp;quot;c = skaičiuoti apskritimo plotą.&amp;quot;)&lt;br /&gt;
    print(&amp;quot;r = skaičiuoti stačiakampio plotą.&amp;quot;)&lt;br /&gt;
    print(&amp;quot;q = išeiti&amp;quot;)&lt;br /&gt;
    print()&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Ši programa apskaičiuos kvadrato, apskritimo ar stačiakampio plotą.&amp;quot;)&lt;br /&gt;
pasirinkimas = &amp;quot;x&amp;quot;&lt;br /&gt;
opcijos()&lt;br /&gt;
while pasirinkimas != &amp;quot;q&amp;quot;:&lt;br /&gt;
    choice = input(&amp;quot;Įrašykite jūsų pasirinkimą: &amp;quot;)&lt;br /&gt;
    if pasirinkimas== &amp;quot;s&amp;quot;:&lt;br /&gt;
        L = float(input(&amp;quot;Kvadrato kraštinės ilgis: &amp;quot;))&lt;br /&gt;
        print(&amp;quot;Šio kvadrato plotas&amp;quot;, kvadratas(L))&lt;br /&gt;
        opcijos()&lt;br /&gt;
    elif pasirinkimas == &amp;quot;c&amp;quot;:&lt;br /&gt;
        spindulys = float(input(&amp;quot;Apskritimo spindulys yra: &amp;quot;))&lt;br /&gt;
        print(&amp;quot;Apskritimo plotas yra&amp;quot;, apskritimas(spindulys))&lt;br /&gt;
        opcijos()&lt;br /&gt;
    elif pasirinkimas == &amp;quot;r&amp;quot;:&lt;br /&gt;
        plotis = float(input(&amp;quot;Stačiakampio plotis: &amp;quot;))&lt;br /&gt;
        aukštis = float(input(&amp;quot;Stačiakampio aukštis: &amp;quot;))&lt;br /&gt;
        print(&amp;quot;Stačiakampio plotas yra&amp;quot;, kvadratas(plotis, aukštis))&lt;br /&gt;
        opcijos()&lt;br /&gt;
    elif pasirinkimas == &amp;quot;q&amp;quot;:&lt;br /&gt;
        print(&amp;quot; &amp;quot;,end=&amp;quot;&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Neatpažintas pasirinkimas.&amp;quot;)&lt;br /&gt;
        opcijos()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Debugging |next=Advanced Functions Example}}&lt;/div&gt;</summary>
		<author><name>Rokas</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Funkcij%C5%B3_apibr%C4%97%C5%BEimas&amp;diff=3543</id>
		<title>Python Vadovėlis/Funkcijų apibrėžimas</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Funkcij%C5%B3_apibr%C4%97%C5%BEimas&amp;diff=3543"/>
		<updated>2021-11-17T06:54:37Z</updated>

		<summary type="html">&lt;p&gt;Rokas: /* Funkcijų kūrimas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Funkcijų kūrimas ===&lt;br /&gt;
Prieš pradėdami šį skyrių pateiksime tau pavyzdį, kurio gali nepersirašinėti:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=python&amp;gt;&lt;br /&gt;
a = 23&lt;br /&gt;
b = -23&lt;br /&gt;
&lt;br /&gt;
if a &amp;lt; 0:&lt;br /&gt;
    a = -a&lt;br /&gt;
if b &amp;lt; 0:&lt;br /&gt;
    b = -b&lt;br /&gt;
if a == b:&lt;br /&gt;
    print(&amp;quot;Absoliučios&amp;quot;, a, &amp;quot;ir&amp;quot;, b, &amp;quot;reikšmės yra lygios.&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Absoliučios&amp;quot;, a, &amp;quot;ir&amp;quot;, b, &amp;quot;reikšmės yra skirtingos.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Programos rezultatas:&lt;br /&gt;
 &lt;br /&gt;
 Absoliučios 23 ir 23 reikšmės yra lygios.&lt;br /&gt;
&lt;br /&gt;
Ar neatrogo, kad programa yra šiek tiek pasikartojanti?.. Ir tikriausiai jau numanai, programuotojai nemėgsta pasikartojančių dalykų, nes juk pasikartojantiems dalykams atlikti ir yra sukurti kompiuteriai!! Be to atkreipk dėmesį, kad radus absoliučią reikšmę pasikeitė kintamojo vertė, todėl programa spausdina 23, o ne -23. Mūsų laimei Python leidžia sukurti funkcijas, kurios šalina dubliavimą:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=python&amp;gt;&lt;br /&gt;
a = 23&lt;br /&gt;
b = -23&lt;br /&gt;
&lt;br /&gt;
def absoliuti_reikšmė(n):&lt;br /&gt;
    if n &amp;lt; 0:&lt;br /&gt;
        n = -n&lt;br /&gt;
    return n&lt;br /&gt;
&lt;br /&gt;
if absoliuti_reikšmė(a) == absoliuti_reikšmė(b):&lt;br /&gt;
    print(&amp;quot;Absoliučios&amp;quot;, a, &amp;quot;ir&amp;quot;, b, &amp;quot;reikšmės yra lygios.&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Absoliučios&amp;quot;, a, &amp;quot;ir&amp;quot;, b, &amp;quot;reikšmės yra lygios.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Programos rezultatas:&lt;br /&gt;
&lt;br /&gt;
 Absoliučios 23 ir -23 reikšmės yra lygios.&lt;br /&gt;
&lt;br /&gt;
Pagrindinis šios programos elementas yra žodis &amp;lt;code&amp;gt;def&amp;lt;/code&amp;gt;.  &lt;br /&gt;
&amp;lt;code&amp;gt;def&amp;lt;/code&amp;gt; yra angliško žodžio &amp;lt;code&amp;gt;define&amp;lt;/code&amp;gt;, kuris reiškia apibrėžti, trumpinys, o juo pradedame apibrėžti savo kuriamą funkciją. Po &amp;lt;code&amp;gt;def&amp;lt;/code&amp;gt; eina funkcijos pavadinimas: &amp;lt;code&amp;gt;absoliuti_reikšmė&amp;lt;/code&amp;gt;. Vėliau skliausteliuose eina parametras n - &amp;lt;code&amp;gt;(n)&amp;lt;/code&amp;gt;, kurio reikšmė yra paimama iš programos, kai funkcija yra iškviečiama. Vėliau eina dvitaškis &amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt;, po kurio esantys teiginiai yra vykdomi naudojant šią funkciją. Teiginiai tęsiami tol, kol pasibaigia funkcijoje nurodyti veiksmai arba grąžinamas norimas rezultatas nurodytas po &amp;lt;code&amp;gt;return&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;return&amp;lt;/code&amp;gt; teiginys grąžina reikšmę į vietą, kur buvo iškviesta funkcija, kaip pirmoje mūsų kurtoje programoje rezultatas buvo grąžintas, kur kvietėme &amp;lt;code&amp;gt;print()&amp;lt;/code&amp;gt; funkciją. Na, o dabar galime kurti naujas funkcijas.&lt;br /&gt;
&lt;br /&gt;
Ar pastebėjai, kad &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt; reikšmės nepasikeitė?&lt;br /&gt;
&lt;br /&gt;
Funkcijos gali būti naudojamos kartojant užduotis, kurios negrąžina reikšmių. Štai keli pavyzdžiai:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def labas():&lt;br /&gt;
    print(&amp;quot;Labas&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
def plotas(plotis, aukštis):&lt;br /&gt;
    return plotis * aukštis&lt;br /&gt;
&lt;br /&gt;
def rašyk_mano_vardas(vardas):&lt;br /&gt;
    print(&amp;quot;Mano vardas&amp;quot;, vardas)&lt;br /&gt;
&lt;br /&gt;
labas()&lt;br /&gt;
labas()&lt;br /&gt;
&lt;br /&gt;
rašyk_labas(&amp;quot;Fredas&amp;quot;)&lt;br /&gt;
w = 4&lt;br /&gt;
h = 5&lt;br /&gt;
print(&amp;quot;plotis =&amp;quot;, w, &amp;quot; aukštis=&amp;quot;, h, &amp;quot; plotas=&amp;quot;, plotas(w, h))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
programos rezultatas&lt;br /&gt;
&lt;br /&gt;
 Labas&lt;br /&gt;
 Labas&lt;br /&gt;
 Mano vardas Fredas&lt;br /&gt;
 plotis = 4  aukštis = 5  plotas = 20&lt;br /&gt;
&lt;br /&gt;
Šis pavyzdys parodo ir daugiau dalykų, kuriuos galima padaryti su funkcijomis. Atkreipk dėmesį, kad galima nenaudoti argumentų arba galima naudoti du argumentus, ar daugiau. Šis pavyzdys rodo dar kelis svarbius dalykus, kuriuos galite padaryti naudodami funkcijas. Taip pat atkreipk dėmesį, kad funkcijai nereikia grąžinti vertės - grąžinimas yra neprivalomas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Funkcijos gali būti naudojamos pakartotiniam kodui pašalinti. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Kintamieji funkcijose ===&lt;br /&gt;
Dažnai pasitaiko, kad pasikartojančiam kode yra kintamųjų, todėl į juos reikia atkreipti dėmesį, kai šaliname pakartotiną kodą. Iki šiol visi kintamieji, kuriuos matėme yra globalūs kintamieji, o funkcijose esantys kintamieji yra vadinami specialiu pavadinimu - lokalūs kintamieji. Šie kintamieji egzistuoja tik veikiant funkcijai. Kai lokalus kintamasis turi globalaus kintamojo pavadinimą, tai funkcijoje pirmenybė teikiama ir naudojamas lokalus kintamasis. Skamba painiai? Štai keli pavyzdžiai:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
a = 4&lt;br /&gt;
 &lt;br /&gt;
def manoFunkcija():&lt;br /&gt;
    a = 17&lt;br /&gt;
    print(&amp;quot;Mano funkcijoje a =&amp;quot;, a)&lt;br /&gt;
&lt;br /&gt;
manoFunkcija()&lt;br /&gt;
print(&amp;quot;a = &amp;quot;, a)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Gaunamas rezultatas&lt;br /&gt;
 Mano funkcijoje a = 17&lt;br /&gt;
 a = 4&lt;br /&gt;
&lt;br /&gt;
Kaip matai pavyzdyje, funkcijos viduje esantis kintamasis nepaiso globalaus kintamojo, nes egzistuoja tik funkcijos viduje. Taip pat, kaip matai, funkcijos viduje kintamajam &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; buvo priskirta nauja reikšmė, bet ji buvo aktuali tik funkcijoje, o ne už jos ribų, globalus &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;, koks buvo, toks ir liko.&lt;br /&gt;
&lt;br /&gt;
Kitas kiek sudėtingesnis pavyzdys:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
a_var = 10&lt;br /&gt;
b_var = 15&lt;br /&gt;
e_var = 25&lt;br /&gt;
&lt;br /&gt;
def funkcija(a_var):&lt;br /&gt;
    print(&amp;quot;funkcijoje a_var =&amp;quot;, a_var)&lt;br /&gt;
    b_var = 100 + a_var&lt;br /&gt;
    d_var = 2 * a_var&lt;br /&gt;
    print(&amp;quot;funkcijoje  b_var =&amp;quot;, b_var)&lt;br /&gt;
    print(&amp;quot;funkcijoje  d_var =&amp;quot;, d_var)&lt;br /&gt;
    print(&amp;quot;funkcijoje  e_var =&amp;quot;, e_var)&lt;br /&gt;
    return b_var + 10&lt;br /&gt;
&lt;br /&gt;
c_var = funkcija(b_var)&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;a_var =&amp;quot;, a_var)&lt;br /&gt;
print(&amp;quot;b_var =&amp;quot;, b_var)&lt;br /&gt;
print(&amp;quot;c_var =&amp;quot;, c_var)&lt;br /&gt;
print(&amp;quot;d_var =&amp;quot;, d_var)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
rezultatas:&lt;br /&gt;
&lt;br /&gt;
 funkcijoje a_var =  15&lt;br /&gt;
 funkcijoje  b_var =  115&lt;br /&gt;
 funkcijoje  d_var =  30&lt;br /&gt;
 funkcijoje  e_var =  25&lt;br /&gt;
 a_var =  10&lt;br /&gt;
 b_var =  15&lt;br /&gt;
 c_var =  125&lt;br /&gt;
 d_var = &lt;br /&gt;
 &lt;br /&gt;
 Klaida (paskutinė aptikta klaida):&lt;br /&gt;
  File &amp;quot;C:\def2.py&amp;quot;, eilutė 19, in &amp;lt;module&amp;gt; (modulyje)&lt;br /&gt;
    print(&amp;quot;d_var = &amp;quot;, d_var)&lt;br /&gt;
 NameError: pavadinimas 'd_var' yra neapibrėžtas&lt;br /&gt;
&lt;br /&gt;
Šiame pavyzdyje kintamieji &amp;lt;code&amp;gt;a_var&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;b_var&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;d_var&amp;lt;/code&amp;gt; yra lokalūs kintamieji priklausantyje funkcijai &amp;lt;code&amp;gt;funkcija()&amp;lt;/code&amp;gt;. Po argumento &amp;lt;code&amp;gt;return b_var + 10&amp;lt;/code&amp;gt; visi jie nustoja egzistuoti. Kintamasis &amp;lt;code&amp;gt; a_var &amp;lt;/code&amp;gt; yra parametro pavadinimas, todėl tai jį automatiškai padaro lokaliu kintamuoju. Kintamieji &amp;lt;code&amp;gt; b_var &amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt; d_var &amp;lt;/code&amp;gt; yra vietiniai kintamieji, nes jie rodomi funkcijos lygybės ženklo kairėje pusėje esančiuose teiginiuose &amp;lt;code&amp;gt; b_var = 100 + a_var &amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt; d_var = 2 * a_var &amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Funkcijos &amp;lt;code&amp;gt; a_var &amp;lt;/code&amp;gt; viduje nėra jai priskirtos vertės. Kai funkcija iškviečiama naudojant &amp;lt;code&amp;gt; c_var = funkcija(b_var) &amp;lt;/code&amp;gt;, 15 priskiriama &amp;lt;code&amp;gt; a_var &amp;lt;/code&amp;gt;, nes tuo metu &amp;lt;code&amp;gt; b_var &amp;lt;/code&amp;gt; yra 15, kai kviečiama funkcija &amp;lt;code&amp;gt; funkcija(15) &amp;lt;/code&amp;gt;. Galiausiai &amp;lt;code&amp;gt; a_var &amp;lt;/code&amp;gt; reikšmė nustatoma į 15, kai jis yra funkcijos &amp;lt;code&amp;gt;funkcija&amp;lt;/code&amp;gt; viduje.&lt;br /&gt;
&lt;br /&gt;
Kaip matai, pasibaigus funkcijai, vietiniai kintamieji &amp;lt;code&amp;gt; a_var &amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt; b_var &amp;lt;/code&amp;gt;, kurie buvo naudojami vietoj globalių kintamųjų dingo. Tada teiginys &amp;lt;code&amp;gt; print (&amp;quot;a_var =&amp;quot;, a_var) &amp;lt;/code&amp;gt; atspausdina reikšmę &amp;lt;code&amp;gt; 10 &amp;lt;/code&amp;gt;, o ne reikšmę &amp;lt;code&amp;gt; 15 &amp;lt;/code&amp;gt; kai dingo lokalus kintamasis, kuris slėpė globalaus kintamojo reikšmę.&lt;br /&gt;
&lt;br /&gt;
Taip pat reikia atkreipti dėmesį į klaidą &amp;lt;code&amp;gt; NameError &amp;lt;/code&amp;gt;, kuri atsiranda mūsų programos pabaigoje. Tai nutinka, nes kintamasis &amp;lt;code&amp;gt; d_var &amp;lt;/code&amp;gt; nebeegzistuoja nuo tada, kai baigėsi &amp;lt;code&amp;gt; funkcija &amp;lt;/code&amp;gt;. Išjungus funkciją, visi lokalūs kintamieji ištrinami. Jeigu nori, ką nors gauti iš funkcijos, turėsi naudoti &amp;lt;code&amp;gt; return&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Paskutinis dalykas, į kurį reikia atkreipti dėmesį, yra tai, kad funkcijos viduje &amp;lt;code&amp;gt; e_var &amp;lt;/code&amp;gt; vertė išlieka nepakitusi, nes tai nėra parametras ir ji niekada nerodoma kairėje funkcijos pusėje. &amp;lt;code&amp;gt; a_func &amp;lt;/code&amp;gt;. Kai funkcijos viduje pasiekiamas globalus kintamasis, tai yra išorinis kintamasis esantis už funkcijos ribų.&lt;br /&gt;
&lt;br /&gt;
Funkcijos naudoja lokalius kintamuosius, kurie egzistuoja tik funkcijos viduje, ir gali ignoruoti kitus kintamuosius, kurie yra už funkcijos ribų.&lt;br /&gt;
&lt;br /&gt;
=== Pavyzdžiai ===&lt;br /&gt;
'''temperatūra2.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#! /usr/bin/python&lt;br /&gt;
#-*-coding: utf-8 -*-&lt;br /&gt;
# konvertuoja temperatūrą į Farenheitus ar Celsijų&lt;br /&gt;
 &lt;br /&gt;
def spausdinti_pasirinkimus():&lt;br /&gt;
    print(&amp;quot;Pasirinkimai:&amp;quot;)&lt;br /&gt;
    print(&amp;quot; 'p' spausdinti pasirinkimus&amp;quot;)&lt;br /&gt;
    print(&amp;quot; 'c' konvertuoti iš Celsijaus&amp;quot;)&lt;br /&gt;
    print(&amp;quot; 'f' konvertuoti iš Farenheitų&amp;quot;)&lt;br /&gt;
    print(&amp;quot; 'q' išjungti programą&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
def celsijus_i_farenheitus(c_temp):&lt;br /&gt;
    return 9.0 / 5.0 * c_temp + 32&lt;br /&gt;
 &lt;br /&gt;
def farenheitai_i_celsiju(f_temp):&lt;br /&gt;
    return (f_temp - 32.0) * 5.0 / 9.0&lt;br /&gt;
 &lt;br /&gt;
pasirinkimas = &amp;quot;p&amp;quot;&lt;br /&gt;
while pasirinkimas != &amp;quot;q&amp;quot;:&lt;br /&gt;
    if pasirinkimas == &amp;quot;c&amp;quot;:&lt;br /&gt;
        c_temp = float(input(&amp;quot;Celsijaus temperatūra: &amp;quot;))&lt;br /&gt;
        print(&amp;quot;Farenheitai:&amp;quot;, celsijus_i_farenheitus(c_temp))&lt;br /&gt;
        pasirinkimas = input(&amp;quot;pasirinkimas: &amp;quot;)&lt;br /&gt;
    elif pasirinkimas == &amp;quot;f&amp;quot;:&lt;br /&gt;
        f_temp = float(input(&amp;quot;farenheitai_i_celsiju: &amp;quot;))&lt;br /&gt;
        print(&amp;quot;Celsijus:&amp;quot;, fahrenheit_to_celsius(f_temp))&lt;br /&gt;
        pasirinkimas= input(&amp;quot;option: &amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        pasirinkimas= &amp;quot;p&amp;quot;    #Arba pasirinkimas! = &amp;quot;q&amp;quot;: kad spausdintų&lt;br /&gt;
                        #kai įrašoma, kas nors netikėto&lt;br /&gt;
        spausdinti_pasirinkimus()&lt;br /&gt;
        pasirinkimas = input(&amp;quot;pasirinkimas: &amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kaip tai veikia?:&lt;br /&gt;
&lt;br /&gt;
 Pasirinkimai:&lt;br /&gt;
  'p' spausdinti pasirinkimus&lt;br /&gt;
  'c' konvertuoti iš Celsijaus&lt;br /&gt;
  'f' konvertuoti iš Farenheitų&lt;br /&gt;
  'q' išjungti programą&lt;br /&gt;
 pasirinkimas: '''c'''&lt;br /&gt;
 Celsijaus temperatūra: '''30''' &lt;br /&gt;
 Farenheitai: 86.0&lt;br /&gt;
 pasirinkimas: '''f'''&lt;br /&gt;
 Farenheitų temperatūra: '''60'''&lt;br /&gt;
 Celsijus: 15.5555555556&lt;br /&gt;
 pasirinkimas: '''q'''&lt;br /&gt;
&lt;br /&gt;
'''plotas2.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#! /usr/bin/python&lt;br /&gt;
#-*-coding: utf-8 -*-&lt;br /&gt;
# apskaičiuoja duotą stačiakampio plotą&lt;br /&gt;
&lt;br /&gt;
def pasisveikinimas():&lt;br /&gt;
    print('Labas!')&lt;br /&gt;
 &lt;br /&gt;
def plotas(plotis, aukštis):&lt;br /&gt;
    return plotis * aukštis&lt;br /&gt;
 &lt;br /&gt;
def mano_vardas(vardas):&lt;br /&gt;
    print('Mano vardas yra,', vardas)&lt;br /&gt;
 &lt;br /&gt;
def teigiama_įvestis(sugalvotas_skaičius):&lt;br /&gt;
    skaičius = float(input(sugalvotas_skaičius))&lt;br /&gt;
    while skaičius&amp;lt;= 0:&lt;br /&gt;
        print('Privalo būti teigiamas skaičius')&lt;br /&gt;
        skaičius = float(input(sugalvotas_skaičius))&lt;br /&gt;
    return skaičius&lt;br /&gt;
 &lt;br /&gt;
vardas = input('Tavo vardas: ')&lt;br /&gt;
pasisveikinimas()&lt;br /&gt;
mano_vardas(name)&lt;br /&gt;
print()&lt;br /&gt;
print('Kad rastum stačiakampio plotą,')&lt;br /&gt;
print('įrašyk plotį ir aukštį')&lt;br /&gt;
print()&lt;br /&gt;
w = positive_input('Plotis: ')&lt;br /&gt;
h = positive_input('Aukštis: ')&lt;br /&gt;
 &lt;br /&gt;
print('Plotis =', w, ' Aukštis =', h, ' Plotas =', area(w, h))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kaip veikia?&lt;br /&gt;
&lt;br /&gt;
 Tavo vardas: '''Josh'''&lt;br /&gt;
 Labas!&lt;br /&gt;
 Mano vardas yra Josh&lt;br /&gt;
 &lt;br /&gt;
 Kad rastum stačiakampio plotą,&lt;br /&gt;
 įrašyk plotį ir aukštį.&lt;br /&gt;
 &lt;br /&gt;
 Plotis: '''-4'''&lt;br /&gt;
 Privalo būti teigiamas skaičius&lt;br /&gt;
 Plotis: '''4'''&lt;br /&gt;
 Aukštis: '''3'''&lt;br /&gt;
 Plotis = 4  Aukštis = 3  Plotas = 12&lt;br /&gt;
&lt;br /&gt;
=== Užduotis ===&lt;br /&gt;
Perrašyk programą plotas2.py, kuri yra aukščiau pateiktame pavyzdyje, kad turėtum atskirą kvadrato, stačiakampio ir apskritimo ploto funkcijas ((&amp;lt;code&amp;gt;3.14 * spindulys**2&amp;lt;/code&amp;gt;). Taip pat šioje programoje turėtų būti meniu:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Solution|title=Sprendimas|text=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def kvadratas(L):&lt;br /&gt;
    return L * L&lt;br /&gt;
&lt;br /&gt;
def stačiakampis(aukštis, plotis):&lt;br /&gt;
    return aukštis * plotis&lt;br /&gt;
&lt;br /&gt;
def apskritimas(spindulys):&lt;br /&gt;
    return 3.14159 * spindulys** 2&lt;br /&gt;
&lt;br /&gt;
def opcijos():&lt;br /&gt;
    print()&lt;br /&gt;
    print(&amp;quot;Pasirinkimai:&amp;quot;)&lt;br /&gt;
    print(&amp;quot;s = skaičiuoti kvadrato plotą.&amp;quot;)&lt;br /&gt;
    print(&amp;quot;c = skaičiuoti apskritimo plotą.&amp;quot;)&lt;br /&gt;
    print(&amp;quot;r = skaičiuoti stačiakampio plotą.&amp;quot;)&lt;br /&gt;
    print(&amp;quot;q = išeiti&amp;quot;)&lt;br /&gt;
    print()&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Ši programa apskaičiuos kvadrato, apskritimo ar stačiakampio plotą.&amp;quot;)&lt;br /&gt;
pasirinkimas = &amp;quot;x&amp;quot;&lt;br /&gt;
opcijos()&lt;br /&gt;
while pasirinkimas != &amp;quot;q&amp;quot;:&lt;br /&gt;
    choice = input(&amp;quot;Įrašykite jūsų pasirinkimą: &amp;quot;)&lt;br /&gt;
    if pasirinkimas== &amp;quot;s&amp;quot;:&lt;br /&gt;
        L = float(input(&amp;quot;Kvadrato kraštinės ilgis: &amp;quot;))&lt;br /&gt;
        print(&amp;quot;Šio kvadrato plotas&amp;quot;, kvadratas(L))&lt;br /&gt;
        opcijos()&lt;br /&gt;
    elif pasirinkimas == &amp;quot;c&amp;quot;:&lt;br /&gt;
        spindulys = float(input(&amp;quot;Apskritimo spindulys yra: &amp;quot;))&lt;br /&gt;
        print(&amp;quot;Apskritimo plotas yra&amp;quot;, apskritimas(spindulys))&lt;br /&gt;
        opcijos()&lt;br /&gt;
    elif pasirinkimas == &amp;quot;r&amp;quot;:&lt;br /&gt;
        plotis = float(input(&amp;quot;Stačiakampio plotis: &amp;quot;))&lt;br /&gt;
        aukštis = float(input(&amp;quot;Stačiakampio aukštis: &amp;quot;))&lt;br /&gt;
        print(&amp;quot;Stačiakampio plotas yra&amp;quot;, kvadratas(plotis, aukštis))&lt;br /&gt;
        opcijos()&lt;br /&gt;
    elif pasirinkimas == &amp;quot;q&amp;quot;:&lt;br /&gt;
        print(&amp;quot; &amp;quot;,end=&amp;quot;&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Neatpažintas pasirinkimas.&amp;quot;)&lt;br /&gt;
        opcijos()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Debugging |next=Advanced Functions Example}}&lt;/div&gt;</summary>
		<author><name>Rokas</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Funkcij%C5%B3_apibr%C4%97%C5%BEimas&amp;diff=3542</id>
		<title>Python Vadovėlis/Funkcijų apibrėžimas</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Funkcij%C5%B3_apibr%C4%97%C5%BEimas&amp;diff=3542"/>
		<updated>2021-11-17T06:44:33Z</updated>

		<summary type="html">&lt;p&gt;Rokas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Funkcijų kūrimas ===&lt;br /&gt;
Prieš pradėdami šį skyrių pateiksime tau pavyzdį, kurio gali nepersirašinėti:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=python&amp;gt;&lt;br /&gt;
a = 23&lt;br /&gt;
b = -23&lt;br /&gt;
&lt;br /&gt;
if a &amp;lt; 0:&lt;br /&gt;
    a = -a&lt;br /&gt;
if b &amp;lt; 0:&lt;br /&gt;
    b = -b&lt;br /&gt;
if a == b:&lt;br /&gt;
    print(&amp;quot;Absoliučios&amp;quot;, a, &amp;quot;ir&amp;quot;, b, &amp;quot;reikšmės yra lygios.&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Absoliučios&amp;quot;, a, &amp;quot;ir&amp;quot;, b, &amp;quot;reikšmės yra skirtingos.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Programos rezultatas:&lt;br /&gt;
 &lt;br /&gt;
 Absoliučios 23 ir 23 reikšmės yra lygios.&lt;br /&gt;
&lt;br /&gt;
Ar neatrogo, kad programa yra šiek tiek pasikartojanti?.. Ir tikriausiai jau numanai, programuotojai nemėgsta pasikartojančių dalykų, nes juk pasikartojantiems dalykams atlikti ir yra sukurti kompiuteriai!! Be to atkreipk dėmesį, kad radus absoliučią reikšmę pasikeitė kintamojo vertė, todėl programa spausdina 23, o ne -23. Mūsų laimei Python leidžia sukurti funkcijas, kurios šalina dubliavimą:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=python&amp;gt;&lt;br /&gt;
a = 23&lt;br /&gt;
b = -23&lt;br /&gt;
&lt;br /&gt;
def absoliuti_reikšmė(n):&lt;br /&gt;
    if n &amp;lt; 0:&lt;br /&gt;
        n = -n&lt;br /&gt;
    return n&lt;br /&gt;
&lt;br /&gt;
if absoliuti_reikšmė(a) == absoliuti_reikšmė(b):&lt;br /&gt;
    print(&amp;quot;Absoliučios&amp;quot;, a, &amp;quot;ir&amp;quot;, b, &amp;quot;reikšmės yra lygios.&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Absoliučios&amp;quot;, a, &amp;quot;ir&amp;quot;, b, &amp;quot;reikšmės yra lygios.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Programos rezultatas:&lt;br /&gt;
&lt;br /&gt;
 Absoliučios 23 ir -23 reikšmės yra lygios.&lt;br /&gt;
&lt;br /&gt;
Pagrindinis šios programos elementas yra žodis &amp;lt;code&amp;gt;def&amp;lt;/code&amp;gt;.  &lt;br /&gt;
&amp;lt;code&amp;gt;def&amp;lt;/code&amp;gt; yra angliško žodžio &amp;lt;code&amp;gt;define&amp;lt;/code&amp;gt;, kuris reiškia apibrėžti, trumpinys, o juo pradedame apibrėžti savo kuriamą funkciją. Po &amp;lt;code&amp;gt;def&amp;lt;/code&amp;gt; eina funkcijos pavadinimas: &amp;lt;code&amp;gt;absoliuti_reiksme&amp;lt;/code&amp;gt;. Vėliau skliausteliuose eina parametras n - &amp;lt;code&amp;gt;(n)&amp;lt;/code&amp;gt;, kurio reikšmė yra paimama iš programos, kai funkcija yra iškviečiama. Vėliau eina dvitaškis &amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt;, po kurio esantys teiginiai yra vykdomi naudojant šią funkciją. Teiginiai tęsiami tol, kol pasibaigia funkcijoje nurodyti veiksmai arba grąžinamas norimas rezultatas nurodytas po &amp;lt;code&amp;gt;return&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;return&amp;lt;/code&amp;gt; teiginys grąžina reikšmę į vietą, kur buvo iškviesta funkcija, kaip pirmoje mūsų kurtoje programoje rezultatas buvo grąžintas, kur kvietėme &amp;lt;code&amp;gt;print()&amp;lt;/code&amp;gt; funkciją. Na, o dabar galime kurti naujas funkcijas.&lt;br /&gt;
&lt;br /&gt;
Ar pastebėjai, kad &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt; reikšmės nepasikeitė?&lt;br /&gt;
&lt;br /&gt;
Funkcijos gali būti naudojamos kartojant užduotis, kurios negrąžina reikšmių. Štai keli pavyzdžiai:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def labas():&lt;br /&gt;
    print(&amp;quot;Labas&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
def plotas(plotis, aukštis):&lt;br /&gt;
    return plotis * aukštis&lt;br /&gt;
&lt;br /&gt;
def rašyk_mano_vardas(vardas):&lt;br /&gt;
    print(&amp;quot;Mano vardas&amp;quot;, vardas)&lt;br /&gt;
&lt;br /&gt;
labas()&lt;br /&gt;
labas()&lt;br /&gt;
&lt;br /&gt;
rašyk_labas(&amp;quot;Fredas&amp;quot;)&lt;br /&gt;
w = 4&lt;br /&gt;
h = 5&lt;br /&gt;
print(&amp;quot;plotis =&amp;quot;, w, &amp;quot; aukštis=&amp;quot;, h, &amp;quot; plotas=&amp;quot;, plotas(w, h))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
programos rezultatas&lt;br /&gt;
&lt;br /&gt;
 Labas&lt;br /&gt;
 Labas&lt;br /&gt;
 Mano vardas Fredas&lt;br /&gt;
 plotis = 4  aukštis = 5  plotas = 20&lt;br /&gt;
&lt;br /&gt;
Šis pavyzdys parodo ir daugiau dalykų, kuriuos galima padaryti su funkcijomis. Atkreipk dėmesį, kad galima nenaudoti argumentų arba galima naudoti du ar daugiau. Šis pavyzdys rodo dar keletą dalykų, kuriuos galite padaryti naudodami funkcijas. Taip pat atkreipk dėmesį, kad funkcijai nereikia grąžinti vertės, grąžinimas yra neprivalomas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Funkcijos gali būti naudojamos pakartotiniam kodui pašalinti. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Kintamieji funkcijose ===&lt;br /&gt;
Dažnai pasitaiko, kad pasikartojančiam kode yra kintamųjų, todėl į juos reikia atkreipti dėmesį, kai šaliname pakartotiną kodą. Iki šiol visi kintamieji, kuriuos matėme yra globalūs kintamieji, o funkcijose esantys kintamieji yra vadinami specialiu pavadinimu - lokalūs kintamieji. Šie kintamieji egzistuoja tik veikiant funkcijai. Kai lokalus kintamasis turi globalaus kintamojo pavadinimą, tai funkcijoje pirmenybė teikiama ir naudojamas lokalus kintamasis. Skamba painiai? Štai keli pavyzdžiai:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
a = 4&lt;br /&gt;
 &lt;br /&gt;
def manoFunkcija():&lt;br /&gt;
    a = 17&lt;br /&gt;
    print(&amp;quot;Mano funkcijoje a =&amp;quot;, a)&lt;br /&gt;
&lt;br /&gt;
manoFunkcija()&lt;br /&gt;
print(&amp;quot;a = &amp;quot;, a)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Gaunamas rezultatas&lt;br /&gt;
 Mano funkcijoje a = 17&lt;br /&gt;
 a = 4&lt;br /&gt;
&lt;br /&gt;
Kaip matai pavyzdyje, funkcijos viduje esantis kintamasis nepaiso globalaus kintamojo, nes egzistuoja tik funkcijos viduje. Taip pat, kaip matai, funkcijos viduje kintamajam &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; buvo priskirta nauja reikšmė, bet ji buvo aktuali tik funkcijoje, o ne už jos ribų, globalus &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;, koks buvo, toks ir liko.&lt;br /&gt;
&lt;br /&gt;
Kitas kiek sudėtingesnis pavyzdys:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
a_var = 10&lt;br /&gt;
b_var = 15&lt;br /&gt;
e_var = 25&lt;br /&gt;
&lt;br /&gt;
def funkcija(a_var):&lt;br /&gt;
    print(&amp;quot;funkcijoje a_var =&amp;quot;, a_var)&lt;br /&gt;
    b_var = 100 + a_var&lt;br /&gt;
    d_var = 2 * a_var&lt;br /&gt;
    print(&amp;quot;funkcijoje  b_var =&amp;quot;, b_var)&lt;br /&gt;
    print(&amp;quot;funkcijoje  d_var =&amp;quot;, d_var)&lt;br /&gt;
    print(&amp;quot;funkcijoje  e_var =&amp;quot;, e_var)&lt;br /&gt;
    return b_var + 10&lt;br /&gt;
&lt;br /&gt;
c_var = funkcija(b_var)&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;a_var =&amp;quot;, a_var)&lt;br /&gt;
print(&amp;quot;b_var =&amp;quot;, b_var)&lt;br /&gt;
print(&amp;quot;c_var =&amp;quot;, c_var)&lt;br /&gt;
print(&amp;quot;d_var =&amp;quot;, d_var)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
rezultatas:&lt;br /&gt;
&lt;br /&gt;
 funkcijoje a_var =  15&lt;br /&gt;
 funkcijoje  b_var =  115&lt;br /&gt;
 funkcijoje  d_var =  30&lt;br /&gt;
 funkcijoje  e_var =  25&lt;br /&gt;
 a_var =  10&lt;br /&gt;
 b_var =  15&lt;br /&gt;
 c_var =  125&lt;br /&gt;
 d_var = &lt;br /&gt;
 &lt;br /&gt;
 Klaida (paskutinė aptikta klaida):&lt;br /&gt;
  File &amp;quot;C:\def2.py&amp;quot;, eilutė 19, in &amp;lt;module&amp;gt; (modulyje)&lt;br /&gt;
    print(&amp;quot;d_var = &amp;quot;, d_var)&lt;br /&gt;
 NameError: pavadinimas 'd_var' yra neapibrėžtas&lt;br /&gt;
&lt;br /&gt;
Šiame pavyzdyje kintamieji &amp;lt;code&amp;gt;a_var&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;b_var&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;d_var&amp;lt;/code&amp;gt; yra lokalūs kintamieji priklausantyje funkcijai &amp;lt;code&amp;gt;funkcija()&amp;lt;/code&amp;gt;. Po argumento &amp;lt;code&amp;gt;return b_var + 10&amp;lt;/code&amp;gt; visi jie nustoja egzistuoti. Kintamasis &amp;lt;code&amp;gt; a_var &amp;lt;/code&amp;gt; yra parametro pavadinimas, todėl tai jį automatiškai padaro lokaliu kintamuoju. Kintamieji &amp;lt;code&amp;gt; b_var &amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt; d_var &amp;lt;/code&amp;gt; yra vietiniai kintamieji, nes jie rodomi funkcijos lygybės ženklo kairėje pusėje esančiuose teiginiuose &amp;lt;code&amp;gt; b_var = 100 + a_var &amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt; d_var = 2 * a_var &amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Funkcijos &amp;lt;code&amp;gt; a_var &amp;lt;/code&amp;gt; viduje nėra jai priskirtos vertės. Kai funkcija iškviečiama naudojant &amp;lt;code&amp;gt; c_var = funkcija(b_var) &amp;lt;/code&amp;gt;, 15 priskiriama &amp;lt;code&amp;gt; a_var &amp;lt;/code&amp;gt;, nes tuo metu &amp;lt;code&amp;gt; b_var &amp;lt;/code&amp;gt; yra 15, kai kviečiama funkcija &amp;lt;code&amp;gt; funkcija(15) &amp;lt;/code&amp;gt;. Galiausiai &amp;lt;code&amp;gt; a_var &amp;lt;/code&amp;gt; reikšmė nustatoma į 15, kai jis yra funkcijos &amp;lt;code&amp;gt;funkcija&amp;lt;/code&amp;gt; viduje.&lt;br /&gt;
&lt;br /&gt;
Kaip matai, pasibaigus funkcijai, vietiniai kintamieji &amp;lt;code&amp;gt; a_var &amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt; b_var &amp;lt;/code&amp;gt;, kurie buvo naudojami vietoj globalių kintamųjų dingo. Tada teiginys &amp;lt;code&amp;gt; print (&amp;quot;a_var =&amp;quot;, a_var) &amp;lt;/code&amp;gt; atspausdina reikšmę &amp;lt;code&amp;gt; 10 &amp;lt;/code&amp;gt;, o ne reikšmę &amp;lt;code&amp;gt; 15 &amp;lt;/code&amp;gt; kai dingo lokalus kintamasis, kuris slėpė globalaus kintamojo reikšmę.&lt;br /&gt;
&lt;br /&gt;
Taip pat reikia atkreipti dėmesį į klaidą &amp;lt;code&amp;gt; NameError &amp;lt;/code&amp;gt;, kuri atsiranda mūsų programos pabaigoje. Tai nutinka, nes kintamasis &amp;lt;code&amp;gt; d_var &amp;lt;/code&amp;gt; nebeegzistuoja nuo tada, kai baigėsi &amp;lt;code&amp;gt; funkcija &amp;lt;/code&amp;gt;. Išjungus funkciją, visi lokalūs kintamieji ištrinami. Jeigu nori, ką nors gauti iš funkcijos, turėsi naudoti &amp;lt;code&amp;gt; return&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Paskutinis dalykas, į kurį reikia atkreipti dėmesį, yra tai, kad funkcijos viduje &amp;lt;code&amp;gt; e_var &amp;lt;/code&amp;gt; vertė išlieka nepakitusi, nes tai nėra parametras ir ji niekada nerodoma kairėje funkcijos pusėje. &amp;lt;code&amp;gt; a_func &amp;lt;/code&amp;gt;. Kai funkcijos viduje pasiekiamas globalus kintamasis, tai yra išorinis kintamasis esantis už funkcijos ribų.&lt;br /&gt;
&lt;br /&gt;
Funkcijos naudoja lokalius kintamuosius, kurie egzistuoja tik funkcijos viduje, ir gali ignoruoti kitus kintamuosius, kurie yra už funkcijos ribų.&lt;br /&gt;
&lt;br /&gt;
=== Pavyzdžiai ===&lt;br /&gt;
'''temperatūra2.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#! /usr/bin/python&lt;br /&gt;
#-*-coding: utf-8 -*-&lt;br /&gt;
# konvertuoja temperatūrą į Farenheitus ar Celsijų&lt;br /&gt;
 &lt;br /&gt;
def spausdinti_pasirinkimus():&lt;br /&gt;
    print(&amp;quot;Pasirinkimai:&amp;quot;)&lt;br /&gt;
    print(&amp;quot; 'p' spausdinti pasirinkimus&amp;quot;)&lt;br /&gt;
    print(&amp;quot; 'c' konvertuoti iš Celsijaus&amp;quot;)&lt;br /&gt;
    print(&amp;quot; 'f' konvertuoti iš Farenheitų&amp;quot;)&lt;br /&gt;
    print(&amp;quot; 'q' išjungti programą&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
def celsijus_i_farenheitus(c_temp):&lt;br /&gt;
    return 9.0 / 5.0 * c_temp + 32&lt;br /&gt;
 &lt;br /&gt;
def farenheitai_i_celsiju(f_temp):&lt;br /&gt;
    return (f_temp - 32.0) * 5.0 / 9.0&lt;br /&gt;
 &lt;br /&gt;
pasirinkimas = &amp;quot;p&amp;quot;&lt;br /&gt;
while pasirinkimas != &amp;quot;q&amp;quot;:&lt;br /&gt;
    if pasirinkimas == &amp;quot;c&amp;quot;:&lt;br /&gt;
        c_temp = float(input(&amp;quot;Celsijaus temperatūra: &amp;quot;))&lt;br /&gt;
        print(&amp;quot;Farenheitai:&amp;quot;, celsijus_i_farenheitus(c_temp))&lt;br /&gt;
        pasirinkimas = input(&amp;quot;pasirinkimas: &amp;quot;)&lt;br /&gt;
    elif pasirinkimas == &amp;quot;f&amp;quot;:&lt;br /&gt;
        f_temp = float(input(&amp;quot;farenheitai_i_celsiju: &amp;quot;))&lt;br /&gt;
        print(&amp;quot;Celsijus:&amp;quot;, fahrenheit_to_celsius(f_temp))&lt;br /&gt;
        pasirinkimas= input(&amp;quot;option: &amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        pasirinkimas= &amp;quot;p&amp;quot;    #Arba pasirinkimas! = &amp;quot;q&amp;quot;: kad spausdintų&lt;br /&gt;
                        #kai įrašoma, kas nors netikėto&lt;br /&gt;
        spausdinti_pasirinkimus()&lt;br /&gt;
        pasirinkimas = input(&amp;quot;pasirinkimas: &amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kaip tai veikia?:&lt;br /&gt;
&lt;br /&gt;
 Pasirinkimai:&lt;br /&gt;
  'p' spausdinti pasirinkimus&lt;br /&gt;
  'c' konvertuoti iš Celsijaus&lt;br /&gt;
  'f' konvertuoti iš Farenheitų&lt;br /&gt;
  'q' išjungti programą&lt;br /&gt;
 pasirinkimas: '''c'''&lt;br /&gt;
 Celsijaus temperatūra: '''30''' &lt;br /&gt;
 Farenheitai: 86.0&lt;br /&gt;
 pasirinkimas: '''f'''&lt;br /&gt;
 Farenheitų temperatūra: '''60'''&lt;br /&gt;
 Celsijus: 15.5555555556&lt;br /&gt;
 pasirinkimas: '''q'''&lt;br /&gt;
&lt;br /&gt;
'''plotas2.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#! /usr/bin/python&lt;br /&gt;
#-*-coding: utf-8 -*-&lt;br /&gt;
# apskaičiuoja duotą stačiakampio plotą&lt;br /&gt;
&lt;br /&gt;
def pasisveikinimas():&lt;br /&gt;
    print('Labas!')&lt;br /&gt;
 &lt;br /&gt;
def plotas(plotis, aukštis):&lt;br /&gt;
    return plotis * aukštis&lt;br /&gt;
 &lt;br /&gt;
def mano_vardas(vardas):&lt;br /&gt;
    print('Mano vardas yra,', vardas)&lt;br /&gt;
 &lt;br /&gt;
def teigiama_įvestis(sugalvotas_skaičius):&lt;br /&gt;
    skaičius = float(input(sugalvotas_skaičius))&lt;br /&gt;
    while skaičius&amp;lt;= 0:&lt;br /&gt;
        print('Privalo būti teigiamas skaičius')&lt;br /&gt;
        skaičius = float(input(sugalvotas_skaičius))&lt;br /&gt;
    return skaičius&lt;br /&gt;
 &lt;br /&gt;
vardas = input('Tavo vardas: ')&lt;br /&gt;
pasisveikinimas()&lt;br /&gt;
mano_vardas(name)&lt;br /&gt;
print()&lt;br /&gt;
print('Kad rastum stačiakampio plotą,')&lt;br /&gt;
print('įrašyk plotį ir aukštį')&lt;br /&gt;
print()&lt;br /&gt;
w = positive_input('Plotis: ')&lt;br /&gt;
h = positive_input('Aukštis: ')&lt;br /&gt;
 &lt;br /&gt;
print('Plotis =', w, ' Aukštis =', h, ' Plotas =', area(w, h))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kaip veikia?&lt;br /&gt;
&lt;br /&gt;
 Tavo vardas: '''Josh'''&lt;br /&gt;
 Labas!&lt;br /&gt;
 Mano vardas yra Josh&lt;br /&gt;
 &lt;br /&gt;
 Kad rastum stačiakampio plotą,&lt;br /&gt;
 įrašyk plotį ir aukštį.&lt;br /&gt;
 &lt;br /&gt;
 Plotis: '''-4'''&lt;br /&gt;
 Privalo būti teigiamas skaičius&lt;br /&gt;
 Plotis: '''4'''&lt;br /&gt;
 Aukštis: '''3'''&lt;br /&gt;
 Plotis = 4  Aukštis = 3  Plotas = 12&lt;br /&gt;
&lt;br /&gt;
=== Užduotis ===&lt;br /&gt;
Perrašyk programą plotas2.py, kuri yra aukščiau pateiktame pavyzdyje, kad turėtum atskirą kvadrato, stačiakampio ir apskritimo ploto funkcijas ((&amp;lt;code&amp;gt;3.14 * spindulys**2&amp;lt;/code&amp;gt;). Taip pat šioje programoje turėtų būti meniu:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Solution|title=Sprendimas|text=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def kvadratas(L):&lt;br /&gt;
    return L * L&lt;br /&gt;
&lt;br /&gt;
def stačiakampis(aukštis, plotis):&lt;br /&gt;
    return aukštis * plotis&lt;br /&gt;
&lt;br /&gt;
def apskritimas(spindulys):&lt;br /&gt;
    return 3.14159 * spindulys** 2&lt;br /&gt;
&lt;br /&gt;
def opcijos():&lt;br /&gt;
    print()&lt;br /&gt;
    print(&amp;quot;Pasirinkimai:&amp;quot;)&lt;br /&gt;
    print(&amp;quot;s = skaičiuoti kvadrato plotą.&amp;quot;)&lt;br /&gt;
    print(&amp;quot;c = skaičiuoti apskritimo plotą.&amp;quot;)&lt;br /&gt;
    print(&amp;quot;r = skaičiuoti stačiakampio plotą.&amp;quot;)&lt;br /&gt;
    print(&amp;quot;q = išeiti&amp;quot;)&lt;br /&gt;
    print()&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Ši programa apskaičiuos kvadrato, apskritimo ar stačiakampio plotą.&amp;quot;)&lt;br /&gt;
pasirinkimas = &amp;quot;x&amp;quot;&lt;br /&gt;
opcijos()&lt;br /&gt;
while pasirinkimas != &amp;quot;q&amp;quot;:&lt;br /&gt;
    choice = input(&amp;quot;Įrašykite jūsų pasirinkimą: &amp;quot;)&lt;br /&gt;
    if pasirinkimas== &amp;quot;s&amp;quot;:&lt;br /&gt;
        L = float(input(&amp;quot;Kvadrato kraštinės ilgis: &amp;quot;))&lt;br /&gt;
        print(&amp;quot;Šio kvadrato plotas&amp;quot;, kvadratas(L))&lt;br /&gt;
        opcijos()&lt;br /&gt;
    elif pasirinkimas == &amp;quot;c&amp;quot;:&lt;br /&gt;
        spindulys = float(input(&amp;quot;Apskritimo spindulys yra: &amp;quot;))&lt;br /&gt;
        print(&amp;quot;Apskritimo plotas yra&amp;quot;, apskritimas(spindulys))&lt;br /&gt;
        opcijos()&lt;br /&gt;
    elif pasirinkimas == &amp;quot;r&amp;quot;:&lt;br /&gt;
        plotis = float(input(&amp;quot;Stačiakampio plotis: &amp;quot;))&lt;br /&gt;
        aukštis = float(input(&amp;quot;Stačiakampio aukštis: &amp;quot;))&lt;br /&gt;
        print(&amp;quot;Stačiakampio plotas yra&amp;quot;, kvadratas(plotis, aukštis))&lt;br /&gt;
        opcijos()&lt;br /&gt;
    elif pasirinkimas == &amp;quot;q&amp;quot;:&lt;br /&gt;
        print(&amp;quot; &amp;quot;,end=&amp;quot;&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Neatpažintas pasirinkimas.&amp;quot;)&lt;br /&gt;
        opcijos()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Debugging |next=Advanced Functions Example}}&lt;/div&gt;</summary>
		<author><name>Rokas</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Funkcij%C5%B3_apibr%C4%97%C5%BEimas&amp;diff=3541</id>
		<title>Python Vadovėlis/Funkcijų apibrėžimas</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Funkcij%C5%B3_apibr%C4%97%C5%BEimas&amp;diff=3541"/>
		<updated>2021-11-17T06:44:13Z</updated>

		<summary type="html">&lt;p&gt;Rokas: /* Funkcijų kūrimas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Funkcijų kūrimas ===&lt;br /&gt;
Prieš pradėdami šį skyrių pateiksime tau pavyzdį, kurio gali nepersirašinėti:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=python&amp;gt;&lt;br /&gt;
a = 23&lt;br /&gt;
b = -23&lt;br /&gt;
&lt;br /&gt;
if a &amp;lt; 0:&lt;br /&gt;
    a = -a&lt;br /&gt;
if b &amp;lt; 0:&lt;br /&gt;
    b = -b&lt;br /&gt;
if a == b:&lt;br /&gt;
    print(&amp;quot;Absoliučios&amp;quot;, a, &amp;quot;ir&amp;quot;, b, &amp;quot;reikšmės yra lygios.&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Absoliučios&amp;quot;, a, &amp;quot;ir&amp;quot;, b, &amp;quot;reikšmės yra skirtingos.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Programos rezultatas:&lt;br /&gt;
 &lt;br /&gt;
 Absoliučios 23 ir 23 reikšmės yra lygios.&lt;br /&gt;
&lt;br /&gt;
Ar neatrogo, kad programa yra šiek tiek pasikartojanti?.. Ir tikriausiai jau numanai, programuotojai nemėgsta pasikartojančių dalykų, nes juk pasikartojantiems dalykams atlikti ir yra sukurti kompiuteriai!! Be to atkreipk dėmesį, kad radus absoliučią reikšmę pasikeitė kintamojo vertė, todėl programa spausdina 23, o ne -23. Mūsų laimei Python leidžia sukurti funkcijas, kurios šalina dubliavimą:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=python&amp;gt;&lt;br /&gt;
a = 23&lt;br /&gt;
b = -23&lt;br /&gt;
&lt;br /&gt;
def absoliuti_reikšmė(n):&lt;br /&gt;
    if n &amp;lt; 0:&lt;br /&gt;
        n = -n&lt;br /&gt;
    return n&lt;br /&gt;
&lt;br /&gt;
if absoliuti_reikšmė(a) == absoliuti_reikšmė(b):&lt;br /&gt;
    print(&amp;quot;Absoliučios&amp;quot;, a, &amp;quot;ir&amp;quot;, b, &amp;quot;reikšmės yra lygios.&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Absoliučios&amp;quot;, a, &amp;quot;ir&amp;quot;, b, &amp;quot;reikšmės yra lygios.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Programos rezultatas:&lt;br /&gt;
&lt;br /&gt;
 Absoliučios 23 ir -23 reikšmės yra lygios.&lt;br /&gt;
&lt;br /&gt;
Pagrindinis šios programos elementas yra žodis &amp;lt;code&amp;gt;def&amp;lt;/code.  &lt;br /&gt;
&amp;lt;code&amp;gt;def&amp;lt;/code&amp;gt; &lt;br /&gt;
yra angliško žodžio &amp;lt;code&amp;gt;define&amp;lt;/code&amp;gt;, kuris reiškia apibrėžti, trumpinys, o juo pradedame apibrėžti savo kuriamą funkciją. Po &amp;lt;code&amp;gt;def&amp;lt;/code&amp;gt; eina funkcijos pavadinimas: &amp;lt;code&amp;gt;absoliuti_reiksme&amp;lt;/code&amp;gt;. Vėliau skliausteliuose eina parametras n - &amp;lt;code&amp;gt;(n)&amp;lt;/code&amp;gt;, kurio reikšmė yra paimama iš programos, kai funkcija yra iškviečiama. Vėliau eina dvitaškis &amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt;, po kurio esantys teiginiai yra vykdomi naudojant šią funkciją. Teiginiai tęsiami tol, kol pasibaigia funkcijoje nurodyti veiksmai arba grąžinamas norimas rezultatas nurodytas po &amp;lt;code&amp;gt;return&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;return&amp;lt;/code&amp;gt; teiginys grąžina reikšmę į vietą, kur buvo iškviesta funkcija, kaip pirmoje mūsų kurtoje programoje rezultatas buvo grąžintas, kur kvietėme &amp;lt;code&amp;gt;print()&amp;lt;/code&amp;gt; funkciją. Na, o dabar galime kurti naujas funkcijas.&lt;br /&gt;
&lt;br /&gt;
Ar pastebėjai, kad &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt; reikšmės nepasikeitė?&lt;br /&gt;
&lt;br /&gt;
Funkcijos gali būti naudojamos kartojant užduotis, kurios negrąžina reikšmių. Štai keli pavyzdžiai:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def labas():&lt;br /&gt;
    print(&amp;quot;Labas&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
def plotas(plotis, aukštis):&lt;br /&gt;
    return plotis * aukštis&lt;br /&gt;
&lt;br /&gt;
def rašyk_mano_vardas(vardas):&lt;br /&gt;
    print(&amp;quot;Mano vardas&amp;quot;, vardas)&lt;br /&gt;
&lt;br /&gt;
labas()&lt;br /&gt;
labas()&lt;br /&gt;
&lt;br /&gt;
rašyk_labas(&amp;quot;Fredas&amp;quot;)&lt;br /&gt;
w = 4&lt;br /&gt;
h = 5&lt;br /&gt;
print(&amp;quot;plotis =&amp;quot;, w, &amp;quot; aukštis=&amp;quot;, h, &amp;quot; plotas=&amp;quot;, plotas(w, h))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
programos rezultatas&lt;br /&gt;
&lt;br /&gt;
 Labas&lt;br /&gt;
 Labas&lt;br /&gt;
 Mano vardas Fredas&lt;br /&gt;
 plotis = 4  aukštis = 5  plotas = 20&lt;br /&gt;
&lt;br /&gt;
Šis pavyzdys parodo ir daugiau dalykų, kuriuos galima padaryti su funkcijomis. Atkreipk dėmesį, kad galima nenaudoti argumentų arba galima naudoti du ar daugiau. Šis pavyzdys rodo dar keletą dalykų, kuriuos galite padaryti naudodami funkcijas. Taip pat atkreipk dėmesį, kad funkcijai nereikia grąžinti vertės, grąžinimas yra neprivalomas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Funkcijos gali būti naudojamos pakartotiniam kodui pašalinti. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Kintamieji funkcijose ===&lt;br /&gt;
Dažnai pasitaiko, kad pasikartojančiam kode yra kintamųjų, todėl į juos reikia atkreipti dėmesį, kai šaliname pakartotiną kodą. Iki šiol visi kintamieji, kuriuos matėme yra globalūs kintamieji, o funkcijose esantys kintamieji yra vadinami specialiu pavadinimu - lokalūs kintamieji. Šie kintamieji egzistuoja tik veikiant funkcijai. Kai lokalus kintamasis turi globalaus kintamojo pavadinimą, tai funkcijoje pirmenybė teikiama ir naudojamas lokalus kintamasis. Skamba painiai? Štai keli pavyzdžiai:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
a = 4&lt;br /&gt;
 &lt;br /&gt;
def manoFunkcija():&lt;br /&gt;
    a = 17&lt;br /&gt;
    print(&amp;quot;Mano funkcijoje a =&amp;quot;, a)&lt;br /&gt;
&lt;br /&gt;
manoFunkcija()&lt;br /&gt;
print(&amp;quot;a = &amp;quot;, a)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Gaunamas rezultatas&lt;br /&gt;
 Mano funkcijoje a = 17&lt;br /&gt;
 a = 4&lt;br /&gt;
&lt;br /&gt;
Kaip matai pavyzdyje, funkcijos viduje esantis kintamasis nepaiso globalaus kintamojo, nes egzistuoja tik funkcijos viduje. Taip pat, kaip matai, funkcijos viduje kintamajam &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; buvo priskirta nauja reikšmė, bet ji buvo aktuali tik funkcijoje, o ne už jos ribų, globalus &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;, koks buvo, toks ir liko.&lt;br /&gt;
&lt;br /&gt;
Kitas kiek sudėtingesnis pavyzdys:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
a_var = 10&lt;br /&gt;
b_var = 15&lt;br /&gt;
e_var = 25&lt;br /&gt;
&lt;br /&gt;
def funkcija(a_var):&lt;br /&gt;
    print(&amp;quot;funkcijoje a_var =&amp;quot;, a_var)&lt;br /&gt;
    b_var = 100 + a_var&lt;br /&gt;
    d_var = 2 * a_var&lt;br /&gt;
    print(&amp;quot;funkcijoje  b_var =&amp;quot;, b_var)&lt;br /&gt;
    print(&amp;quot;funkcijoje  d_var =&amp;quot;, d_var)&lt;br /&gt;
    print(&amp;quot;funkcijoje  e_var =&amp;quot;, e_var)&lt;br /&gt;
    return b_var + 10&lt;br /&gt;
&lt;br /&gt;
c_var = funkcija(b_var)&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;a_var =&amp;quot;, a_var)&lt;br /&gt;
print(&amp;quot;b_var =&amp;quot;, b_var)&lt;br /&gt;
print(&amp;quot;c_var =&amp;quot;, c_var)&lt;br /&gt;
print(&amp;quot;d_var =&amp;quot;, d_var)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
rezultatas:&lt;br /&gt;
&lt;br /&gt;
 funkcijoje a_var =  15&lt;br /&gt;
 funkcijoje  b_var =  115&lt;br /&gt;
 funkcijoje  d_var =  30&lt;br /&gt;
 funkcijoje  e_var =  25&lt;br /&gt;
 a_var =  10&lt;br /&gt;
 b_var =  15&lt;br /&gt;
 c_var =  125&lt;br /&gt;
 d_var = &lt;br /&gt;
 &lt;br /&gt;
 Klaida (paskutinė aptikta klaida):&lt;br /&gt;
  File &amp;quot;C:\def2.py&amp;quot;, eilutė 19, in &amp;lt;module&amp;gt; (modulyje)&lt;br /&gt;
    print(&amp;quot;d_var = &amp;quot;, d_var)&lt;br /&gt;
 NameError: pavadinimas 'd_var' yra neapibrėžtas&lt;br /&gt;
&lt;br /&gt;
Šiame pavyzdyje kintamieji &amp;lt;code&amp;gt;a_var&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;b_var&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;d_var&amp;lt;/code&amp;gt; yra lokalūs kintamieji priklausantyje funkcijai &amp;lt;code&amp;gt;funkcija()&amp;lt;/code&amp;gt;. Po argumento &amp;lt;code&amp;gt;return b_var + 10&amp;lt;/code&amp;gt; visi jie nustoja egzistuoti. Kintamasis &amp;lt;code&amp;gt; a_var &amp;lt;/code&amp;gt; yra parametro pavadinimas, todėl tai jį automatiškai padaro lokaliu kintamuoju. Kintamieji &amp;lt;code&amp;gt; b_var &amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt; d_var &amp;lt;/code&amp;gt; yra vietiniai kintamieji, nes jie rodomi funkcijos lygybės ženklo kairėje pusėje esančiuose teiginiuose &amp;lt;code&amp;gt; b_var = 100 + a_var &amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt; d_var = 2 * a_var &amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Funkcijos &amp;lt;code&amp;gt; a_var &amp;lt;/code&amp;gt; viduje nėra jai priskirtos vertės. Kai funkcija iškviečiama naudojant &amp;lt;code&amp;gt; c_var = funkcija(b_var) &amp;lt;/code&amp;gt;, 15 priskiriama &amp;lt;code&amp;gt; a_var &amp;lt;/code&amp;gt;, nes tuo metu &amp;lt;code&amp;gt; b_var &amp;lt;/code&amp;gt; yra 15, kai kviečiama funkcija &amp;lt;code&amp;gt; funkcija(15) &amp;lt;/code&amp;gt;. Galiausiai &amp;lt;code&amp;gt; a_var &amp;lt;/code&amp;gt; reikšmė nustatoma į 15, kai jis yra funkcijos &amp;lt;code&amp;gt;funkcija&amp;lt;/code&amp;gt; viduje.&lt;br /&gt;
&lt;br /&gt;
Kaip matai, pasibaigus funkcijai, vietiniai kintamieji &amp;lt;code&amp;gt; a_var &amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt; b_var &amp;lt;/code&amp;gt;, kurie buvo naudojami vietoj globalių kintamųjų dingo. Tada teiginys &amp;lt;code&amp;gt; print (&amp;quot;a_var =&amp;quot;, a_var) &amp;lt;/code&amp;gt; atspausdina reikšmę &amp;lt;code&amp;gt; 10 &amp;lt;/code&amp;gt;, o ne reikšmę &amp;lt;code&amp;gt; 15 &amp;lt;/code&amp;gt; kai dingo lokalus kintamasis, kuris slėpė globalaus kintamojo reikšmę.&lt;br /&gt;
&lt;br /&gt;
Taip pat reikia atkreipti dėmesį į klaidą &amp;lt;code&amp;gt; NameError &amp;lt;/code&amp;gt;, kuri atsiranda mūsų programos pabaigoje. Tai nutinka, nes kintamasis &amp;lt;code&amp;gt; d_var &amp;lt;/code&amp;gt; nebeegzistuoja nuo tada, kai baigėsi &amp;lt;code&amp;gt; funkcija &amp;lt;/code&amp;gt;. Išjungus funkciją, visi lokalūs kintamieji ištrinami. Jeigu nori, ką nors gauti iš funkcijos, turėsi naudoti &amp;lt;code&amp;gt; return&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Paskutinis dalykas, į kurį reikia atkreipti dėmesį, yra tai, kad funkcijos viduje &amp;lt;code&amp;gt; e_var &amp;lt;/code&amp;gt; vertė išlieka nepakitusi, nes tai nėra parametras ir ji niekada nerodoma kairėje funkcijos pusėje. &amp;lt;code&amp;gt; a_func &amp;lt;/code&amp;gt;. Kai funkcijos viduje pasiekiamas globalus kintamasis, tai yra išorinis kintamasis esantis už funkcijos ribų.&lt;br /&gt;
&lt;br /&gt;
Funkcijos naudoja lokalius kintamuosius, kurie egzistuoja tik funkcijos viduje, ir gali ignoruoti kitus kintamuosius, kurie yra už funkcijos ribų.&lt;br /&gt;
&lt;br /&gt;
=== Pavyzdžiai ===&lt;br /&gt;
'''temperatūra2.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#! /usr/bin/python&lt;br /&gt;
#-*-coding: utf-8 -*-&lt;br /&gt;
# konvertuoja temperatūrą į Farenheitus ar Celsijų&lt;br /&gt;
 &lt;br /&gt;
def spausdinti_pasirinkimus():&lt;br /&gt;
    print(&amp;quot;Pasirinkimai:&amp;quot;)&lt;br /&gt;
    print(&amp;quot; 'p' spausdinti pasirinkimus&amp;quot;)&lt;br /&gt;
    print(&amp;quot; 'c' konvertuoti iš Celsijaus&amp;quot;)&lt;br /&gt;
    print(&amp;quot; 'f' konvertuoti iš Farenheitų&amp;quot;)&lt;br /&gt;
    print(&amp;quot; 'q' išjungti programą&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
def celsijus_i_farenheitus(c_temp):&lt;br /&gt;
    return 9.0 / 5.0 * c_temp + 32&lt;br /&gt;
 &lt;br /&gt;
def farenheitai_i_celsiju(f_temp):&lt;br /&gt;
    return (f_temp - 32.0) * 5.0 / 9.0&lt;br /&gt;
 &lt;br /&gt;
pasirinkimas = &amp;quot;p&amp;quot;&lt;br /&gt;
while pasirinkimas != &amp;quot;q&amp;quot;:&lt;br /&gt;
    if pasirinkimas == &amp;quot;c&amp;quot;:&lt;br /&gt;
        c_temp = float(input(&amp;quot;Celsijaus temperatūra: &amp;quot;))&lt;br /&gt;
        print(&amp;quot;Farenheitai:&amp;quot;, celsijus_i_farenheitus(c_temp))&lt;br /&gt;
        pasirinkimas = input(&amp;quot;pasirinkimas: &amp;quot;)&lt;br /&gt;
    elif pasirinkimas == &amp;quot;f&amp;quot;:&lt;br /&gt;
        f_temp = float(input(&amp;quot;farenheitai_i_celsiju: &amp;quot;))&lt;br /&gt;
        print(&amp;quot;Celsijus:&amp;quot;, fahrenheit_to_celsius(f_temp))&lt;br /&gt;
        pasirinkimas= input(&amp;quot;option: &amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        pasirinkimas= &amp;quot;p&amp;quot;    #Arba pasirinkimas! = &amp;quot;q&amp;quot;: kad spausdintų&lt;br /&gt;
                        #kai įrašoma, kas nors netikėto&lt;br /&gt;
        spausdinti_pasirinkimus()&lt;br /&gt;
        pasirinkimas = input(&amp;quot;pasirinkimas: &amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kaip tai veikia?:&lt;br /&gt;
&lt;br /&gt;
 Pasirinkimai:&lt;br /&gt;
  'p' spausdinti pasirinkimus&lt;br /&gt;
  'c' konvertuoti iš Celsijaus&lt;br /&gt;
  'f' konvertuoti iš Farenheitų&lt;br /&gt;
  'q' išjungti programą&lt;br /&gt;
 pasirinkimas: '''c'''&lt;br /&gt;
 Celsijaus temperatūra: '''30''' &lt;br /&gt;
 Farenheitai: 86.0&lt;br /&gt;
 pasirinkimas: '''f'''&lt;br /&gt;
 Farenheitų temperatūra: '''60'''&lt;br /&gt;
 Celsijus: 15.5555555556&lt;br /&gt;
 pasirinkimas: '''q'''&lt;br /&gt;
&lt;br /&gt;
'''plotas2.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#! /usr/bin/python&lt;br /&gt;
#-*-coding: utf-8 -*-&lt;br /&gt;
# apskaičiuoja duotą stačiakampio plotą&lt;br /&gt;
&lt;br /&gt;
def pasisveikinimas():&lt;br /&gt;
    print('Labas!')&lt;br /&gt;
 &lt;br /&gt;
def plotas(plotis, aukštis):&lt;br /&gt;
    return plotis * aukštis&lt;br /&gt;
 &lt;br /&gt;
def mano_vardas(vardas):&lt;br /&gt;
    print('Mano vardas yra,', vardas)&lt;br /&gt;
 &lt;br /&gt;
def teigiama_įvestis(sugalvotas_skaičius):&lt;br /&gt;
    skaičius = float(input(sugalvotas_skaičius))&lt;br /&gt;
    while skaičius&amp;lt;= 0:&lt;br /&gt;
        print('Privalo būti teigiamas skaičius')&lt;br /&gt;
        skaičius = float(input(sugalvotas_skaičius))&lt;br /&gt;
    return skaičius&lt;br /&gt;
 &lt;br /&gt;
vardas = input('Tavo vardas: ')&lt;br /&gt;
pasisveikinimas()&lt;br /&gt;
mano_vardas(name)&lt;br /&gt;
print()&lt;br /&gt;
print('Kad rastum stačiakampio plotą,')&lt;br /&gt;
print('įrašyk plotį ir aukštį')&lt;br /&gt;
print()&lt;br /&gt;
w = positive_input('Plotis: ')&lt;br /&gt;
h = positive_input('Aukštis: ')&lt;br /&gt;
 &lt;br /&gt;
print('Plotis =', w, ' Aukštis =', h, ' Plotas =', area(w, h))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kaip veikia?&lt;br /&gt;
&lt;br /&gt;
 Tavo vardas: '''Josh'''&lt;br /&gt;
 Labas!&lt;br /&gt;
 Mano vardas yra Josh&lt;br /&gt;
 &lt;br /&gt;
 Kad rastum stačiakampio plotą,&lt;br /&gt;
 įrašyk plotį ir aukštį.&lt;br /&gt;
 &lt;br /&gt;
 Plotis: '''-4'''&lt;br /&gt;
 Privalo būti teigiamas skaičius&lt;br /&gt;
 Plotis: '''4'''&lt;br /&gt;
 Aukštis: '''3'''&lt;br /&gt;
 Plotis = 4  Aukštis = 3  Plotas = 12&lt;br /&gt;
&lt;br /&gt;
=== Užduotis ===&lt;br /&gt;
Perrašyk programą plotas2.py, kuri yra aukščiau pateiktame pavyzdyje, kad turėtum atskirą kvadrato, stačiakampio ir apskritimo ploto funkcijas ((&amp;lt;code&amp;gt;3.14 * spindulys**2&amp;lt;/code&amp;gt;). Taip pat šioje programoje turėtų būti meniu:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Solution|title=Sprendimas|text=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def kvadratas(L):&lt;br /&gt;
    return L * L&lt;br /&gt;
&lt;br /&gt;
def stačiakampis(aukštis, plotis):&lt;br /&gt;
    return aukštis * plotis&lt;br /&gt;
&lt;br /&gt;
def apskritimas(spindulys):&lt;br /&gt;
    return 3.14159 * spindulys** 2&lt;br /&gt;
&lt;br /&gt;
def opcijos():&lt;br /&gt;
    print()&lt;br /&gt;
    print(&amp;quot;Pasirinkimai:&amp;quot;)&lt;br /&gt;
    print(&amp;quot;s = skaičiuoti kvadrato plotą.&amp;quot;)&lt;br /&gt;
    print(&amp;quot;c = skaičiuoti apskritimo plotą.&amp;quot;)&lt;br /&gt;
    print(&amp;quot;r = skaičiuoti stačiakampio plotą.&amp;quot;)&lt;br /&gt;
    print(&amp;quot;q = išeiti&amp;quot;)&lt;br /&gt;
    print()&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Ši programa apskaičiuos kvadrato, apskritimo ar stačiakampio plotą.&amp;quot;)&lt;br /&gt;
pasirinkimas = &amp;quot;x&amp;quot;&lt;br /&gt;
opcijos()&lt;br /&gt;
while pasirinkimas != &amp;quot;q&amp;quot;:&lt;br /&gt;
    choice = input(&amp;quot;Įrašykite jūsų pasirinkimą: &amp;quot;)&lt;br /&gt;
    if pasirinkimas== &amp;quot;s&amp;quot;:&lt;br /&gt;
        L = float(input(&amp;quot;Kvadrato kraštinės ilgis: &amp;quot;))&lt;br /&gt;
        print(&amp;quot;Šio kvadrato plotas&amp;quot;, kvadratas(L))&lt;br /&gt;
        opcijos()&lt;br /&gt;
    elif pasirinkimas == &amp;quot;c&amp;quot;:&lt;br /&gt;
        spindulys = float(input(&amp;quot;Apskritimo spindulys yra: &amp;quot;))&lt;br /&gt;
        print(&amp;quot;Apskritimo plotas yra&amp;quot;, apskritimas(spindulys))&lt;br /&gt;
        opcijos()&lt;br /&gt;
    elif pasirinkimas == &amp;quot;r&amp;quot;:&lt;br /&gt;
        plotis = float(input(&amp;quot;Stačiakampio plotis: &amp;quot;))&lt;br /&gt;
        aukštis = float(input(&amp;quot;Stačiakampio aukštis: &amp;quot;))&lt;br /&gt;
        print(&amp;quot;Stačiakampio plotas yra&amp;quot;, kvadratas(plotis, aukštis))&lt;br /&gt;
        opcijos()&lt;br /&gt;
    elif pasirinkimas == &amp;quot;q&amp;quot;:&lt;br /&gt;
        print(&amp;quot; &amp;quot;,end=&amp;quot;&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Neatpažintas pasirinkimas.&amp;quot;)&lt;br /&gt;
        opcijos()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Debugging |next=Advanced Functions Example}}&lt;/div&gt;</summary>
		<author><name>Rokas</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Funkcij%C5%B3_apibr%C4%97%C5%BEimas&amp;diff=3540</id>
		<title>Python Vadovėlis/Funkcijų apibrėžimas</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Funkcij%C5%B3_apibr%C4%97%C5%BEimas&amp;diff=3540"/>
		<updated>2021-11-17T06:43:45Z</updated>

		<summary type="html">&lt;p&gt;Rokas: /* Funkcijų kūrimas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Funkcijų kūrimas ===&lt;br /&gt;
Prieš pradėdami šį skyrių pateiksime tau pavyzdį, kurio gali nepersirašinėti:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=python&amp;gt;&lt;br /&gt;
a = 23&lt;br /&gt;
b = -23&lt;br /&gt;
&lt;br /&gt;
if a &amp;lt; 0:&lt;br /&gt;
    a = -a&lt;br /&gt;
if b &amp;lt; 0:&lt;br /&gt;
    b = -b&lt;br /&gt;
if a == b:&lt;br /&gt;
    print(&amp;quot;Absoliučios&amp;quot;, a, &amp;quot;ir&amp;quot;, b, &amp;quot;reikšmės yra lygios.&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Absoliučios&amp;quot;, a, &amp;quot;ir&amp;quot;, b, &amp;quot;reikšmės yra skirtingos.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Programos rezultatas:&lt;br /&gt;
 &lt;br /&gt;
 Absoliučios 23 ir 23 reikšmės yra lygios.&lt;br /&gt;
&lt;br /&gt;
Ar neatrogo, kad programa yra šiek tiek pasikartojanti?.. Ir tikriausiai jau numanai, programuotojai nemėgsta pasikartojančių dalykų, nes juk pasikartojantiems dalykams atlikti ir yra sukurti kompiuteriai!! Be to atkreipk dėmesį, kad radus absoliučią reikšmę pasikeitė kintamojo vertė, todėl programa spausdina 23, o ne -23. Mūsų laimei Python leidžia sukurti funkcijas, kurios šalina dubliavimą:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=python&amp;gt;&lt;br /&gt;
a = 23&lt;br /&gt;
b = -23&lt;br /&gt;
&lt;br /&gt;
def absoliuti_reikšmė(n):&lt;br /&gt;
    if n &amp;lt; 0:&lt;br /&gt;
        n = -n&lt;br /&gt;
    return n&lt;br /&gt;
&lt;br /&gt;
if absoliuti_reikšmė(a) == absoliuti_reikšmė(b):&lt;br /&gt;
    print(&amp;quot;Absoliučios&amp;quot;, a, &amp;quot;ir&amp;quot;, b, &amp;quot;reikšmės yra lygios.&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Absoliučios&amp;quot;, a, &amp;quot;ir&amp;quot;, b, &amp;quot;reikšmės yra lygios.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Programos rezultatas:&lt;br /&gt;
&lt;br /&gt;
 Absoliučios 23 ir -23 reikšmės yra lygios.&lt;br /&gt;
&lt;br /&gt;
Pagrindinis šios programos elementas yra žodis &amp;lt;code&amp;gt;def&amp;lt;/code.  &lt;br /&gt;
&amp;lt;code&amp;gt;def&amp;lt;/code&amp;gt; yra angliško žodžio &amp;lt;code&amp;gt;define&amp;lt;/code&amp;gt;, kuris reiškia apibrėžti, trumpinys, o juo pradedame apibrėžti savo kuriamą funkciją. Po &amp;lt;code&amp;gt;def&amp;lt;/code&amp;gt; eina funkcijos pavadinimas: &amp;lt;code&amp;gt;absoliuti_reiksme&amp;lt;/code&amp;gt;. Vėliau skliausteliuose eina parametras n - &amp;lt;code&amp;gt;(n)&amp;lt;/code&amp;gt;, kurio reikšmė yra paimama iš programos, kai funkcija yra iškviečiama. Vėliau eina dvitaškis &amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt;, po kurio esantys teiginiai yra vykdomi naudojant šią funkciją. Teiginiai tęsiami tol, kol pasibaigia funkcijoje nurodyti veiksmai arba grąžinamas norimas rezultatas nurodytas po &amp;lt;code&amp;gt;return&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;return&amp;lt;/code&amp;gt; teiginys grąžina reikšmę į vietą, kur buvo iškviesta funkcija, kaip pirmoje mūsų kurtoje programoje rezultatas buvo grąžintas, kur kvietėme &amp;lt;code&amp;gt;print()&amp;lt;/code&amp;gt; funkciją. Na, o dabar galime kurti naujas funkcijas.&lt;br /&gt;
&lt;br /&gt;
Ar pastebėjai, kad &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt; reikšmės nepasikeitė?&lt;br /&gt;
&lt;br /&gt;
Funkcijos gali būti naudojamos kartojant užduotis, kurios negrąžina reikšmių. Štai keli pavyzdžiai:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def labas():&lt;br /&gt;
    print(&amp;quot;Labas&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
def plotas(plotis, aukštis):&lt;br /&gt;
    return plotis * aukštis&lt;br /&gt;
&lt;br /&gt;
def rašyk_mano_vardas(vardas):&lt;br /&gt;
    print(&amp;quot;Mano vardas&amp;quot;, vardas)&lt;br /&gt;
&lt;br /&gt;
labas()&lt;br /&gt;
labas()&lt;br /&gt;
&lt;br /&gt;
rašyk_labas(&amp;quot;Fredas&amp;quot;)&lt;br /&gt;
w = 4&lt;br /&gt;
h = 5&lt;br /&gt;
print(&amp;quot;plotis =&amp;quot;, w, &amp;quot; aukštis=&amp;quot;, h, &amp;quot; plotas=&amp;quot;, plotas(w, h))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
programos rezultatas&lt;br /&gt;
&lt;br /&gt;
 Labas&lt;br /&gt;
 Labas&lt;br /&gt;
 Mano vardas Fredas&lt;br /&gt;
 plotis = 4  aukštis = 5  plotas = 20&lt;br /&gt;
&lt;br /&gt;
Šis pavyzdys parodo ir daugiau dalykų, kuriuos galima padaryti su funkcijomis. Atkreipk dėmesį, kad galima nenaudoti argumentų arba galima naudoti du ar daugiau. Šis pavyzdys rodo dar keletą dalykų, kuriuos galite padaryti naudodami funkcijas. Taip pat atkreipk dėmesį, kad funkcijai nereikia grąžinti vertės, grąžinimas yra neprivalomas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Funkcijos gali būti naudojamos pakartotiniam kodui pašalinti. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Kintamieji funkcijose ===&lt;br /&gt;
Dažnai pasitaiko, kad pasikartojančiam kode yra kintamųjų, todėl į juos reikia atkreipti dėmesį, kai šaliname pakartotiną kodą. Iki šiol visi kintamieji, kuriuos matėme yra globalūs kintamieji, o funkcijose esantys kintamieji yra vadinami specialiu pavadinimu - lokalūs kintamieji. Šie kintamieji egzistuoja tik veikiant funkcijai. Kai lokalus kintamasis turi globalaus kintamojo pavadinimą, tai funkcijoje pirmenybė teikiama ir naudojamas lokalus kintamasis. Skamba painiai? Štai keli pavyzdžiai:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
a = 4&lt;br /&gt;
 &lt;br /&gt;
def manoFunkcija():&lt;br /&gt;
    a = 17&lt;br /&gt;
    print(&amp;quot;Mano funkcijoje a =&amp;quot;, a)&lt;br /&gt;
&lt;br /&gt;
manoFunkcija()&lt;br /&gt;
print(&amp;quot;a = &amp;quot;, a)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Gaunamas rezultatas&lt;br /&gt;
 Mano funkcijoje a = 17&lt;br /&gt;
 a = 4&lt;br /&gt;
&lt;br /&gt;
Kaip matai pavyzdyje, funkcijos viduje esantis kintamasis nepaiso globalaus kintamojo, nes egzistuoja tik funkcijos viduje. Taip pat, kaip matai, funkcijos viduje kintamajam &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; buvo priskirta nauja reikšmė, bet ji buvo aktuali tik funkcijoje, o ne už jos ribų, globalus &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;, koks buvo, toks ir liko.&lt;br /&gt;
&lt;br /&gt;
Kitas kiek sudėtingesnis pavyzdys:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
a_var = 10&lt;br /&gt;
b_var = 15&lt;br /&gt;
e_var = 25&lt;br /&gt;
&lt;br /&gt;
def funkcija(a_var):&lt;br /&gt;
    print(&amp;quot;funkcijoje a_var =&amp;quot;, a_var)&lt;br /&gt;
    b_var = 100 + a_var&lt;br /&gt;
    d_var = 2 * a_var&lt;br /&gt;
    print(&amp;quot;funkcijoje  b_var =&amp;quot;, b_var)&lt;br /&gt;
    print(&amp;quot;funkcijoje  d_var =&amp;quot;, d_var)&lt;br /&gt;
    print(&amp;quot;funkcijoje  e_var =&amp;quot;, e_var)&lt;br /&gt;
    return b_var + 10&lt;br /&gt;
&lt;br /&gt;
c_var = funkcija(b_var)&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;a_var =&amp;quot;, a_var)&lt;br /&gt;
print(&amp;quot;b_var =&amp;quot;, b_var)&lt;br /&gt;
print(&amp;quot;c_var =&amp;quot;, c_var)&lt;br /&gt;
print(&amp;quot;d_var =&amp;quot;, d_var)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
rezultatas:&lt;br /&gt;
&lt;br /&gt;
 funkcijoje a_var =  15&lt;br /&gt;
 funkcijoje  b_var =  115&lt;br /&gt;
 funkcijoje  d_var =  30&lt;br /&gt;
 funkcijoje  e_var =  25&lt;br /&gt;
 a_var =  10&lt;br /&gt;
 b_var =  15&lt;br /&gt;
 c_var =  125&lt;br /&gt;
 d_var = &lt;br /&gt;
 &lt;br /&gt;
 Klaida (paskutinė aptikta klaida):&lt;br /&gt;
  File &amp;quot;C:\def2.py&amp;quot;, eilutė 19, in &amp;lt;module&amp;gt; (modulyje)&lt;br /&gt;
    print(&amp;quot;d_var = &amp;quot;, d_var)&lt;br /&gt;
 NameError: pavadinimas 'd_var' yra neapibrėžtas&lt;br /&gt;
&lt;br /&gt;
Šiame pavyzdyje kintamieji &amp;lt;code&amp;gt;a_var&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;b_var&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;d_var&amp;lt;/code&amp;gt; yra lokalūs kintamieji priklausantyje funkcijai &amp;lt;code&amp;gt;funkcija()&amp;lt;/code&amp;gt;. Po argumento &amp;lt;code&amp;gt;return b_var + 10&amp;lt;/code&amp;gt; visi jie nustoja egzistuoti. Kintamasis &amp;lt;code&amp;gt; a_var &amp;lt;/code&amp;gt; yra parametro pavadinimas, todėl tai jį automatiškai padaro lokaliu kintamuoju. Kintamieji &amp;lt;code&amp;gt; b_var &amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt; d_var &amp;lt;/code&amp;gt; yra vietiniai kintamieji, nes jie rodomi funkcijos lygybės ženklo kairėje pusėje esančiuose teiginiuose &amp;lt;code&amp;gt; b_var = 100 + a_var &amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt; d_var = 2 * a_var &amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Funkcijos &amp;lt;code&amp;gt; a_var &amp;lt;/code&amp;gt; viduje nėra jai priskirtos vertės. Kai funkcija iškviečiama naudojant &amp;lt;code&amp;gt; c_var = funkcija(b_var) &amp;lt;/code&amp;gt;, 15 priskiriama &amp;lt;code&amp;gt; a_var &amp;lt;/code&amp;gt;, nes tuo metu &amp;lt;code&amp;gt; b_var &amp;lt;/code&amp;gt; yra 15, kai kviečiama funkcija &amp;lt;code&amp;gt; funkcija(15) &amp;lt;/code&amp;gt;. Galiausiai &amp;lt;code&amp;gt; a_var &amp;lt;/code&amp;gt; reikšmė nustatoma į 15, kai jis yra funkcijos &amp;lt;code&amp;gt;funkcija&amp;lt;/code&amp;gt; viduje.&lt;br /&gt;
&lt;br /&gt;
Kaip matai, pasibaigus funkcijai, vietiniai kintamieji &amp;lt;code&amp;gt; a_var &amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt; b_var &amp;lt;/code&amp;gt;, kurie buvo naudojami vietoj globalių kintamųjų dingo. Tada teiginys &amp;lt;code&amp;gt; print (&amp;quot;a_var =&amp;quot;, a_var) &amp;lt;/code&amp;gt; atspausdina reikšmę &amp;lt;code&amp;gt; 10 &amp;lt;/code&amp;gt;, o ne reikšmę &amp;lt;code&amp;gt; 15 &amp;lt;/code&amp;gt; kai dingo lokalus kintamasis, kuris slėpė globalaus kintamojo reikšmę.&lt;br /&gt;
&lt;br /&gt;
Taip pat reikia atkreipti dėmesį į klaidą &amp;lt;code&amp;gt; NameError &amp;lt;/code&amp;gt;, kuri atsiranda mūsų programos pabaigoje. Tai nutinka, nes kintamasis &amp;lt;code&amp;gt; d_var &amp;lt;/code&amp;gt; nebeegzistuoja nuo tada, kai baigėsi &amp;lt;code&amp;gt; funkcija &amp;lt;/code&amp;gt;. Išjungus funkciją, visi lokalūs kintamieji ištrinami. Jeigu nori, ką nors gauti iš funkcijos, turėsi naudoti &amp;lt;code&amp;gt; return&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Paskutinis dalykas, į kurį reikia atkreipti dėmesį, yra tai, kad funkcijos viduje &amp;lt;code&amp;gt; e_var &amp;lt;/code&amp;gt; vertė išlieka nepakitusi, nes tai nėra parametras ir ji niekada nerodoma kairėje funkcijos pusėje. &amp;lt;code&amp;gt; a_func &amp;lt;/code&amp;gt;. Kai funkcijos viduje pasiekiamas globalus kintamasis, tai yra išorinis kintamasis esantis už funkcijos ribų.&lt;br /&gt;
&lt;br /&gt;
Funkcijos naudoja lokalius kintamuosius, kurie egzistuoja tik funkcijos viduje, ir gali ignoruoti kitus kintamuosius, kurie yra už funkcijos ribų.&lt;br /&gt;
&lt;br /&gt;
=== Pavyzdžiai ===&lt;br /&gt;
'''temperatūra2.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#! /usr/bin/python&lt;br /&gt;
#-*-coding: utf-8 -*-&lt;br /&gt;
# konvertuoja temperatūrą į Farenheitus ar Celsijų&lt;br /&gt;
 &lt;br /&gt;
def spausdinti_pasirinkimus():&lt;br /&gt;
    print(&amp;quot;Pasirinkimai:&amp;quot;)&lt;br /&gt;
    print(&amp;quot; 'p' spausdinti pasirinkimus&amp;quot;)&lt;br /&gt;
    print(&amp;quot; 'c' konvertuoti iš Celsijaus&amp;quot;)&lt;br /&gt;
    print(&amp;quot; 'f' konvertuoti iš Farenheitų&amp;quot;)&lt;br /&gt;
    print(&amp;quot; 'q' išjungti programą&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
def celsijus_i_farenheitus(c_temp):&lt;br /&gt;
    return 9.0 / 5.0 * c_temp + 32&lt;br /&gt;
 &lt;br /&gt;
def farenheitai_i_celsiju(f_temp):&lt;br /&gt;
    return (f_temp - 32.0) * 5.0 / 9.0&lt;br /&gt;
 &lt;br /&gt;
pasirinkimas = &amp;quot;p&amp;quot;&lt;br /&gt;
while pasirinkimas != &amp;quot;q&amp;quot;:&lt;br /&gt;
    if pasirinkimas == &amp;quot;c&amp;quot;:&lt;br /&gt;
        c_temp = float(input(&amp;quot;Celsijaus temperatūra: &amp;quot;))&lt;br /&gt;
        print(&amp;quot;Farenheitai:&amp;quot;, celsijus_i_farenheitus(c_temp))&lt;br /&gt;
        pasirinkimas = input(&amp;quot;pasirinkimas: &amp;quot;)&lt;br /&gt;
    elif pasirinkimas == &amp;quot;f&amp;quot;:&lt;br /&gt;
        f_temp = float(input(&amp;quot;farenheitai_i_celsiju: &amp;quot;))&lt;br /&gt;
        print(&amp;quot;Celsijus:&amp;quot;, fahrenheit_to_celsius(f_temp))&lt;br /&gt;
        pasirinkimas= input(&amp;quot;option: &amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        pasirinkimas= &amp;quot;p&amp;quot;    #Arba pasirinkimas! = &amp;quot;q&amp;quot;: kad spausdintų&lt;br /&gt;
                        #kai įrašoma, kas nors netikėto&lt;br /&gt;
        spausdinti_pasirinkimus()&lt;br /&gt;
        pasirinkimas = input(&amp;quot;pasirinkimas: &amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kaip tai veikia?:&lt;br /&gt;
&lt;br /&gt;
 Pasirinkimai:&lt;br /&gt;
  'p' spausdinti pasirinkimus&lt;br /&gt;
  'c' konvertuoti iš Celsijaus&lt;br /&gt;
  'f' konvertuoti iš Farenheitų&lt;br /&gt;
  'q' išjungti programą&lt;br /&gt;
 pasirinkimas: '''c'''&lt;br /&gt;
 Celsijaus temperatūra: '''30''' &lt;br /&gt;
 Farenheitai: 86.0&lt;br /&gt;
 pasirinkimas: '''f'''&lt;br /&gt;
 Farenheitų temperatūra: '''60'''&lt;br /&gt;
 Celsijus: 15.5555555556&lt;br /&gt;
 pasirinkimas: '''q'''&lt;br /&gt;
&lt;br /&gt;
'''plotas2.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#! /usr/bin/python&lt;br /&gt;
#-*-coding: utf-8 -*-&lt;br /&gt;
# apskaičiuoja duotą stačiakampio plotą&lt;br /&gt;
&lt;br /&gt;
def pasisveikinimas():&lt;br /&gt;
    print('Labas!')&lt;br /&gt;
 &lt;br /&gt;
def plotas(plotis, aukštis):&lt;br /&gt;
    return plotis * aukštis&lt;br /&gt;
 &lt;br /&gt;
def mano_vardas(vardas):&lt;br /&gt;
    print('Mano vardas yra,', vardas)&lt;br /&gt;
 &lt;br /&gt;
def teigiama_įvestis(sugalvotas_skaičius):&lt;br /&gt;
    skaičius = float(input(sugalvotas_skaičius))&lt;br /&gt;
    while skaičius&amp;lt;= 0:&lt;br /&gt;
        print('Privalo būti teigiamas skaičius')&lt;br /&gt;
        skaičius = float(input(sugalvotas_skaičius))&lt;br /&gt;
    return skaičius&lt;br /&gt;
 &lt;br /&gt;
vardas = input('Tavo vardas: ')&lt;br /&gt;
pasisveikinimas()&lt;br /&gt;
mano_vardas(name)&lt;br /&gt;
print()&lt;br /&gt;
print('Kad rastum stačiakampio plotą,')&lt;br /&gt;
print('įrašyk plotį ir aukštį')&lt;br /&gt;
print()&lt;br /&gt;
w = positive_input('Plotis: ')&lt;br /&gt;
h = positive_input('Aukštis: ')&lt;br /&gt;
 &lt;br /&gt;
print('Plotis =', w, ' Aukštis =', h, ' Plotas =', area(w, h))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kaip veikia?&lt;br /&gt;
&lt;br /&gt;
 Tavo vardas: '''Josh'''&lt;br /&gt;
 Labas!&lt;br /&gt;
 Mano vardas yra Josh&lt;br /&gt;
 &lt;br /&gt;
 Kad rastum stačiakampio plotą,&lt;br /&gt;
 įrašyk plotį ir aukštį.&lt;br /&gt;
 &lt;br /&gt;
 Plotis: '''-4'''&lt;br /&gt;
 Privalo būti teigiamas skaičius&lt;br /&gt;
 Plotis: '''4'''&lt;br /&gt;
 Aukštis: '''3'''&lt;br /&gt;
 Plotis = 4  Aukštis = 3  Plotas = 12&lt;br /&gt;
&lt;br /&gt;
=== Užduotis ===&lt;br /&gt;
Perrašyk programą plotas2.py, kuri yra aukščiau pateiktame pavyzdyje, kad turėtum atskirą kvadrato, stačiakampio ir apskritimo ploto funkcijas ((&amp;lt;code&amp;gt;3.14 * spindulys**2&amp;lt;/code&amp;gt;). Taip pat šioje programoje turėtų būti meniu:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Solution|title=Sprendimas|text=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def kvadratas(L):&lt;br /&gt;
    return L * L&lt;br /&gt;
&lt;br /&gt;
def stačiakampis(aukštis, plotis):&lt;br /&gt;
    return aukštis * plotis&lt;br /&gt;
&lt;br /&gt;
def apskritimas(spindulys):&lt;br /&gt;
    return 3.14159 * spindulys** 2&lt;br /&gt;
&lt;br /&gt;
def opcijos():&lt;br /&gt;
    print()&lt;br /&gt;
    print(&amp;quot;Pasirinkimai:&amp;quot;)&lt;br /&gt;
    print(&amp;quot;s = skaičiuoti kvadrato plotą.&amp;quot;)&lt;br /&gt;
    print(&amp;quot;c = skaičiuoti apskritimo plotą.&amp;quot;)&lt;br /&gt;
    print(&amp;quot;r = skaičiuoti stačiakampio plotą.&amp;quot;)&lt;br /&gt;
    print(&amp;quot;q = išeiti&amp;quot;)&lt;br /&gt;
    print()&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Ši programa apskaičiuos kvadrato, apskritimo ar stačiakampio plotą.&amp;quot;)&lt;br /&gt;
pasirinkimas = &amp;quot;x&amp;quot;&lt;br /&gt;
opcijos()&lt;br /&gt;
while pasirinkimas != &amp;quot;q&amp;quot;:&lt;br /&gt;
    choice = input(&amp;quot;Įrašykite jūsų pasirinkimą: &amp;quot;)&lt;br /&gt;
    if pasirinkimas== &amp;quot;s&amp;quot;:&lt;br /&gt;
        L = float(input(&amp;quot;Kvadrato kraštinės ilgis: &amp;quot;))&lt;br /&gt;
        print(&amp;quot;Šio kvadrato plotas&amp;quot;, kvadratas(L))&lt;br /&gt;
        opcijos()&lt;br /&gt;
    elif pasirinkimas == &amp;quot;c&amp;quot;:&lt;br /&gt;
        spindulys = float(input(&amp;quot;Apskritimo spindulys yra: &amp;quot;))&lt;br /&gt;
        print(&amp;quot;Apskritimo plotas yra&amp;quot;, apskritimas(spindulys))&lt;br /&gt;
        opcijos()&lt;br /&gt;
    elif pasirinkimas == &amp;quot;r&amp;quot;:&lt;br /&gt;
        plotis = float(input(&amp;quot;Stačiakampio plotis: &amp;quot;))&lt;br /&gt;
        aukštis = float(input(&amp;quot;Stačiakampio aukštis: &amp;quot;))&lt;br /&gt;
        print(&amp;quot;Stačiakampio plotas yra&amp;quot;, kvadratas(plotis, aukštis))&lt;br /&gt;
        opcijos()&lt;br /&gt;
    elif pasirinkimas == &amp;quot;q&amp;quot;:&lt;br /&gt;
        print(&amp;quot; &amp;quot;,end=&amp;quot;&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Neatpažintas pasirinkimas.&amp;quot;)&lt;br /&gt;
        opcijos()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Debugging |next=Advanced Functions Example}}&lt;/div&gt;</summary>
		<author><name>Rokas</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Funkcij%C5%B3_apibr%C4%97%C5%BEimas&amp;diff=3539</id>
		<title>Python Vadovėlis/Funkcijų apibrėžimas</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Funkcij%C5%B3_apibr%C4%97%C5%BEimas&amp;diff=3539"/>
		<updated>2021-11-17T06:43:26Z</updated>

		<summary type="html">&lt;p&gt;Rokas: /* Funkcijų kūrimas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Funkcijų kūrimas ===&lt;br /&gt;
Prieš pradėdami šį skyrių pateiksime tau pavyzdį, kurio gali nepersirašinėti:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=python&amp;gt;&lt;br /&gt;
a = 23&lt;br /&gt;
b = -23&lt;br /&gt;
&lt;br /&gt;
if a &amp;lt; 0:&lt;br /&gt;
    a = -a&lt;br /&gt;
if b &amp;lt; 0:&lt;br /&gt;
    b = -b&lt;br /&gt;
if a == b:&lt;br /&gt;
    print(&amp;quot;Absoliučios&amp;quot;, a, &amp;quot;ir&amp;quot;, b, &amp;quot;reikšmės yra lygios.&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Absoliučios&amp;quot;, a, &amp;quot;ir&amp;quot;, b, &amp;quot;reikšmės yra skirtingos.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Programos rezultatas:&lt;br /&gt;
 &lt;br /&gt;
 Absoliučios 23 ir 23 reikšmės yra lygios.&lt;br /&gt;
&lt;br /&gt;
Ar neatrogo, kad programa yra šiek tiek pasikartojanti?.. O kaip jau gali nuspėti, programuotojai nemėgsta pasikartojančių dalykų, nes juk pasikartojantiems dalykams atlikti ir yra sukurti kompiuteriai!! Be to atkreipk dėmesį, kad radus absoliučią reikšmę pasikeitė kintamojo vertė, todėl programa spausdina 23, o ne -23. Mūsų laimei Python leidžia sukurti funkcijas, kurios šalina dubliavimą:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=python&amp;gt;&lt;br /&gt;
a = 23&lt;br /&gt;
b = -23&lt;br /&gt;
&lt;br /&gt;
def absoliuti_reikšmė(n):&lt;br /&gt;
    if n &amp;lt; 0:&lt;br /&gt;
        n = -n&lt;br /&gt;
    return n&lt;br /&gt;
&lt;br /&gt;
if absoliuti_reikšmė(a) == absoliuti_reikšmė(b):&lt;br /&gt;
    print(&amp;quot;Absoliučios&amp;quot;, a, &amp;quot;ir&amp;quot;, b, &amp;quot;reikšmės yra lygios.&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Absoliučios&amp;quot;, a, &amp;quot;ir&amp;quot;, b, &amp;quot;reikšmės yra lygios.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Programos rezultatas:&lt;br /&gt;
&lt;br /&gt;
 Absoliučios 23 ir -23 reikšmės yra lygios.&lt;br /&gt;
&lt;br /&gt;
Pagrindinis šios programos elementas yra žodis &amp;lt;code&amp;gt;def&amp;lt;/code.  &lt;br /&gt;
&amp;lt;code&amp;gt;def&amp;lt;/code&amp;gt; yra angliško žodžio &amp;lt;code&amp;gt;define&amp;lt;/code&amp;gt;, kuris reiškia apibrėžti, trumpinys, o juo pradedame apibrėžti savo kuriamą funkciją. Po &amp;lt;code&amp;gt;def&amp;lt;/code&amp;gt; eina funkcijos pavadinimas: &amp;lt;code&amp;gt;absoliuti_reiksme&amp;lt;/code&amp;gt;. Vėliau skliausteliuose eina parametras n - &amp;lt;code&amp;gt;(n)&amp;lt;/code&amp;gt;, kurio reikšmė yra paimama iš programos, kai funkcija yra iškviečiama. Vėliau eina dvitaškis &amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt;, po kurio esantys teiginiai yra vykdomi naudojant šią funkciją. Teiginiai tęsiami tol, kol pasibaigia funkcijoje nurodyti veiksmai arba grąžinamas norimas rezultatas nurodytas po &amp;lt;code&amp;gt;return&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;return&amp;lt;/code&amp;gt; teiginys grąžina reikšmę į vietą, kur buvo iškviesta funkcija, kaip pirmoje mūsų kurtoje programoje rezultatas buvo grąžintas, kur kvietėme &amp;lt;code&amp;gt;print()&amp;lt;/code&amp;gt; funkciją. Na, o dabar galime kurti naujas funkcijas.&lt;br /&gt;
&lt;br /&gt;
Ar pastebėjai, kad &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt; reikšmės nepasikeitė?&lt;br /&gt;
&lt;br /&gt;
Funkcijos gali būti naudojamos kartojant užduotis, kurios negrąžina reikšmių. Štai keli pavyzdžiai:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def labas():&lt;br /&gt;
    print(&amp;quot;Labas&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
def plotas(plotis, aukštis):&lt;br /&gt;
    return plotis * aukštis&lt;br /&gt;
&lt;br /&gt;
def rašyk_mano_vardas(vardas):&lt;br /&gt;
    print(&amp;quot;Mano vardas&amp;quot;, vardas)&lt;br /&gt;
&lt;br /&gt;
labas()&lt;br /&gt;
labas()&lt;br /&gt;
&lt;br /&gt;
rašyk_labas(&amp;quot;Fredas&amp;quot;)&lt;br /&gt;
w = 4&lt;br /&gt;
h = 5&lt;br /&gt;
print(&amp;quot;plotis =&amp;quot;, w, &amp;quot; aukštis=&amp;quot;, h, &amp;quot; plotas=&amp;quot;, plotas(w, h))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
programos rezultatas&lt;br /&gt;
&lt;br /&gt;
 Labas&lt;br /&gt;
 Labas&lt;br /&gt;
 Mano vardas Fredas&lt;br /&gt;
 plotis = 4  aukštis = 5  plotas = 20&lt;br /&gt;
&lt;br /&gt;
Šis pavyzdys parodo ir daugiau dalykų, kuriuos galima padaryti su funkcijomis. Atkreipk dėmesį, kad galima nenaudoti argumentų arba galima naudoti du ar daugiau. Šis pavyzdys rodo dar keletą dalykų, kuriuos galite padaryti naudodami funkcijas. Taip pat atkreipk dėmesį, kad funkcijai nereikia grąžinti vertės, grąžinimas yra neprivalomas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Funkcijos gali būti naudojamos pakartotiniam kodui pašalinti. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Kintamieji funkcijose ===&lt;br /&gt;
Dažnai pasitaiko, kad pasikartojančiam kode yra kintamųjų, todėl į juos reikia atkreipti dėmesį, kai šaliname pakartotiną kodą. Iki šiol visi kintamieji, kuriuos matėme yra globalūs kintamieji, o funkcijose esantys kintamieji yra vadinami specialiu pavadinimu - lokalūs kintamieji. Šie kintamieji egzistuoja tik veikiant funkcijai. Kai lokalus kintamasis turi globalaus kintamojo pavadinimą, tai funkcijoje pirmenybė teikiama ir naudojamas lokalus kintamasis. Skamba painiai? Štai keli pavyzdžiai:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
a = 4&lt;br /&gt;
 &lt;br /&gt;
def manoFunkcija():&lt;br /&gt;
    a = 17&lt;br /&gt;
    print(&amp;quot;Mano funkcijoje a =&amp;quot;, a)&lt;br /&gt;
&lt;br /&gt;
manoFunkcija()&lt;br /&gt;
print(&amp;quot;a = &amp;quot;, a)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Gaunamas rezultatas&lt;br /&gt;
 Mano funkcijoje a = 17&lt;br /&gt;
 a = 4&lt;br /&gt;
&lt;br /&gt;
Kaip matai pavyzdyje, funkcijos viduje esantis kintamasis nepaiso globalaus kintamojo, nes egzistuoja tik funkcijos viduje. Taip pat, kaip matai, funkcijos viduje kintamajam &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; buvo priskirta nauja reikšmė, bet ji buvo aktuali tik funkcijoje, o ne už jos ribų, globalus &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;, koks buvo, toks ir liko.&lt;br /&gt;
&lt;br /&gt;
Kitas kiek sudėtingesnis pavyzdys:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
a_var = 10&lt;br /&gt;
b_var = 15&lt;br /&gt;
e_var = 25&lt;br /&gt;
&lt;br /&gt;
def funkcija(a_var):&lt;br /&gt;
    print(&amp;quot;funkcijoje a_var =&amp;quot;, a_var)&lt;br /&gt;
    b_var = 100 + a_var&lt;br /&gt;
    d_var = 2 * a_var&lt;br /&gt;
    print(&amp;quot;funkcijoje  b_var =&amp;quot;, b_var)&lt;br /&gt;
    print(&amp;quot;funkcijoje  d_var =&amp;quot;, d_var)&lt;br /&gt;
    print(&amp;quot;funkcijoje  e_var =&amp;quot;, e_var)&lt;br /&gt;
    return b_var + 10&lt;br /&gt;
&lt;br /&gt;
c_var = funkcija(b_var)&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;a_var =&amp;quot;, a_var)&lt;br /&gt;
print(&amp;quot;b_var =&amp;quot;, b_var)&lt;br /&gt;
print(&amp;quot;c_var =&amp;quot;, c_var)&lt;br /&gt;
print(&amp;quot;d_var =&amp;quot;, d_var)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
rezultatas:&lt;br /&gt;
&lt;br /&gt;
 funkcijoje a_var =  15&lt;br /&gt;
 funkcijoje  b_var =  115&lt;br /&gt;
 funkcijoje  d_var =  30&lt;br /&gt;
 funkcijoje  e_var =  25&lt;br /&gt;
 a_var =  10&lt;br /&gt;
 b_var =  15&lt;br /&gt;
 c_var =  125&lt;br /&gt;
 d_var = &lt;br /&gt;
 &lt;br /&gt;
 Klaida (paskutinė aptikta klaida):&lt;br /&gt;
  File &amp;quot;C:\def2.py&amp;quot;, eilutė 19, in &amp;lt;module&amp;gt; (modulyje)&lt;br /&gt;
    print(&amp;quot;d_var = &amp;quot;, d_var)&lt;br /&gt;
 NameError: pavadinimas 'd_var' yra neapibrėžtas&lt;br /&gt;
&lt;br /&gt;
Šiame pavyzdyje kintamieji &amp;lt;code&amp;gt;a_var&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;b_var&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;d_var&amp;lt;/code&amp;gt; yra lokalūs kintamieji priklausantyje funkcijai &amp;lt;code&amp;gt;funkcija()&amp;lt;/code&amp;gt;. Po argumento &amp;lt;code&amp;gt;return b_var + 10&amp;lt;/code&amp;gt; visi jie nustoja egzistuoti. Kintamasis &amp;lt;code&amp;gt; a_var &amp;lt;/code&amp;gt; yra parametro pavadinimas, todėl tai jį automatiškai padaro lokaliu kintamuoju. Kintamieji &amp;lt;code&amp;gt; b_var &amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt; d_var &amp;lt;/code&amp;gt; yra vietiniai kintamieji, nes jie rodomi funkcijos lygybės ženklo kairėje pusėje esančiuose teiginiuose &amp;lt;code&amp;gt; b_var = 100 + a_var &amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt; d_var = 2 * a_var &amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Funkcijos &amp;lt;code&amp;gt; a_var &amp;lt;/code&amp;gt; viduje nėra jai priskirtos vertės. Kai funkcija iškviečiama naudojant &amp;lt;code&amp;gt; c_var = funkcija(b_var) &amp;lt;/code&amp;gt;, 15 priskiriama &amp;lt;code&amp;gt; a_var &amp;lt;/code&amp;gt;, nes tuo metu &amp;lt;code&amp;gt; b_var &amp;lt;/code&amp;gt; yra 15, kai kviečiama funkcija &amp;lt;code&amp;gt; funkcija(15) &amp;lt;/code&amp;gt;. Galiausiai &amp;lt;code&amp;gt; a_var &amp;lt;/code&amp;gt; reikšmė nustatoma į 15, kai jis yra funkcijos &amp;lt;code&amp;gt;funkcija&amp;lt;/code&amp;gt; viduje.&lt;br /&gt;
&lt;br /&gt;
Kaip matai, pasibaigus funkcijai, vietiniai kintamieji &amp;lt;code&amp;gt; a_var &amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt; b_var &amp;lt;/code&amp;gt;, kurie buvo naudojami vietoj globalių kintamųjų dingo. Tada teiginys &amp;lt;code&amp;gt; print (&amp;quot;a_var =&amp;quot;, a_var) &amp;lt;/code&amp;gt; atspausdina reikšmę &amp;lt;code&amp;gt; 10 &amp;lt;/code&amp;gt;, o ne reikšmę &amp;lt;code&amp;gt; 15 &amp;lt;/code&amp;gt; kai dingo lokalus kintamasis, kuris slėpė globalaus kintamojo reikšmę.&lt;br /&gt;
&lt;br /&gt;
Taip pat reikia atkreipti dėmesį į klaidą &amp;lt;code&amp;gt; NameError &amp;lt;/code&amp;gt;, kuri atsiranda mūsų programos pabaigoje. Tai nutinka, nes kintamasis &amp;lt;code&amp;gt; d_var &amp;lt;/code&amp;gt; nebeegzistuoja nuo tada, kai baigėsi &amp;lt;code&amp;gt; funkcija &amp;lt;/code&amp;gt;. Išjungus funkciją, visi lokalūs kintamieji ištrinami. Jeigu nori, ką nors gauti iš funkcijos, turėsi naudoti &amp;lt;code&amp;gt; return&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Paskutinis dalykas, į kurį reikia atkreipti dėmesį, yra tai, kad funkcijos viduje &amp;lt;code&amp;gt; e_var &amp;lt;/code&amp;gt; vertė išlieka nepakitusi, nes tai nėra parametras ir ji niekada nerodoma kairėje funkcijos pusėje. &amp;lt;code&amp;gt; a_func &amp;lt;/code&amp;gt;. Kai funkcijos viduje pasiekiamas globalus kintamasis, tai yra išorinis kintamasis esantis už funkcijos ribų.&lt;br /&gt;
&lt;br /&gt;
Funkcijos naudoja lokalius kintamuosius, kurie egzistuoja tik funkcijos viduje, ir gali ignoruoti kitus kintamuosius, kurie yra už funkcijos ribų.&lt;br /&gt;
&lt;br /&gt;
=== Pavyzdžiai ===&lt;br /&gt;
'''temperatūra2.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#! /usr/bin/python&lt;br /&gt;
#-*-coding: utf-8 -*-&lt;br /&gt;
# konvertuoja temperatūrą į Farenheitus ar Celsijų&lt;br /&gt;
 &lt;br /&gt;
def spausdinti_pasirinkimus():&lt;br /&gt;
    print(&amp;quot;Pasirinkimai:&amp;quot;)&lt;br /&gt;
    print(&amp;quot; 'p' spausdinti pasirinkimus&amp;quot;)&lt;br /&gt;
    print(&amp;quot; 'c' konvertuoti iš Celsijaus&amp;quot;)&lt;br /&gt;
    print(&amp;quot; 'f' konvertuoti iš Farenheitų&amp;quot;)&lt;br /&gt;
    print(&amp;quot; 'q' išjungti programą&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
def celsijus_i_farenheitus(c_temp):&lt;br /&gt;
    return 9.0 / 5.0 * c_temp + 32&lt;br /&gt;
 &lt;br /&gt;
def farenheitai_i_celsiju(f_temp):&lt;br /&gt;
    return (f_temp - 32.0) * 5.0 / 9.0&lt;br /&gt;
 &lt;br /&gt;
pasirinkimas = &amp;quot;p&amp;quot;&lt;br /&gt;
while pasirinkimas != &amp;quot;q&amp;quot;:&lt;br /&gt;
    if pasirinkimas == &amp;quot;c&amp;quot;:&lt;br /&gt;
        c_temp = float(input(&amp;quot;Celsijaus temperatūra: &amp;quot;))&lt;br /&gt;
        print(&amp;quot;Farenheitai:&amp;quot;, celsijus_i_farenheitus(c_temp))&lt;br /&gt;
        pasirinkimas = input(&amp;quot;pasirinkimas: &amp;quot;)&lt;br /&gt;
    elif pasirinkimas == &amp;quot;f&amp;quot;:&lt;br /&gt;
        f_temp = float(input(&amp;quot;farenheitai_i_celsiju: &amp;quot;))&lt;br /&gt;
        print(&amp;quot;Celsijus:&amp;quot;, fahrenheit_to_celsius(f_temp))&lt;br /&gt;
        pasirinkimas= input(&amp;quot;option: &amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        pasirinkimas= &amp;quot;p&amp;quot;    #Arba pasirinkimas! = &amp;quot;q&amp;quot;: kad spausdintų&lt;br /&gt;
                        #kai įrašoma, kas nors netikėto&lt;br /&gt;
        spausdinti_pasirinkimus()&lt;br /&gt;
        pasirinkimas = input(&amp;quot;pasirinkimas: &amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kaip tai veikia?:&lt;br /&gt;
&lt;br /&gt;
 Pasirinkimai:&lt;br /&gt;
  'p' spausdinti pasirinkimus&lt;br /&gt;
  'c' konvertuoti iš Celsijaus&lt;br /&gt;
  'f' konvertuoti iš Farenheitų&lt;br /&gt;
  'q' išjungti programą&lt;br /&gt;
 pasirinkimas: '''c'''&lt;br /&gt;
 Celsijaus temperatūra: '''30''' &lt;br /&gt;
 Farenheitai: 86.0&lt;br /&gt;
 pasirinkimas: '''f'''&lt;br /&gt;
 Farenheitų temperatūra: '''60'''&lt;br /&gt;
 Celsijus: 15.5555555556&lt;br /&gt;
 pasirinkimas: '''q'''&lt;br /&gt;
&lt;br /&gt;
'''plotas2.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#! /usr/bin/python&lt;br /&gt;
#-*-coding: utf-8 -*-&lt;br /&gt;
# apskaičiuoja duotą stačiakampio plotą&lt;br /&gt;
&lt;br /&gt;
def pasisveikinimas():&lt;br /&gt;
    print('Labas!')&lt;br /&gt;
 &lt;br /&gt;
def plotas(plotis, aukštis):&lt;br /&gt;
    return plotis * aukštis&lt;br /&gt;
 &lt;br /&gt;
def mano_vardas(vardas):&lt;br /&gt;
    print('Mano vardas yra,', vardas)&lt;br /&gt;
 &lt;br /&gt;
def teigiama_įvestis(sugalvotas_skaičius):&lt;br /&gt;
    skaičius = float(input(sugalvotas_skaičius))&lt;br /&gt;
    while skaičius&amp;lt;= 0:&lt;br /&gt;
        print('Privalo būti teigiamas skaičius')&lt;br /&gt;
        skaičius = float(input(sugalvotas_skaičius))&lt;br /&gt;
    return skaičius&lt;br /&gt;
 &lt;br /&gt;
vardas = input('Tavo vardas: ')&lt;br /&gt;
pasisveikinimas()&lt;br /&gt;
mano_vardas(name)&lt;br /&gt;
print()&lt;br /&gt;
print('Kad rastum stačiakampio plotą,')&lt;br /&gt;
print('įrašyk plotį ir aukštį')&lt;br /&gt;
print()&lt;br /&gt;
w = positive_input('Plotis: ')&lt;br /&gt;
h = positive_input('Aukštis: ')&lt;br /&gt;
 &lt;br /&gt;
print('Plotis =', w, ' Aukštis =', h, ' Plotas =', area(w, h))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kaip veikia?&lt;br /&gt;
&lt;br /&gt;
 Tavo vardas: '''Josh'''&lt;br /&gt;
 Labas!&lt;br /&gt;
 Mano vardas yra Josh&lt;br /&gt;
 &lt;br /&gt;
 Kad rastum stačiakampio plotą,&lt;br /&gt;
 įrašyk plotį ir aukštį.&lt;br /&gt;
 &lt;br /&gt;
 Plotis: '''-4'''&lt;br /&gt;
 Privalo būti teigiamas skaičius&lt;br /&gt;
 Plotis: '''4'''&lt;br /&gt;
 Aukštis: '''3'''&lt;br /&gt;
 Plotis = 4  Aukštis = 3  Plotas = 12&lt;br /&gt;
&lt;br /&gt;
=== Užduotis ===&lt;br /&gt;
Perrašyk programą plotas2.py, kuri yra aukščiau pateiktame pavyzdyje, kad turėtum atskirą kvadrato, stačiakampio ir apskritimo ploto funkcijas ((&amp;lt;code&amp;gt;3.14 * spindulys**2&amp;lt;/code&amp;gt;). Taip pat šioje programoje turėtų būti meniu:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Solution|title=Sprendimas|text=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def kvadratas(L):&lt;br /&gt;
    return L * L&lt;br /&gt;
&lt;br /&gt;
def stačiakampis(aukštis, plotis):&lt;br /&gt;
    return aukštis * plotis&lt;br /&gt;
&lt;br /&gt;
def apskritimas(spindulys):&lt;br /&gt;
    return 3.14159 * spindulys** 2&lt;br /&gt;
&lt;br /&gt;
def opcijos():&lt;br /&gt;
    print()&lt;br /&gt;
    print(&amp;quot;Pasirinkimai:&amp;quot;)&lt;br /&gt;
    print(&amp;quot;s = skaičiuoti kvadrato plotą.&amp;quot;)&lt;br /&gt;
    print(&amp;quot;c = skaičiuoti apskritimo plotą.&amp;quot;)&lt;br /&gt;
    print(&amp;quot;r = skaičiuoti stačiakampio plotą.&amp;quot;)&lt;br /&gt;
    print(&amp;quot;q = išeiti&amp;quot;)&lt;br /&gt;
    print()&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Ši programa apskaičiuos kvadrato, apskritimo ar stačiakampio plotą.&amp;quot;)&lt;br /&gt;
pasirinkimas = &amp;quot;x&amp;quot;&lt;br /&gt;
opcijos()&lt;br /&gt;
while pasirinkimas != &amp;quot;q&amp;quot;:&lt;br /&gt;
    choice = input(&amp;quot;Įrašykite jūsų pasirinkimą: &amp;quot;)&lt;br /&gt;
    if pasirinkimas== &amp;quot;s&amp;quot;:&lt;br /&gt;
        L = float(input(&amp;quot;Kvadrato kraštinės ilgis: &amp;quot;))&lt;br /&gt;
        print(&amp;quot;Šio kvadrato plotas&amp;quot;, kvadratas(L))&lt;br /&gt;
        opcijos()&lt;br /&gt;
    elif pasirinkimas == &amp;quot;c&amp;quot;:&lt;br /&gt;
        spindulys = float(input(&amp;quot;Apskritimo spindulys yra: &amp;quot;))&lt;br /&gt;
        print(&amp;quot;Apskritimo plotas yra&amp;quot;, apskritimas(spindulys))&lt;br /&gt;
        opcijos()&lt;br /&gt;
    elif pasirinkimas == &amp;quot;r&amp;quot;:&lt;br /&gt;
        plotis = float(input(&amp;quot;Stačiakampio plotis: &amp;quot;))&lt;br /&gt;
        aukštis = float(input(&amp;quot;Stačiakampio aukštis: &amp;quot;))&lt;br /&gt;
        print(&amp;quot;Stačiakampio plotas yra&amp;quot;, kvadratas(plotis, aukštis))&lt;br /&gt;
        opcijos()&lt;br /&gt;
    elif pasirinkimas == &amp;quot;q&amp;quot;:&lt;br /&gt;
        print(&amp;quot; &amp;quot;,end=&amp;quot;&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Neatpažintas pasirinkimas.&amp;quot;)&lt;br /&gt;
        opcijos()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Debugging |next=Advanced Functions Example}}&lt;/div&gt;</summary>
		<author><name>Rokas</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Funkcij%C5%B3_apibr%C4%97%C5%BEimas&amp;diff=3538</id>
		<title>Python Vadovėlis/Funkcijų apibrėžimas</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Funkcij%C5%B3_apibr%C4%97%C5%BEimas&amp;diff=3538"/>
		<updated>2021-11-17T06:42:46Z</updated>

		<summary type="html">&lt;p&gt;Rokas: /* Funkcijų kūrimas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Funkcijų kūrimas ===&lt;br /&gt;
Prieš pradėdami šį skyrių pateiksime tau pavyzdį, kurio gali nepersirašinėti:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=python&amp;gt;&lt;br /&gt;
a = 23&lt;br /&gt;
b = -23&lt;br /&gt;
&lt;br /&gt;
if a &amp;lt; 0:&lt;br /&gt;
    a = -a&lt;br /&gt;
if b &amp;lt; 0:&lt;br /&gt;
    b = -b&lt;br /&gt;
if a == b:&lt;br /&gt;
    print(&amp;quot;Absoliučios&amp;quot;, a, &amp;quot;ir&amp;quot;, b, &amp;quot;reikšmės yra lygios.&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Absoliučios&amp;quot;, a, &amp;quot;ir&amp;quot;, b, &amp;quot;reikšmės yra skirtingos.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Programos rezultatas:&lt;br /&gt;
 &lt;br /&gt;
 Absoliučios 23 ir 23 reikšmės yra lygios.&lt;br /&gt;
&lt;br /&gt;
Ar neatrogo, kad programa yra šiek tiek pasikartojanti?.. O kaip jau gali nuspėti, programuotojai nemėgsta pasikartojančių dalykų, nes juk pasikartojantiems dalykams atlikti ir yra sukurti kompiuteriai!! Be to atkreipk dėmesį, kad radus absoliučią reikšmę pasikeitė kintamojo vertė, todėl programa spausdina 23, o ne -23. Mūsų laimei Python leidžia sukurti funkcijas, kurios šalina dubliavimą:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=python&amp;gt;&lt;br /&gt;
a = 23&lt;br /&gt;
b = -23&lt;br /&gt;
&lt;br /&gt;
def absoliuti_reikšmė(n):&lt;br /&gt;
    if n &amp;lt; 0:&lt;br /&gt;
        n = -n&lt;br /&gt;
    return n&lt;br /&gt;
&lt;br /&gt;
if absoliuti_reikšmė(a) == absoliuti_reikšmė(b):&lt;br /&gt;
    print(&amp;quot;Absoliučios&amp;quot;, a, &amp;quot;ir&amp;quot;, b, &amp;quot;reikšmės yra lygios.&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Absoliučios&amp;quot;, a, &amp;quot;ir&amp;quot;, b, &amp;quot;reikšmės yra lygios.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
programos rezultatas:&lt;br /&gt;
&lt;br /&gt;
 Absoliučios 23 ir -23 reikšmės yra lygios.&lt;br /&gt;
&lt;br /&gt;
Pagrindinis šios programos elementas yra &amp;lt;code&amp;gt;def&amp;lt;/code&amp;gt; žodis.  &amp;lt;code&amp;gt;def&amp;lt;/code&amp;gt;&lt;br /&gt;
yra angliško žodžio &amp;lt;code&amp;gt;define&amp;lt;/code&amp;gt;, kuris reiškia apibrėžti, trumpinys, o juo pradedame apibrėžti savo kuriamą funkciją. Po &amp;lt;code&amp;gt;def&amp;lt;/code&amp;gt; eina funkcijos pavadinimas: &amp;lt;code&amp;gt;absoliuti_reiksme&amp;lt;/code&amp;gt;. Vėliau skliausteliuose eina parametras n - &amp;lt;code&amp;gt;(n)&amp;lt;/code&amp;gt;, kurio reikšmė yra paimama iš programos, kai funkcija yra iškviečiama. Vėliau eina dvitaškis &amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt;, po kurio esantys teiginiai yra vykdomi naudojant šią funkciją. Teiginiai tęsiami tol, kol pasibaigia funkcijoje nurodyti veiksmai arba grąžinamas norimas rezultatas nurodytas po &amp;lt;code&amp;gt;return&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;return&amp;lt;/code&amp;gt; teiginys grąžina reikšmę į vietą, kur buvo iškviesta funkcija, kaip pirmoje mūsų kurtoje programoje rezultatas buvo grąžintas, kur kvietėme &amp;lt;code&amp;gt;print()&amp;lt;/code&amp;gt; funkciją. Na, o dabar galime kurti naujas funkcijas.&lt;br /&gt;
&lt;br /&gt;
Ar pastebėjai, kad &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt; reikšmės nepasikeitė?&lt;br /&gt;
&lt;br /&gt;
Funkcijos gali būti naudojamos kartojant užduotis, kurios negrąžina reikšmių. Štai keli pavyzdžiai:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def labas():&lt;br /&gt;
    print(&amp;quot;Labas&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
def plotas(plotis, aukštis):&lt;br /&gt;
    return plotis * aukštis&lt;br /&gt;
&lt;br /&gt;
def rašyk_mano_vardas(vardas):&lt;br /&gt;
    print(&amp;quot;Mano vardas&amp;quot;, vardas)&lt;br /&gt;
&lt;br /&gt;
labas()&lt;br /&gt;
labas()&lt;br /&gt;
&lt;br /&gt;
rašyk_labas(&amp;quot;Fredas&amp;quot;)&lt;br /&gt;
w = 4&lt;br /&gt;
h = 5&lt;br /&gt;
print(&amp;quot;plotis =&amp;quot;, w, &amp;quot; aukštis=&amp;quot;, h, &amp;quot; plotas=&amp;quot;, plotas(w, h))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
programos rezultatas&lt;br /&gt;
&lt;br /&gt;
 Labas&lt;br /&gt;
 Labas&lt;br /&gt;
 Mano vardas Fredas&lt;br /&gt;
 plotis = 4  aukštis = 5  plotas = 20&lt;br /&gt;
&lt;br /&gt;
Šis pavyzdys parodo ir daugiau dalykų, kuriuos galima padaryti su funkcijomis. Atkreipk dėmesį, kad galima nenaudoti argumentų arba galima naudoti du ar daugiau. Šis pavyzdys rodo dar keletą dalykų, kuriuos galite padaryti naudodami funkcijas. Taip pat atkreipk dėmesį, kad funkcijai nereikia grąžinti vertės, grąžinimas yra neprivalomas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Funkcijos gali būti naudojamos pakartotiniam kodui pašalinti. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Kintamieji funkcijose ===&lt;br /&gt;
Dažnai pasitaiko, kad pasikartojančiam kode yra kintamųjų, todėl į juos reikia atkreipti dėmesį, kai šaliname pakartotiną kodą. Iki šiol visi kintamieji, kuriuos matėme yra globalūs kintamieji, o funkcijose esantys kintamieji yra vadinami specialiu pavadinimu - lokalūs kintamieji. Šie kintamieji egzistuoja tik veikiant funkcijai. Kai lokalus kintamasis turi globalaus kintamojo pavadinimą, tai funkcijoje pirmenybė teikiama ir naudojamas lokalus kintamasis. Skamba painiai? Štai keli pavyzdžiai:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
a = 4&lt;br /&gt;
 &lt;br /&gt;
def manoFunkcija():&lt;br /&gt;
    a = 17&lt;br /&gt;
    print(&amp;quot;Mano funkcijoje a =&amp;quot;, a)&lt;br /&gt;
&lt;br /&gt;
manoFunkcija()&lt;br /&gt;
print(&amp;quot;a = &amp;quot;, a)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Gaunamas rezultatas&lt;br /&gt;
 Mano funkcijoje a = 17&lt;br /&gt;
 a = 4&lt;br /&gt;
&lt;br /&gt;
Kaip matai pavyzdyje, funkcijos viduje esantis kintamasis nepaiso globalaus kintamojo, nes egzistuoja tik funkcijos viduje. Taip pat, kaip matai, funkcijos viduje kintamajam &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; buvo priskirta nauja reikšmė, bet ji buvo aktuali tik funkcijoje, o ne už jos ribų, globalus &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;, koks buvo, toks ir liko.&lt;br /&gt;
&lt;br /&gt;
Kitas kiek sudėtingesnis pavyzdys:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
a_var = 10&lt;br /&gt;
b_var = 15&lt;br /&gt;
e_var = 25&lt;br /&gt;
&lt;br /&gt;
def funkcija(a_var):&lt;br /&gt;
    print(&amp;quot;funkcijoje a_var =&amp;quot;, a_var)&lt;br /&gt;
    b_var = 100 + a_var&lt;br /&gt;
    d_var = 2 * a_var&lt;br /&gt;
    print(&amp;quot;funkcijoje  b_var =&amp;quot;, b_var)&lt;br /&gt;
    print(&amp;quot;funkcijoje  d_var =&amp;quot;, d_var)&lt;br /&gt;
    print(&amp;quot;funkcijoje  e_var =&amp;quot;, e_var)&lt;br /&gt;
    return b_var + 10&lt;br /&gt;
&lt;br /&gt;
c_var = funkcija(b_var)&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;a_var =&amp;quot;, a_var)&lt;br /&gt;
print(&amp;quot;b_var =&amp;quot;, b_var)&lt;br /&gt;
print(&amp;quot;c_var =&amp;quot;, c_var)&lt;br /&gt;
print(&amp;quot;d_var =&amp;quot;, d_var)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
rezultatas:&lt;br /&gt;
&lt;br /&gt;
 funkcijoje a_var =  15&lt;br /&gt;
 funkcijoje  b_var =  115&lt;br /&gt;
 funkcijoje  d_var =  30&lt;br /&gt;
 funkcijoje  e_var =  25&lt;br /&gt;
 a_var =  10&lt;br /&gt;
 b_var =  15&lt;br /&gt;
 c_var =  125&lt;br /&gt;
 d_var = &lt;br /&gt;
 &lt;br /&gt;
 Klaida (paskutinė aptikta klaida):&lt;br /&gt;
  File &amp;quot;C:\def2.py&amp;quot;, eilutė 19, in &amp;lt;module&amp;gt; (modulyje)&lt;br /&gt;
    print(&amp;quot;d_var = &amp;quot;, d_var)&lt;br /&gt;
 NameError: pavadinimas 'd_var' yra neapibrėžtas&lt;br /&gt;
&lt;br /&gt;
Šiame pavyzdyje kintamieji &amp;lt;code&amp;gt;a_var&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;b_var&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;d_var&amp;lt;/code&amp;gt; yra lokalūs kintamieji priklausantyje funkcijai &amp;lt;code&amp;gt;funkcija()&amp;lt;/code&amp;gt;. Po argumento &amp;lt;code&amp;gt;return b_var + 10&amp;lt;/code&amp;gt; visi jie nustoja egzistuoti. Kintamasis &amp;lt;code&amp;gt; a_var &amp;lt;/code&amp;gt; yra parametro pavadinimas, todėl tai jį automatiškai padaro lokaliu kintamuoju. Kintamieji &amp;lt;code&amp;gt; b_var &amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt; d_var &amp;lt;/code&amp;gt; yra vietiniai kintamieji, nes jie rodomi funkcijos lygybės ženklo kairėje pusėje esančiuose teiginiuose &amp;lt;code&amp;gt; b_var = 100 + a_var &amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt; d_var = 2 * a_var &amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Funkcijos &amp;lt;code&amp;gt; a_var &amp;lt;/code&amp;gt; viduje nėra jai priskirtos vertės. Kai funkcija iškviečiama naudojant &amp;lt;code&amp;gt; c_var = funkcija(b_var) &amp;lt;/code&amp;gt;, 15 priskiriama &amp;lt;code&amp;gt; a_var &amp;lt;/code&amp;gt;, nes tuo metu &amp;lt;code&amp;gt; b_var &amp;lt;/code&amp;gt; yra 15, kai kviečiama funkcija &amp;lt;code&amp;gt; funkcija(15) &amp;lt;/code&amp;gt;. Galiausiai &amp;lt;code&amp;gt; a_var &amp;lt;/code&amp;gt; reikšmė nustatoma į 15, kai jis yra funkcijos &amp;lt;code&amp;gt;funkcija&amp;lt;/code&amp;gt; viduje.&lt;br /&gt;
&lt;br /&gt;
Kaip matai, pasibaigus funkcijai, vietiniai kintamieji &amp;lt;code&amp;gt; a_var &amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt; b_var &amp;lt;/code&amp;gt;, kurie buvo naudojami vietoj globalių kintamųjų dingo. Tada teiginys &amp;lt;code&amp;gt; print (&amp;quot;a_var =&amp;quot;, a_var) &amp;lt;/code&amp;gt; atspausdina reikšmę &amp;lt;code&amp;gt; 10 &amp;lt;/code&amp;gt;, o ne reikšmę &amp;lt;code&amp;gt; 15 &amp;lt;/code&amp;gt; kai dingo lokalus kintamasis, kuris slėpė globalaus kintamojo reikšmę.&lt;br /&gt;
&lt;br /&gt;
Taip pat reikia atkreipti dėmesį į klaidą &amp;lt;code&amp;gt; NameError &amp;lt;/code&amp;gt;, kuri atsiranda mūsų programos pabaigoje. Tai nutinka, nes kintamasis &amp;lt;code&amp;gt; d_var &amp;lt;/code&amp;gt; nebeegzistuoja nuo tada, kai baigėsi &amp;lt;code&amp;gt; funkcija &amp;lt;/code&amp;gt;. Išjungus funkciją, visi lokalūs kintamieji ištrinami. Jeigu nori, ką nors gauti iš funkcijos, turėsi naudoti &amp;lt;code&amp;gt; return&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Paskutinis dalykas, į kurį reikia atkreipti dėmesį, yra tai, kad funkcijos viduje &amp;lt;code&amp;gt; e_var &amp;lt;/code&amp;gt; vertė išlieka nepakitusi, nes tai nėra parametras ir ji niekada nerodoma kairėje funkcijos pusėje. &amp;lt;code&amp;gt; a_func &amp;lt;/code&amp;gt;. Kai funkcijos viduje pasiekiamas globalus kintamasis, tai yra išorinis kintamasis esantis už funkcijos ribų.&lt;br /&gt;
&lt;br /&gt;
Funkcijos naudoja lokalius kintamuosius, kurie egzistuoja tik funkcijos viduje, ir gali ignoruoti kitus kintamuosius, kurie yra už funkcijos ribų.&lt;br /&gt;
&lt;br /&gt;
=== Pavyzdžiai ===&lt;br /&gt;
'''temperatūra2.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#! /usr/bin/python&lt;br /&gt;
#-*-coding: utf-8 -*-&lt;br /&gt;
# konvertuoja temperatūrą į Farenheitus ar Celsijų&lt;br /&gt;
 &lt;br /&gt;
def spausdinti_pasirinkimus():&lt;br /&gt;
    print(&amp;quot;Pasirinkimai:&amp;quot;)&lt;br /&gt;
    print(&amp;quot; 'p' spausdinti pasirinkimus&amp;quot;)&lt;br /&gt;
    print(&amp;quot; 'c' konvertuoti iš Celsijaus&amp;quot;)&lt;br /&gt;
    print(&amp;quot; 'f' konvertuoti iš Farenheitų&amp;quot;)&lt;br /&gt;
    print(&amp;quot; 'q' išjungti programą&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
def celsijus_i_farenheitus(c_temp):&lt;br /&gt;
    return 9.0 / 5.0 * c_temp + 32&lt;br /&gt;
 &lt;br /&gt;
def farenheitai_i_celsiju(f_temp):&lt;br /&gt;
    return (f_temp - 32.0) * 5.0 / 9.0&lt;br /&gt;
 &lt;br /&gt;
pasirinkimas = &amp;quot;p&amp;quot;&lt;br /&gt;
while pasirinkimas != &amp;quot;q&amp;quot;:&lt;br /&gt;
    if pasirinkimas == &amp;quot;c&amp;quot;:&lt;br /&gt;
        c_temp = float(input(&amp;quot;Celsijaus temperatūra: &amp;quot;))&lt;br /&gt;
        print(&amp;quot;Farenheitai:&amp;quot;, celsijus_i_farenheitus(c_temp))&lt;br /&gt;
        pasirinkimas = input(&amp;quot;pasirinkimas: &amp;quot;)&lt;br /&gt;
    elif pasirinkimas == &amp;quot;f&amp;quot;:&lt;br /&gt;
        f_temp = float(input(&amp;quot;farenheitai_i_celsiju: &amp;quot;))&lt;br /&gt;
        print(&amp;quot;Celsijus:&amp;quot;, fahrenheit_to_celsius(f_temp))&lt;br /&gt;
        pasirinkimas= input(&amp;quot;option: &amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        pasirinkimas= &amp;quot;p&amp;quot;    #Arba pasirinkimas! = &amp;quot;q&amp;quot;: kad spausdintų&lt;br /&gt;
                        #kai įrašoma, kas nors netikėto&lt;br /&gt;
        spausdinti_pasirinkimus()&lt;br /&gt;
        pasirinkimas = input(&amp;quot;pasirinkimas: &amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kaip tai veikia?:&lt;br /&gt;
&lt;br /&gt;
 Pasirinkimai:&lt;br /&gt;
  'p' spausdinti pasirinkimus&lt;br /&gt;
  'c' konvertuoti iš Celsijaus&lt;br /&gt;
  'f' konvertuoti iš Farenheitų&lt;br /&gt;
  'q' išjungti programą&lt;br /&gt;
 pasirinkimas: '''c'''&lt;br /&gt;
 Celsijaus temperatūra: '''30''' &lt;br /&gt;
 Farenheitai: 86.0&lt;br /&gt;
 pasirinkimas: '''f'''&lt;br /&gt;
 Farenheitų temperatūra: '''60'''&lt;br /&gt;
 Celsijus: 15.5555555556&lt;br /&gt;
 pasirinkimas: '''q'''&lt;br /&gt;
&lt;br /&gt;
'''plotas2.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#! /usr/bin/python&lt;br /&gt;
#-*-coding: utf-8 -*-&lt;br /&gt;
# apskaičiuoja duotą stačiakampio plotą&lt;br /&gt;
&lt;br /&gt;
def pasisveikinimas():&lt;br /&gt;
    print('Labas!')&lt;br /&gt;
 &lt;br /&gt;
def plotas(plotis, aukštis):&lt;br /&gt;
    return plotis * aukštis&lt;br /&gt;
 &lt;br /&gt;
def mano_vardas(vardas):&lt;br /&gt;
    print('Mano vardas yra,', vardas)&lt;br /&gt;
 &lt;br /&gt;
def teigiama_įvestis(sugalvotas_skaičius):&lt;br /&gt;
    skaičius = float(input(sugalvotas_skaičius))&lt;br /&gt;
    while skaičius&amp;lt;= 0:&lt;br /&gt;
        print('Privalo būti teigiamas skaičius')&lt;br /&gt;
        skaičius = float(input(sugalvotas_skaičius))&lt;br /&gt;
    return skaičius&lt;br /&gt;
 &lt;br /&gt;
vardas = input('Tavo vardas: ')&lt;br /&gt;
pasisveikinimas()&lt;br /&gt;
mano_vardas(name)&lt;br /&gt;
print()&lt;br /&gt;
print('Kad rastum stačiakampio plotą,')&lt;br /&gt;
print('įrašyk plotį ir aukštį')&lt;br /&gt;
print()&lt;br /&gt;
w = positive_input('Plotis: ')&lt;br /&gt;
h = positive_input('Aukštis: ')&lt;br /&gt;
 &lt;br /&gt;
print('Plotis =', w, ' Aukštis =', h, ' Plotas =', area(w, h))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kaip veikia?&lt;br /&gt;
&lt;br /&gt;
 Tavo vardas: '''Josh'''&lt;br /&gt;
 Labas!&lt;br /&gt;
 Mano vardas yra Josh&lt;br /&gt;
 &lt;br /&gt;
 Kad rastum stačiakampio plotą,&lt;br /&gt;
 įrašyk plotį ir aukštį.&lt;br /&gt;
 &lt;br /&gt;
 Plotis: '''-4'''&lt;br /&gt;
 Privalo būti teigiamas skaičius&lt;br /&gt;
 Plotis: '''4'''&lt;br /&gt;
 Aukštis: '''3'''&lt;br /&gt;
 Plotis = 4  Aukštis = 3  Plotas = 12&lt;br /&gt;
&lt;br /&gt;
=== Užduotis ===&lt;br /&gt;
Perrašyk programą plotas2.py, kuri yra aukščiau pateiktame pavyzdyje, kad turėtum atskirą kvadrato, stačiakampio ir apskritimo ploto funkcijas ((&amp;lt;code&amp;gt;3.14 * spindulys**2&amp;lt;/code&amp;gt;). Taip pat šioje programoje turėtų būti meniu:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Solution|title=Sprendimas|text=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def kvadratas(L):&lt;br /&gt;
    return L * L&lt;br /&gt;
&lt;br /&gt;
def stačiakampis(aukštis, plotis):&lt;br /&gt;
    return aukštis * plotis&lt;br /&gt;
&lt;br /&gt;
def apskritimas(spindulys):&lt;br /&gt;
    return 3.14159 * spindulys** 2&lt;br /&gt;
&lt;br /&gt;
def opcijos():&lt;br /&gt;
    print()&lt;br /&gt;
    print(&amp;quot;Pasirinkimai:&amp;quot;)&lt;br /&gt;
    print(&amp;quot;s = skaičiuoti kvadrato plotą.&amp;quot;)&lt;br /&gt;
    print(&amp;quot;c = skaičiuoti apskritimo plotą.&amp;quot;)&lt;br /&gt;
    print(&amp;quot;r = skaičiuoti stačiakampio plotą.&amp;quot;)&lt;br /&gt;
    print(&amp;quot;q = išeiti&amp;quot;)&lt;br /&gt;
    print()&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Ši programa apskaičiuos kvadrato, apskritimo ar stačiakampio plotą.&amp;quot;)&lt;br /&gt;
pasirinkimas = &amp;quot;x&amp;quot;&lt;br /&gt;
opcijos()&lt;br /&gt;
while pasirinkimas != &amp;quot;q&amp;quot;:&lt;br /&gt;
    choice = input(&amp;quot;Įrašykite jūsų pasirinkimą: &amp;quot;)&lt;br /&gt;
    if pasirinkimas== &amp;quot;s&amp;quot;:&lt;br /&gt;
        L = float(input(&amp;quot;Kvadrato kraštinės ilgis: &amp;quot;))&lt;br /&gt;
        print(&amp;quot;Šio kvadrato plotas&amp;quot;, kvadratas(L))&lt;br /&gt;
        opcijos()&lt;br /&gt;
    elif pasirinkimas == &amp;quot;c&amp;quot;:&lt;br /&gt;
        spindulys = float(input(&amp;quot;Apskritimo spindulys yra: &amp;quot;))&lt;br /&gt;
        print(&amp;quot;Apskritimo plotas yra&amp;quot;, apskritimas(spindulys))&lt;br /&gt;
        opcijos()&lt;br /&gt;
    elif pasirinkimas == &amp;quot;r&amp;quot;:&lt;br /&gt;
        plotis = float(input(&amp;quot;Stačiakampio plotis: &amp;quot;))&lt;br /&gt;
        aukštis = float(input(&amp;quot;Stačiakampio aukštis: &amp;quot;))&lt;br /&gt;
        print(&amp;quot;Stačiakampio plotas yra&amp;quot;, kvadratas(plotis, aukštis))&lt;br /&gt;
        opcijos()&lt;br /&gt;
    elif pasirinkimas == &amp;quot;q&amp;quot;:&lt;br /&gt;
        print(&amp;quot; &amp;quot;,end=&amp;quot;&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Neatpažintas pasirinkimas.&amp;quot;)&lt;br /&gt;
        opcijos()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Debugging |next=Advanced Functions Example}}&lt;/div&gt;</summary>
		<author><name>Rokas</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Funkcij%C5%B3_apibr%C4%97%C5%BEimas&amp;diff=3537</id>
		<title>Python Vadovėlis/Funkcijų apibrėžimas</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Funkcij%C5%B3_apibr%C4%97%C5%BEimas&amp;diff=3537"/>
		<updated>2021-11-17T06:40:08Z</updated>

		<summary type="html">&lt;p&gt;Rokas: /* Funkcijų kūrimas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Funkcijų kūrimas ===&lt;br /&gt;
Prieš pradėdami šį skyrių pateiksime tau pavyzdį, kurio gali ir nepersirašinėti:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=python&amp;gt;&lt;br /&gt;
a = 23&lt;br /&gt;
b = -23&lt;br /&gt;
&lt;br /&gt;
if a &amp;lt; 0:&lt;br /&gt;
    a = -a&lt;br /&gt;
if b &amp;lt; 0:&lt;br /&gt;
    b = -b&lt;br /&gt;
if a == b:&lt;br /&gt;
    print(&amp;quot;Absoliučios&amp;quot;, a, &amp;quot;ir&amp;quot;, b, &amp;quot;reikšmės yra lygios.&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Absoliučios&amp;quot;, a, &amp;quot;ir&amp;quot;, b, &amp;quot;reikšmės yra skirtingos.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
programos rezultatas:&lt;br /&gt;
 &lt;br /&gt;
 Absoliučios 23 ir 23 reikšmės yra lygios.&lt;br /&gt;
&lt;br /&gt;
Programa atrodo šiek tiek pasikartojanti... O programuotojai nemėgsta pasikartojančių dalykų, nes juk tam ir yra sukurti kompiuteriai!! Taip pat atkreipk dėmesį, kad radus absoliučią reikšmę pasikeitė kintamojo vertė, todėl programa spausdina 23, o ne -23. Laimei Python leidžia sukurti funkcijas, kurios pašalina dubliavimą:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=python&amp;gt;&lt;br /&gt;
a = 23&lt;br /&gt;
b = -23&lt;br /&gt;
&lt;br /&gt;
def absoliuti_reiksme(n):&lt;br /&gt;
    if n &amp;lt; 0:&lt;br /&gt;
        n = -n&lt;br /&gt;
    return n&lt;br /&gt;
&lt;br /&gt;
if absoliuti_reiksme(a) == absoliuti_reiksme(b):&lt;br /&gt;
    print(&amp;quot;Absoliučios&amp;quot;, a, &amp;quot;ir&amp;quot;, b, &amp;quot;reikšmės yra lygios.&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Absoliučios&amp;quot;, a, &amp;quot;ir&amp;quot;, b, &amp;quot;reikšmės yra lygios.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
programos rezultatas:&lt;br /&gt;
&lt;br /&gt;
 Absoliučios 23 ir -23 reikšmės yra lygios.&lt;br /&gt;
&lt;br /&gt;
Pagrindinis šios programos elementas yra &amp;lt;code&amp;gt;def&amp;lt;/code&amp;gt; žodis.  &amp;lt;code&amp;gt;def&amp;lt;/code&amp;gt;&lt;br /&gt;
yra angliško žodžio &amp;lt;code&amp;gt;define&amp;lt;/code&amp;gt;, kuris reiškia apibrėžti, trumpinys, o juo pradedame apibrėžti savo kuriamą funkciją. Po &amp;lt;code&amp;gt;def&amp;lt;/code&amp;gt; eina funkcijos pavadinimas: &amp;lt;code&amp;gt;absoliuti_reiksme&amp;lt;/code&amp;gt;. Vėliau skliausteliuose eina parametras n - &amp;lt;code&amp;gt;(n)&amp;lt;/code&amp;gt;, kurio reikšmė yra paimama iš programos, kai funkcija yra iškviečiama. Vėliau eina dvitaškis &amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt;, po kurio esantys teiginiai yra vykdomi naudojant šią funkciją. Teiginiai tęsiami tol, kol pasibaigia funkcijoje nurodyti veiksmai arba grąžinamas norimas rezultatas nurodytas po &amp;lt;code&amp;gt;return&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;return&amp;lt;/code&amp;gt; teiginys grąžina reikšmę į vietą, kur buvo iškviesta funkcija, kaip pirmoje mūsų kurtoje programoje rezultatas buvo grąžintas, kur kvietėme &amp;lt;code&amp;gt;print()&amp;lt;/code&amp;gt; funkciją. Na, o dabar galime kurti naujas funkcijas.&lt;br /&gt;
&lt;br /&gt;
Ar pastebėjai, kad &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt; reikšmės nepasikeitė?&lt;br /&gt;
&lt;br /&gt;
Funkcijos gali būti naudojamos kartojant užduotis, kurios negrąžina reikšmių. Štai keli pavyzdžiai:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def labas():&lt;br /&gt;
    print(&amp;quot;Labas&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
def plotas(plotis, aukštis):&lt;br /&gt;
    return plotis * aukštis&lt;br /&gt;
&lt;br /&gt;
def rašyk_mano_vardas(vardas):&lt;br /&gt;
    print(&amp;quot;Mano vardas&amp;quot;, vardas)&lt;br /&gt;
&lt;br /&gt;
labas()&lt;br /&gt;
labas()&lt;br /&gt;
&lt;br /&gt;
rašyk_labas(&amp;quot;Fredas&amp;quot;)&lt;br /&gt;
w = 4&lt;br /&gt;
h = 5&lt;br /&gt;
print(&amp;quot;plotis =&amp;quot;, w, &amp;quot; aukštis=&amp;quot;, h, &amp;quot; plotas=&amp;quot;, plotas(w, h))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
programos rezultatas&lt;br /&gt;
&lt;br /&gt;
 Labas&lt;br /&gt;
 Labas&lt;br /&gt;
 Mano vardas Fredas&lt;br /&gt;
 plotis = 4  aukštis = 5  plotas = 20&lt;br /&gt;
&lt;br /&gt;
Šis pavyzdys parodo ir daugiau dalykų, kuriuos galima padaryti su funkcijomis. Atkreipk dėmesį, kad galima nenaudoti argumentų arba galima naudoti du ar daugiau. Šis pavyzdys rodo dar keletą dalykų, kuriuos galite padaryti naudodami funkcijas. Taip pat atkreipk dėmesį, kad funkcijai nereikia grąžinti vertės, grąžinimas yra neprivalomas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Funkcijos gali būti naudojamos pakartotiniam kodui pašalinti. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Kintamieji funkcijose ===&lt;br /&gt;
Dažnai pasitaiko, kad pasikartojančiam kode yra kintamųjų, todėl į juos reikia atkreipti dėmesį, kai šaliname pakartotiną kodą. Iki šiol visi kintamieji, kuriuos matėme yra globalūs kintamieji, o funkcijose esantys kintamieji yra vadinami specialiu pavadinimu - lokalūs kintamieji. Šie kintamieji egzistuoja tik veikiant funkcijai. Kai lokalus kintamasis turi globalaus kintamojo pavadinimą, tai funkcijoje pirmenybė teikiama ir naudojamas lokalus kintamasis. Skamba painiai? Štai keli pavyzdžiai:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
a = 4&lt;br /&gt;
 &lt;br /&gt;
def manoFunkcija():&lt;br /&gt;
    a = 17&lt;br /&gt;
    print(&amp;quot;Mano funkcijoje a =&amp;quot;, a)&lt;br /&gt;
&lt;br /&gt;
manoFunkcija()&lt;br /&gt;
print(&amp;quot;a = &amp;quot;, a)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Gaunamas rezultatas&lt;br /&gt;
 Mano funkcijoje a = 17&lt;br /&gt;
 a = 4&lt;br /&gt;
&lt;br /&gt;
Kaip matai pavyzdyje, funkcijos viduje esantis kintamasis nepaiso globalaus kintamojo, nes egzistuoja tik funkcijos viduje. Taip pat, kaip matai, funkcijos viduje kintamajam &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; buvo priskirta nauja reikšmė, bet ji buvo aktuali tik funkcijoje, o ne už jos ribų, globalus &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;, koks buvo, toks ir liko.&lt;br /&gt;
&lt;br /&gt;
Kitas kiek sudėtingesnis pavyzdys:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
a_var = 10&lt;br /&gt;
b_var = 15&lt;br /&gt;
e_var = 25&lt;br /&gt;
&lt;br /&gt;
def funkcija(a_var):&lt;br /&gt;
    print(&amp;quot;funkcijoje a_var =&amp;quot;, a_var)&lt;br /&gt;
    b_var = 100 + a_var&lt;br /&gt;
    d_var = 2 * a_var&lt;br /&gt;
    print(&amp;quot;funkcijoje  b_var =&amp;quot;, b_var)&lt;br /&gt;
    print(&amp;quot;funkcijoje  d_var =&amp;quot;, d_var)&lt;br /&gt;
    print(&amp;quot;funkcijoje  e_var =&amp;quot;, e_var)&lt;br /&gt;
    return b_var + 10&lt;br /&gt;
&lt;br /&gt;
c_var = funkcija(b_var)&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;a_var =&amp;quot;, a_var)&lt;br /&gt;
print(&amp;quot;b_var =&amp;quot;, b_var)&lt;br /&gt;
print(&amp;quot;c_var =&amp;quot;, c_var)&lt;br /&gt;
print(&amp;quot;d_var =&amp;quot;, d_var)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
rezultatas:&lt;br /&gt;
&lt;br /&gt;
 funkcijoje a_var =  15&lt;br /&gt;
 funkcijoje  b_var =  115&lt;br /&gt;
 funkcijoje  d_var =  30&lt;br /&gt;
 funkcijoje  e_var =  25&lt;br /&gt;
 a_var =  10&lt;br /&gt;
 b_var =  15&lt;br /&gt;
 c_var =  125&lt;br /&gt;
 d_var = &lt;br /&gt;
 &lt;br /&gt;
 Klaida (paskutinė aptikta klaida):&lt;br /&gt;
  File &amp;quot;C:\def2.py&amp;quot;, eilutė 19, in &amp;lt;module&amp;gt; (modulyje)&lt;br /&gt;
    print(&amp;quot;d_var = &amp;quot;, d_var)&lt;br /&gt;
 NameError: pavadinimas 'd_var' yra neapibrėžtas&lt;br /&gt;
&lt;br /&gt;
Šiame pavyzdyje kintamieji &amp;lt;code&amp;gt;a_var&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;b_var&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;d_var&amp;lt;/code&amp;gt; yra lokalūs kintamieji priklausantyje funkcijai &amp;lt;code&amp;gt;funkcija()&amp;lt;/code&amp;gt;. Po argumento &amp;lt;code&amp;gt;return b_var + 10&amp;lt;/code&amp;gt; visi jie nustoja egzistuoti. Kintamasis &amp;lt;code&amp;gt; a_var &amp;lt;/code&amp;gt; yra parametro pavadinimas, todėl tai jį automatiškai padaro lokaliu kintamuoju. Kintamieji &amp;lt;code&amp;gt; b_var &amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt; d_var &amp;lt;/code&amp;gt; yra vietiniai kintamieji, nes jie rodomi funkcijos lygybės ženklo kairėje pusėje esančiuose teiginiuose &amp;lt;code&amp;gt; b_var = 100 + a_var &amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt; d_var = 2 * a_var &amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Funkcijos &amp;lt;code&amp;gt; a_var &amp;lt;/code&amp;gt; viduje nėra jai priskirtos vertės. Kai funkcija iškviečiama naudojant &amp;lt;code&amp;gt; c_var = funkcija(b_var) &amp;lt;/code&amp;gt;, 15 priskiriama &amp;lt;code&amp;gt; a_var &amp;lt;/code&amp;gt;, nes tuo metu &amp;lt;code&amp;gt; b_var &amp;lt;/code&amp;gt; yra 15, kai kviečiama funkcija &amp;lt;code&amp;gt; funkcija(15) &amp;lt;/code&amp;gt;. Galiausiai &amp;lt;code&amp;gt; a_var &amp;lt;/code&amp;gt; reikšmė nustatoma į 15, kai jis yra funkcijos &amp;lt;code&amp;gt;funkcija&amp;lt;/code&amp;gt; viduje.&lt;br /&gt;
&lt;br /&gt;
Kaip matai, pasibaigus funkcijai, vietiniai kintamieji &amp;lt;code&amp;gt; a_var &amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt; b_var &amp;lt;/code&amp;gt;, kurie buvo naudojami vietoj globalių kintamųjų dingo. Tada teiginys &amp;lt;code&amp;gt; print (&amp;quot;a_var =&amp;quot;, a_var) &amp;lt;/code&amp;gt; atspausdina reikšmę &amp;lt;code&amp;gt; 10 &amp;lt;/code&amp;gt;, o ne reikšmę &amp;lt;code&amp;gt; 15 &amp;lt;/code&amp;gt; kai dingo lokalus kintamasis, kuris slėpė globalaus kintamojo reikšmę.&lt;br /&gt;
&lt;br /&gt;
Taip pat reikia atkreipti dėmesį į klaidą &amp;lt;code&amp;gt; NameError &amp;lt;/code&amp;gt;, kuri atsiranda mūsų programos pabaigoje. Tai nutinka, nes kintamasis &amp;lt;code&amp;gt; d_var &amp;lt;/code&amp;gt; nebeegzistuoja nuo tada, kai baigėsi &amp;lt;code&amp;gt; funkcija &amp;lt;/code&amp;gt;. Išjungus funkciją, visi lokalūs kintamieji ištrinami. Jeigu nori, ką nors gauti iš funkcijos, turėsi naudoti &amp;lt;code&amp;gt; return&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Paskutinis dalykas, į kurį reikia atkreipti dėmesį, yra tai, kad funkcijos viduje &amp;lt;code&amp;gt; e_var &amp;lt;/code&amp;gt; vertė išlieka nepakitusi, nes tai nėra parametras ir ji niekada nerodoma kairėje funkcijos pusėje. &amp;lt;code&amp;gt; a_func &amp;lt;/code&amp;gt;. Kai funkcijos viduje pasiekiamas globalus kintamasis, tai yra išorinis kintamasis esantis už funkcijos ribų.&lt;br /&gt;
&lt;br /&gt;
Funkcijos naudoja lokalius kintamuosius, kurie egzistuoja tik funkcijos viduje, ir gali ignoruoti kitus kintamuosius, kurie yra už funkcijos ribų.&lt;br /&gt;
&lt;br /&gt;
=== Pavyzdžiai ===&lt;br /&gt;
'''temperatūra2.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#! /usr/bin/python&lt;br /&gt;
#-*-coding: utf-8 -*-&lt;br /&gt;
# konvertuoja temperatūrą į Farenheitus ar Celsijų&lt;br /&gt;
 &lt;br /&gt;
def spausdinti_pasirinkimus():&lt;br /&gt;
    print(&amp;quot;Pasirinkimai:&amp;quot;)&lt;br /&gt;
    print(&amp;quot; 'p' spausdinti pasirinkimus&amp;quot;)&lt;br /&gt;
    print(&amp;quot; 'c' konvertuoti iš Celsijaus&amp;quot;)&lt;br /&gt;
    print(&amp;quot; 'f' konvertuoti iš Farenheitų&amp;quot;)&lt;br /&gt;
    print(&amp;quot; 'q' išjungti programą&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
def celsijus_i_farenheitus(c_temp):&lt;br /&gt;
    return 9.0 / 5.0 * c_temp + 32&lt;br /&gt;
 &lt;br /&gt;
def farenheitai_i_celsiju(f_temp):&lt;br /&gt;
    return (f_temp - 32.0) * 5.0 / 9.0&lt;br /&gt;
 &lt;br /&gt;
pasirinkimas = &amp;quot;p&amp;quot;&lt;br /&gt;
while pasirinkimas != &amp;quot;q&amp;quot;:&lt;br /&gt;
    if pasirinkimas == &amp;quot;c&amp;quot;:&lt;br /&gt;
        c_temp = float(input(&amp;quot;Celsijaus temperatūra: &amp;quot;))&lt;br /&gt;
        print(&amp;quot;Farenheitai:&amp;quot;, celsijus_i_farenheitus(c_temp))&lt;br /&gt;
        pasirinkimas = input(&amp;quot;pasirinkimas: &amp;quot;)&lt;br /&gt;
    elif pasirinkimas == &amp;quot;f&amp;quot;:&lt;br /&gt;
        f_temp = float(input(&amp;quot;farenheitai_i_celsiju: &amp;quot;))&lt;br /&gt;
        print(&amp;quot;Celsijus:&amp;quot;, fahrenheit_to_celsius(f_temp))&lt;br /&gt;
        pasirinkimas= input(&amp;quot;option: &amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        pasirinkimas= &amp;quot;p&amp;quot;    #Arba pasirinkimas! = &amp;quot;q&amp;quot;: kad spausdintų&lt;br /&gt;
                        #kai įrašoma, kas nors netikėto&lt;br /&gt;
        spausdinti_pasirinkimus()&lt;br /&gt;
        pasirinkimas = input(&amp;quot;pasirinkimas: &amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kaip tai veikia?:&lt;br /&gt;
&lt;br /&gt;
 Pasirinkimai:&lt;br /&gt;
  'p' spausdinti pasirinkimus&lt;br /&gt;
  'c' konvertuoti iš Celsijaus&lt;br /&gt;
  'f' konvertuoti iš Farenheitų&lt;br /&gt;
  'q' išjungti programą&lt;br /&gt;
 pasirinkimas: '''c'''&lt;br /&gt;
 Celsijaus temperatūra: '''30''' &lt;br /&gt;
 Farenheitai: 86.0&lt;br /&gt;
 pasirinkimas: '''f'''&lt;br /&gt;
 Farenheitų temperatūra: '''60'''&lt;br /&gt;
 Celsijus: 15.5555555556&lt;br /&gt;
 pasirinkimas: '''q'''&lt;br /&gt;
&lt;br /&gt;
'''plotas2.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#! /usr/bin/python&lt;br /&gt;
#-*-coding: utf-8 -*-&lt;br /&gt;
# apskaičiuoja duotą stačiakampio plotą&lt;br /&gt;
&lt;br /&gt;
def pasisveikinimas():&lt;br /&gt;
    print('Labas!')&lt;br /&gt;
 &lt;br /&gt;
def plotas(plotis, aukštis):&lt;br /&gt;
    return plotis * aukštis&lt;br /&gt;
 &lt;br /&gt;
def mano_vardas(vardas):&lt;br /&gt;
    print('Mano vardas yra,', vardas)&lt;br /&gt;
 &lt;br /&gt;
def teigiama_įvestis(sugalvotas_skaičius):&lt;br /&gt;
    skaičius = float(input(sugalvotas_skaičius))&lt;br /&gt;
    while skaičius&amp;lt;= 0:&lt;br /&gt;
        print('Privalo būti teigiamas skaičius')&lt;br /&gt;
        skaičius = float(input(sugalvotas_skaičius))&lt;br /&gt;
    return skaičius&lt;br /&gt;
 &lt;br /&gt;
vardas = input('Tavo vardas: ')&lt;br /&gt;
pasisveikinimas()&lt;br /&gt;
mano_vardas(name)&lt;br /&gt;
print()&lt;br /&gt;
print('Kad rastum stačiakampio plotą,')&lt;br /&gt;
print('įrašyk plotį ir aukštį')&lt;br /&gt;
print()&lt;br /&gt;
w = positive_input('Plotis: ')&lt;br /&gt;
h = positive_input('Aukštis: ')&lt;br /&gt;
 &lt;br /&gt;
print('Plotis =', w, ' Aukštis =', h, ' Plotas =', area(w, h))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kaip veikia?&lt;br /&gt;
&lt;br /&gt;
 Tavo vardas: '''Josh'''&lt;br /&gt;
 Labas!&lt;br /&gt;
 Mano vardas yra Josh&lt;br /&gt;
 &lt;br /&gt;
 Kad rastum stačiakampio plotą,&lt;br /&gt;
 įrašyk plotį ir aukštį.&lt;br /&gt;
 &lt;br /&gt;
 Plotis: '''-4'''&lt;br /&gt;
 Privalo būti teigiamas skaičius&lt;br /&gt;
 Plotis: '''4'''&lt;br /&gt;
 Aukštis: '''3'''&lt;br /&gt;
 Plotis = 4  Aukštis = 3  Plotas = 12&lt;br /&gt;
&lt;br /&gt;
=== Užduotis ===&lt;br /&gt;
Perrašyk programą plotas2.py, kuri yra aukščiau pateiktame pavyzdyje, kad turėtum atskirą kvadrato, stačiakampio ir apskritimo ploto funkcijas ((&amp;lt;code&amp;gt;3.14 * spindulys**2&amp;lt;/code&amp;gt;). Taip pat šioje programoje turėtų būti meniu:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Solution|title=Sprendimas|text=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def kvadratas(L):&lt;br /&gt;
    return L * L&lt;br /&gt;
&lt;br /&gt;
def stačiakampis(aukštis, plotis):&lt;br /&gt;
    return aukštis * plotis&lt;br /&gt;
&lt;br /&gt;
def apskritimas(spindulys):&lt;br /&gt;
    return 3.14159 * spindulys** 2&lt;br /&gt;
&lt;br /&gt;
def opcijos():&lt;br /&gt;
    print()&lt;br /&gt;
    print(&amp;quot;Pasirinkimai:&amp;quot;)&lt;br /&gt;
    print(&amp;quot;s = skaičiuoti kvadrato plotą.&amp;quot;)&lt;br /&gt;
    print(&amp;quot;c = skaičiuoti apskritimo plotą.&amp;quot;)&lt;br /&gt;
    print(&amp;quot;r = skaičiuoti stačiakampio plotą.&amp;quot;)&lt;br /&gt;
    print(&amp;quot;q = išeiti&amp;quot;)&lt;br /&gt;
    print()&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Ši programa apskaičiuos kvadrato, apskritimo ar stačiakampio plotą.&amp;quot;)&lt;br /&gt;
pasirinkimas = &amp;quot;x&amp;quot;&lt;br /&gt;
opcijos()&lt;br /&gt;
while pasirinkimas != &amp;quot;q&amp;quot;:&lt;br /&gt;
    choice = input(&amp;quot;Įrašykite jūsų pasirinkimą: &amp;quot;)&lt;br /&gt;
    if pasirinkimas== &amp;quot;s&amp;quot;:&lt;br /&gt;
        L = float(input(&amp;quot;Kvadrato kraštinės ilgis: &amp;quot;))&lt;br /&gt;
        print(&amp;quot;Šio kvadrato plotas&amp;quot;, kvadratas(L))&lt;br /&gt;
        opcijos()&lt;br /&gt;
    elif pasirinkimas == &amp;quot;c&amp;quot;:&lt;br /&gt;
        spindulys = float(input(&amp;quot;Apskritimo spindulys yra: &amp;quot;))&lt;br /&gt;
        print(&amp;quot;Apskritimo plotas yra&amp;quot;, apskritimas(spindulys))&lt;br /&gt;
        opcijos()&lt;br /&gt;
    elif pasirinkimas == &amp;quot;r&amp;quot;:&lt;br /&gt;
        plotis = float(input(&amp;quot;Stačiakampio plotis: &amp;quot;))&lt;br /&gt;
        aukštis = float(input(&amp;quot;Stačiakampio aukštis: &amp;quot;))&lt;br /&gt;
        print(&amp;quot;Stačiakampio plotas yra&amp;quot;, kvadratas(plotis, aukštis))&lt;br /&gt;
        opcijos()&lt;br /&gt;
    elif pasirinkimas == &amp;quot;q&amp;quot;:&lt;br /&gt;
        print(&amp;quot; &amp;quot;,end=&amp;quot;&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Neatpažintas pasirinkimas.&amp;quot;)&lt;br /&gt;
        opcijos()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Debugging |next=Advanced Functions Example}}&lt;/div&gt;</summary>
		<author><name>Rokas</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Suskai%C4%8Diuoti_iki_10&amp;diff=3536</id>
		<title>Python Vadovėlis/Suskaičiuoti iki 10</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Suskai%C4%8Diuoti_iki_10&amp;diff=3536"/>
		<updated>2021-11-17T06:39:15Z</updated>

		<summary type="html">&lt;p&gt;Rokas: /* Užduotis */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Ciklai kol (While loops) ===&lt;br /&gt;
Šiame skyriuje susipažinsi su &amp;lt;code&amp;gt;ciklu while&amp;lt;/code&amp;gt; lietuviškas atitikmuo būtų ciklas kol. Kaip jau sužinojai praeitame skyriuje, tai kompiuteris įprastai programą pradeda skaityti ir vykdyti nuo pirmos eilutės ir taip eilutė po eilutės keliauja žemyn per visas duoto kodo eilutes. Tačiau &amp;lt;code&amp;gt;ciklas while&amp;lt;/code&amp;gt; šią tvarką pakeičia ir kompiuteris priėjęs ciklą eilutes skaito pagal šio ciklo nustatytą tvarką, kol ciklas būna įvykdytas. Štai čia yra programos su &amp;lt;code&amp;gt;ciklo while&amp;lt;/code&amp;gt; pavyzdžiu:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
a = 0            # PIRMA, nustatome pradinio kintamojo a reikšmę 0 (nuliui).&lt;br /&gt;
while a &amp;lt; 10:    # Kol kintamojo a vertė yra mažesnė nei 10, programa atlieka šiuos veiksmus:&lt;br /&gt;
    a = a + 1    # Padidina kintamojo a reikšmę 1 (vienu), visai taip kaip nurodyta: a = a + 1! &lt;br /&gt;
    print(a)     # Tuomet nurodome, kad spausdintų. Viskas tam, kad pamatytumėte, kokia yra dabartinė kintamojo a vertė.&lt;br /&gt;
                 # Ir visą šitą ciklą programa vykdo tol, kol kintamojo a reikšmė bus lygi 9!? Žr. Pastabą.&lt;br /&gt;
                 &lt;br /&gt;
                 # PASTABA:&lt;br /&gt;
                 # Kintamojo a vertė padidės 1&lt;br /&gt;
                 # su kiekvienu pakartojimu ar ciklu, kol pasieks nustatytą sąlygą ir sustos.&lt;br /&gt;
                 # pvz. a = 1, tada a = 2, tada a = 3 ir t.t., kol a bus lygus 9 (a = 9), tada...&lt;br /&gt;
                 # kodas baigs pridėjinėti po 1 prie a, nes taps lygus 10 (a = 10) kaip ir numatyta mūsų parašytoje sąlygoje. &lt;br /&gt;
                 # O kai mūsų nurodyta sąlyga yra patenkinama, programa atspausdina rezultatą.&lt;br /&gt;
                 #              --&lt;br /&gt;
                 # While a &amp;lt; 10: |&lt;br /&gt;
                 #     a = a + 1 |&amp;lt;--[ Ciklo Kol sąlygos blokas ]&lt;br /&gt;
                 #     print (a) |&lt;br /&gt;
                 #              --&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Na, o jeigu paleidžiame programą, tai turime štai tokį įdomų rezultatą: &lt;br /&gt;
&lt;br /&gt;
 1&lt;br /&gt;
 2&lt;br /&gt;
 3&lt;br /&gt;
 4&lt;br /&gt;
 5&lt;br /&gt;
 6&lt;br /&gt;
 7&lt;br /&gt;
 8&lt;br /&gt;
 9&lt;br /&gt;
 10&lt;br /&gt;
&lt;br /&gt;
(Tikriausiai iki šios pamokos net nesusimąstei, kad kompiuterį gali paversti pigiu skaičiuotuvu...)&lt;br /&gt;
&lt;br /&gt;
Na, o dabar pasiaiškinkime kaip veikia ši programa. Pirmiausia kompiuteris mato eilutę &amp;lt;code&amp;gt; a = 0 &amp;lt;/code&amp;gt; ir nustato &amp;lt;code&amp;gt; a &amp;lt;/code&amp;gt; reikšmę lygią nuliui. Tada programa mato sąlygą &amp;lt;code&amp;gt;while a &amp;lt; 10: &amp;lt;/code&amp;gt;, todėl kompiuteris patikrina, ar &amp;lt;code&amp;gt; a &amp;lt; 10 &amp;lt;/code&amp;gt;. Kompiuteriui pirmą kartą matant šį teiginį, &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; yra lygus 0, o kas akivaizdžiai reiškia, kad turima reikšmė yra mažesnė nei. Kitaip tariant, kol &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; yra mažesnis skaičius nei dešimt, tol kompiuteris tikrins teiginį ir kartos jį (t.y. pridėjinės po 1), kol &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; bus lygus dešimčiai. Kai pasieks šią nustatytą reikšmę programa nustos skaityti eilutes ir prie kitų kodo eilučių. Kadangi šiame kode daugiau nieko nėra, tai programa sustoja.&lt;br /&gt;
&lt;br /&gt;
ĮSIDĖMĖK: Nepamiršk parašyti dvitaškio &amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt; eilutės pabaigoje, tik taip kompiuteris supras, kad čia yra teiginys!&lt;br /&gt;
&lt;br /&gt;
Kitas &amp;lt;code&amp;gt;ciklo while&amp;lt;/code&amp;gt; pavyzdys:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
a = 1&lt;br /&gt;
s = 0&lt;br /&gt;
print('Įveskite skaičius, kuriuos norite pridėti prie sumos.')&lt;br /&gt;
print('Norėdami išeiti, įveskite 0.')&lt;br /&gt;
while a != 0:                           &lt;br /&gt;
    print('Dabartinė suma:', s)            &lt;br /&gt;
    a = float(input('Skaičius? '))        &lt;br /&gt;
    s = s + a                            &lt;br /&gt;
print('Galutinė suma =', s)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Galimas programos scenarijus: &lt;br /&gt;
&lt;br /&gt;
 Įveskite skaičius, kuriuos norite pridėti prie sumos.&lt;br /&gt;
 Norėdami išeiti, įveskite 0.&lt;br /&gt;
 Dabartinė suma: 0&lt;br /&gt;
 Skaičius? '''200'''&lt;br /&gt;
 Dabartinė suma: 200.0&lt;br /&gt;
 Skaičius? '''-15.25'''&lt;br /&gt;
 Dabartinė suma: 184.75&lt;br /&gt;
 Skaičius? '''-151.85'''&lt;br /&gt;
 Dabartinė suma: 32.9&lt;br /&gt;
 Skaičius? '''10.00'''&lt;br /&gt;
 Dabartinė suma: 42.9&lt;br /&gt;
 Skaičius? '''0'''&lt;br /&gt;
 Galutinė suma = 42.9&lt;br /&gt;
&lt;br /&gt;
Atkreipk dėmesį, kad &amp;lt;code&amp;gt;print('Galutinė suma =', s)&amp;lt;/code&amp;gt; yra paleidžiama tik pačiame gale. Teiginys &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; veikia tik tas eilutes, kurios yra atitrauktos nuo krašto ir priklauso &amp;lt;code&amp;gt;ciklo while&amp;lt;/code&amp;gt; blokui. &amp;lt;code&amp;gt;! = &amp;lt;/code&amp;gt; reiškia nelygu, taigi &amp;lt;code&amp;gt;, kol a! = 0: &amp;lt;/code&amp;gt; reiškia tol, kol &amp;lt;code&amp;gt; a &amp;lt;/code&amp;gt; nėra nulis, programa vykdo kodą.&lt;br /&gt;
&lt;br /&gt;
Ar pastebėjai, kad šiuo atveju &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; yra skaičius su reikšme po kablelio ir ne visi tokie skaičiai gali būti tiksliai atvaizduoti, kai naudojamas &amp;lt;code&amp;gt;!=&amp;lt;/code&amp;gt;. Pabandyk paleidęs programą įvesti 1.1&lt;br /&gt;
&lt;br /&gt;
==== Begaliniai ciklai (infinitive loops) arba niekada nesibaigaintys ciklai (Never Ending Loop)====&lt;br /&gt;
Dabar, kai jau išsiaiškinome, kas yra &amp;lt;code&amp;gt;ciklas while&amp;lt;/code&amp;gt;, pasižiūrėkime kaip atrodo niekada nesibaigiantys ciklai, kaip kad ir šis:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
while True:&lt;br /&gt;
   print(&amp;quot;Padėk! Užstrigau cikle!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Operatorius „&amp;lt;tt&amp;gt; == &amp;lt;/tt&amp;gt;“ naudojamas abiejų operatoriaus pusių išraiškų lygybei patikrinti, kaip ir „&amp;lt;tt&amp;gt; &amp;amp; lt; &amp;lt;/tt&amp;gt;“ buvo naudojami norint pasakyt „mažiau nei“ (Kitame skyriuje rasi išsamų visų palyginimo operatorių sąrašą). &lt;br /&gt;
&lt;br /&gt;
Ši mūsų sukurta programa spausdins &amp;lt;code&amp;gt;Padėk! Užstrigau cikle!&amp;lt;/code&amp;gt; visą amžinybę... Tol, kol pats ją sustabdysi, todėl kad ji visą laiką yra &amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt; (visada atitinka teigiamą reikšmę) arba kitaip tariant 1 reikšmės. Kaip programaą sustabdyti? Paprasčiausiai paspausk ctrl + c mygtukus.&lt;br /&gt;
&lt;br /&gt;
=== Pavyzdžiai ===&lt;br /&gt;
==== Fibonačio seka ====&lt;br /&gt;
'''Fibonacci-metodas1.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Ši programa skaičiuoja Fibonačio seką&lt;br /&gt;
a = 0&lt;br /&gt;
b = 1&lt;br /&gt;
pradinis_skačius = 0&lt;br /&gt;
maksimalus_skaičius = 20&lt;br /&gt;
&lt;br /&gt;
while pradinis_skačius &amp;lt; maksimalus_skaičius:&lt;br /&gt;
    pradinis_skačius = pradinis_skačius + 1&lt;br /&gt;
    print(a, end=&amp;quot; &amp;quot;)  # Atkreipkite dėmesį į end= &amp;quot;&amp;quot; spausdinimo funkcijos argumentuose  &lt;br /&gt;
                       # tai neleidžia sukurti naujos eilutės.&lt;br /&gt;
    senas_a = a    # turime sekti, nes mes jį keičiame.&lt;br /&gt;
    a = b&lt;br /&gt;
    b = senas_a + b&lt;br /&gt;
print()  # gauna naują (tuščią) eilutę.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Išvestis :&lt;br /&gt;
 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181&lt;br /&gt;
&lt;br /&gt;
Įsidėmėk, kad išvestis yra vienoje eilutėje dėl papildomų argumentų &amp;lt;code&amp;gt; end = &amp;quot;&amp;quot; &amp;lt;/code&amp;gt; argumentuose &amp;lt;code&amp;gt; print &amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Fibonacci-metodas2.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Supaprastintas ir greitesnis Fibonačio sekos apskaičiavimo metodas&lt;br /&gt;
a = 0&lt;br /&gt;
b = 1&lt;br /&gt;
pradinis_skačius = 0&lt;br /&gt;
maksimalus_skaičius = 10&lt;br /&gt;
&lt;br /&gt;
while pradinis_skačius &amp;lt; maksimalus_skaičius:&lt;br /&gt;
    pradinis_skačius = pradinis_skačius + 1&lt;br /&gt;
    print(a, b, end=&amp;quot; &amp;quot;)  # Įsidėmėk end=&amp;quot; &amp;quot;&lt;br /&gt;
    a = a + b    &lt;br /&gt;
    b = a + b&lt;br /&gt;
print()  # gauna naują (tuščią) eilutę.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Išvestis:&lt;br /&gt;
 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181&lt;br /&gt;
&lt;br /&gt;
'''Fibonacci-metodas3.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
a = 0&lt;br /&gt;
b = 1&lt;br /&gt;
pradinis_skačius = 0&lt;br /&gt;
maksimalus_skaičius = 20&lt;br /&gt;
&lt;br /&gt;
#kai ciklas prasideda, mes jame pasiliekame&lt;br /&gt;
while pradinis_skačius &amp;lt; maksimalus_skaičius:&lt;br /&gt;
    pradinis_skačius += 1&lt;br /&gt;
    senas_a = a&lt;br /&gt;
    a = a + b&lt;br /&gt;
    b = senas_a&lt;br /&gt;
    print(senas_a,end=&amp;quot; &amp;quot;)&lt;br /&gt;
print()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Išvestis:&lt;br /&gt;
 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181&lt;br /&gt;
&lt;br /&gt;
==== Įvesk slaptažodį ====&lt;br /&gt;
'''Slaptaždis.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Laukia, kol bus įvestas slaptažodis. Naudok „ctrl+ C“, kad sustabdytum programą&lt;br /&gt;
# be slaptažodžio&lt;br /&gt;
&lt;br /&gt;
#atkreipk dėmesį, kad tai neturi būti slaptažodis, kad&lt;br /&gt;
# ciklas while turi prasisukti bent kartą.&lt;br /&gt;
slaptažodis= str()&lt;br /&gt;
&lt;br /&gt;
# įsidėmėk != reiškia nelygu&lt;br /&gt;
while slaptažodis!= &amp;quot;Angis&amp;quot;:&lt;br /&gt;
    slaptažodis = input(&amp;quot;Slaptažodis: &amp;quot;)&lt;br /&gt;
print(&amp;quot;Prisijungimas sėkmingas&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kaip programa veikia:&lt;br /&gt;
 Slaptažodis: '''auo'''&lt;br /&gt;
 Slaptažodis: '''y22'''&lt;br /&gt;
 Slaptažodis: '''slaptažodis'''&lt;br /&gt;
 Slaptažodis: '''Sezamai atsiverk''&lt;br /&gt;
 Slaptažodis: '''Angis'''&lt;br /&gt;
 Prisijungimas sėkmingas&lt;br /&gt;
&lt;br /&gt;
=== Užduotis===&lt;br /&gt;
Parašyk programą, kuri prašo: vartotojo prisijungimo vardo ir slaptažodžio. Tada, kai vartotojas įveda „užrakinti“, jis turi įvesti savo vardą ir slaptažodį, kad atrakintų programą.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
vardas= input(&amp;quot;Koks tavo prisijungimo vardas?: &amp;quot;)&lt;br /&gt;
slaptažodis = input(&amp;quot;Koks tavo slaptažodis: &amp;quot;)&lt;br /&gt;
print(&amp;quot;print(&amp;quot;Kad užrakintum kompiuterį, parašyk: užrakinti&amp;quot;))&lt;br /&gt;
įvesta_komanda = None&lt;br /&gt;
input1 = None&lt;br /&gt;
input2 = None&lt;br /&gt;
while komanda!= &amp;quot;užrakinti&amp;quot;:&lt;br /&gt;
    įvesta_komanda = input(&amp;quot;Kokia tavo komanda: &amp;quot;)&lt;br /&gt;
while input1 != vardas:&lt;br /&gt;
    input1 = input(&amp;quot;Tavo prisijungimo vardas: &amp;quot;)&lt;br /&gt;
while input2 != slaptažodis:&lt;br /&gt;
    input2 = input(&amp;quot;Tavo slaptažodis: &amp;quot;)&lt;br /&gt;
print(&amp;quot;Prisijungimas sėkmingas&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jei nori, kad programa veiktų nepertraukiamai, tiesiog pridėk &amp;lt;code&amp;gt;while 1 == 1: &amp;lt;/code&amp;gt;prieš visą programą. Tik nepamiršk, kad reikia visą likusią programos dalį, t.y. ciklo bloką reikia atitraukti nuo krašto.&lt;br /&gt;
&lt;br /&gt;
Kitas sprendimo būdas&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
vardas = input('Nustatyti vardą: ')&lt;br /&gt;
slaptažodis = input('Nustatyti slaptažodį: ')&lt;br /&gt;
while 1 == 1:&lt;br /&gt;
    vardospėjimas=&amp;quot;&amp;quot;&lt;br /&gt;
    slaptažodžiospėjimas=&amp;quot;&amp;quot;&lt;br /&gt;
    raktas=&amp;quot;&amp;quot;&lt;br /&gt;
    while (vardospėjimas!= vardas) or (slaptažodžiospėjimas!= slaptažodis):&lt;br /&gt;
        vardospėjimas = input('Vardas? ')&lt;br /&gt;
        slaptažodžiospėjimas= input('Slaptažodis? ')&lt;br /&gt;
    print(&amp;quot;Labas,&amp;quot;, vardas, &amp;quot;. Parašyk užrakinti, kad užrakintum.&amp;quot;)&lt;br /&gt;
    while raktas != &amp;quot;užrakinti&amp;quot;:&lt;br /&gt;
        raktas = input(&amp;quot;&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Atkreipk dėmesį į &amp;lt;code&amp;gt;or&amp;lt;/code&amp;gt;, kuris yra prie &amp;lt;code&amp;gt;(vardospėjimas! = vardas) arba (slaptažodžiospėjimas! = slaptažodis)&amp;lt;/code&amp;gt;, kurių dar neįvedėme. Pabandyk suprasti šią logiką ir kaip ji veikia.&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Who Goes There? |next=Decisions}}&lt;/div&gt;</summary>
		<author><name>Rokas</name></author>
	</entry>
</feed>