<?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=Juratevalat</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=Juratevalat"/>
	<link rel="alternate" type="text/html" href="https://wiki.angis.net/w/Specialus:Ind%C4%97lis/Juratevalat"/>
	<updated>2026-05-03T09:13:04Z</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/Funkcij%C5%B3_apibr%C4%97%C5%BEimas&amp;diff=3869</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=3869"/>
		<updated>2022-02-13T15:15:52Z</updated>

		<summary type="html">&lt;p&gt;Juratevalat: &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 neatrodo, 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'as 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 naujai parašomos funkcijos 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 nurodoma, kai funkcija yra iškviečiama. Vėliau eina dvitaškis &amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt;, po kurio esančios komandos yra vykdomos, kai iškviečiama vykdyti ši funkcija. Funkcijos komandos atitrauktos nuo krašto. Jos tęsiasi 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; komanda grąžina reikšmę į tą pačią vietą, kur buvo iškviesta funkcija. Mūsų pavyzdinėje programoje funkcija &amp;lt;code&amp;gt;absoliuti_reikšmė&amp;lt;/code&amp;gt; buvo iškviesta du kartus &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; sąlygos reiškinyje. pabandykime patyrinėti dar kelias 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 taip pat gali būti naudojamos vykdant užduotis, kurios negrąžina reikšmių. Štai keli pavyzdžiai, kuriuose skirtingai aprašomos funkcijos:&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_mano_vardas(&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. Matome ir dar kelis svarbius dalykus, kuriuos gali padaryti naudojant funkcijas. Taip pat atkreipk dėmesį, kad ne kiekviena funkcija grąžina reikšmę – 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 jis egzistuoja tik funkcijos viduje. Taip pat, turėjai pastebėti, kad 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;, esantys funkcijos viduje, yra lokalūs kintamieji. Po paskutinės funkcijos eilutės &amp;lt;code&amp;gt;return b_var + 10&amp;lt;/code&amp;gt; įvykdymo, 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 lokalūs 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;
Kai funkcija iškviečiama naudojant &amp;lt;code&amp;gt;c_var = funkcija(b_var)&amp;lt;/code&amp;gt;, 15 priskiriama kintamajam &amp;lt;code&amp;gt;a_var&amp;lt;/code&amp;gt;, nes tuo metu, kai kviečiama funkcija &amp;lt;code&amp;gt;funkcija(b_var)&amp;lt;/code&amp;gt;, globalaus &amp;lt;code&amp;gt;b_var&amp;lt;/code&amp;gt; reikšmė yra 15. Taigi &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 funkcijos viduje, dingo. Tad komanda &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;, t. y. globaliojo kintamojo &amp;lt;code&amp;gt;a_var&amp;lt;/code&amp;gt; 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;. Pasibaigus funkcijai, visi lokalūs kintamieji ištrinami. Jeigu nori, ką nors gauti iš funkcijos, turėsi naudoti komandą &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; reikšmė išlieka nepakitusi, nes tai nėra nei parametras, nei lokalus kintamasis – jis niekada nerodomas kairėje lygybės pusėje. Kai funkcijos viduje kreipiamasi į globalų kintamąjį, tai jis naudoja reikšmę, įgytą 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;pasirinkimas: &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, taip, kad būtų parašytos atskiros kvadrato, stačiakampio ir apskritimo ploto funkcijos ((&amp;lt;code&amp;gt;3.14 * spindulys**2&amp;lt;/code&amp;gt;). Taip pat šioje programoje turėtų būti sukurtas toks pasirinkimų meniu:&lt;br /&gt;
&lt;br /&gt;
  Pasirinkimai:&lt;br /&gt;
   s = skaičiuoti kvadrato plotą.&lt;br /&gt;
   c = skaičiuoti apskritimo plotą.&lt;br /&gt;
   r = skaičiuoti stačiakampio plotą.&lt;br /&gt;
   q = išeiti.&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;
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šyk savo 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;
&lt;br /&gt;
{{navigation |previous=Derinimas |next=Pažangių funkcijų pavyzdys}}&lt;/div&gt;</summary>
		<author><name>Juratevalat</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/%C4%AEvadas_%C4%AF_objektin%C4%AF_programavim%C4%85_Python_3&amp;diff=3868</id>
		<title>Python Vadovėlis/Įvadas į objektinį programavimą Python 3</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/%C4%AEvadas_%C4%AF_objektin%C4%AF_programavim%C4%85_Python_3&amp;diff=3868"/>
		<updated>2022-02-12T15:53:53Z</updated>

		<summary type="html">&lt;p&gt;Juratevalat: /* Įžanga */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Objektinis programavimas==&lt;br /&gt;
&lt;br /&gt;
Iki šiol rašei kodą pagal procedūrinio programavimo taisykles. Tačiau, yra daug programų, kurios parašytos pagal objektinio programavimo taisykles. Žinoti abu programavimo tipus ir jų skirtumus yra labai svarbu. Informatikoje, daug svarbių kalbų, tokių kaip C++ ar Java, dažnai naudoja objektinio programavimo taisykles.&lt;br /&gt;
&lt;br /&gt;
Pradedantiesiems ir mokiniams, neturintiems programavimo žinių, objektinis programavimas dažnai gali atrodyti painus ir tai yra visiškai normalu. Nesijausk blogai, jei nesiseka suprasti iš pat pradžių. Jei šis skyrius nepadės tau suprasti, yra ir daugiau informatyvių šaltinių, kurie padės atsakyti į visus klausimus.&lt;br /&gt;
&lt;br /&gt;
Šis skyrius yra padalintas į keletą pamokų. Kiekviena pamoka - skirta paaiškinti skirtingas objektinio programavimo dalis. &amp;lt;b&amp;gt;LABAI SVARBU&amp;lt;/b&amp;gt; suprasti jas visas. Nepamiršk prieš kiekvieną pamoką perskaityti įžangą, kuri paaiškins pagrindines idėjas, sąvokas ir kitas objektinio programavimo sritis.&lt;br /&gt;
&lt;br /&gt;
==Įžanga==&lt;br /&gt;
&lt;br /&gt;
Tu jau žinai, kad funkcija turi konkrečią paskyrtį ir ji gali būti įvairi: rinkti įvestis, atlikti matematinius skaičiavimus, atvaizduoti ar kitaip manipuliuoti duomenimis. Paprastai, funkcijos manipuliuoja duomenimis, kurie yra aprašyti atskirai. Šie duomenys yra dažnai perduodami iš vienos funkcijos į kitą. Ir, kai programa pasidaro per didelė, tai padaro duomenų perdavimą komplikuotą.&lt;br /&gt;
Pavyzdžiui, parašei programą, kuri kintamuosiuose išsaugo produkto duomenis. Kai klientas paprašo informacijos apie produktą, reikia išrinkti visus kintamuosius, saugančius tuos duomenis ir pateikti atitinkamoms funkcijoms. Laikui bėgant ir saugant vis daugiau duomenų apie turimus produktus, tu sugalvoji išsaugoti turimą informaciją sąrašuose ar žodynuose. Norint, jog tavo programa veiktų, tu dabar turi redaguoti kiekvieną funkciją, kuri naudojo tuos kintamuosius, taip, kad dabar ji galėtų priimti ir manipuliuoti sąrašus ar žodynus. Įsivaizduok kiek laiko tau reikėtų norint peržiūrėti ir pakeisti šimtus failų. Tu išprotėtum! Nekalbant apie tai, jog klaidas daro net ir labiausiai patyrę programuotojai, tad taip pat reikėtų taisyti begalę klaidų. Toks programavimas yra pernelyg neoptimalus.&lt;br /&gt;
Procedūrinis programavimas yra paremtas funkcijomis (procedūromis). Objektinis programavimas yra paremtas objektais. Ar prisimeni, kaip procedūrinė programa atskyrė duomenis nuo kodo? Ar prisimeni programą, kuri turėjo šimtus failų ir norint kažką pakeisti reikėdavo ilgai joje narpstytis? &lt;br /&gt;
Galvok apie &amp;lt;i&amp;gt;objektą&amp;lt;/i&amp;gt; kaip apie minėtų failų ir duomenų „kombinaciją“ į vieną esybę. Technine prasme, objektas yra esybė, kuri savyje turi duomenis ir veiksmus su tais duomenimis (kodą, funkcijas, t.t.).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Duomenis objekto viduje vadiname &amp;lt;i&amp;gt;atributais&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Funkcijas objekto viduje vadiname &amp;lt;i&amp;gt;metodais&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Galvok apie &amp;lt;b&amp;gt;duomenų atributus&amp;lt;/b&amp;gt; kaip apie kintamuosius. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Galvok apie &amp;lt;b&amp;gt;metodus&amp;lt;/b&amp;gt; kaip apie funkcijas. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pažiūrėk į paprastą, kasdienį pavyzdį. Lemputė ir jungiklis tavo kambaryje.&lt;br /&gt;
Atributai bus štai tokie.&lt;br /&gt;
&lt;br /&gt;
* šviesa_įjungta (True False)&lt;br /&gt;
* jungiklio_pozicija (Viršuje arba Apačioje)&lt;br /&gt;
* elektros_tekėjimas (True arba False)&lt;br /&gt;
&lt;br /&gt;
Metodai būtų štai tokie.&lt;br /&gt;
&lt;br /&gt;
* pakeisti_jungiklio_poziciją&lt;br /&gt;
* pakeisti_elektros_tekėjimą&lt;br /&gt;
&lt;br /&gt;
Atributai gali būti matomi ir nematomi. Pavyzdžiui, tu negali matyti elektros tekančios į lemputę. Tu tik žinai, kad elektra išties teka, nes ji tuo metu skleidžia šviesą. Nepaisant to, tu gali matyti jungiklio poziciją (jungiklio_pozicija) ir taip pat tu matai ar šviesa yra įjungta ar ne (šviesa_įjungta). Kai kurie metodai yra &amp;lt;i&amp;gt;privatūs&amp;lt;/i&amp;gt;. Tai reiškia, jog jų reikšmės neišeina tiesiogiai pakeisti. Pavyzdžiui, tu negalėtum pakeisti elektros tėkmės tiesiogiai, nebent būtų nukerpami laidai (to nedaryk ir dėl šio pavyzdžio; manyk, jog laidai neegzistuoja). Tu taip pat negali tiesiogiai įtakoti lemputės šviesos (ne, tu negali atsukti lemputės ar jos sudaužyti!). Bet tu visada gali šiuos atributus įtakoti netiesiogiai naudojant objekto &amp;lt;i&amp;gt;metodus&amp;lt;/i&amp;gt;. Jeigu nesumokėsi mokesčių, metodas pavadinimu &amp;lt;code&amp;gt;pakeisti_elektros_tekėjimą&amp;lt;/code&amp;gt; pakeis &amp;lt;code&amp;gt;elektros_tekėjimas&amp;lt;/code&amp;gt; reikšmę į False. Jei tu įjungsi jungiklį, &amp;lt;code&amp;gt;pakeisti_jungiklio_poziciją&amp;lt;/code&amp;gt; metodas pakeis &amp;lt;code&amp;gt;šviesa_įjungta&amp;lt;/code&amp;gt; atributo reikšmę.&lt;br /&gt;
&lt;br /&gt;
Dabar jau tikriausiai galvoji, „Ką tai turi bendro su Python'u?“ ar, „Aš nesuprantu, bet kaip man sukurti tą objektą?“. Na, beveik priėjai prie atsakymų! Tik turiu paaiškinti dar vieną dalyką prieš neriant į kodą.&lt;br /&gt;
&lt;br /&gt;
Python'e objekto atributai ir metodai yra nurodomi &amp;lt;b&amp;gt;klasės&amp;lt;/b&amp;gt;. Galvok apie klasę kaip apie objekto techninį piešinį. Pavyzdžiui, tavo namai - objektas kuriame gyveni - taip pat jį gali vadinti butu, vasarnamiu, prakartėle ar bet kuo kitu, buvo pastatytas naudojant techinius piešinius. Šie techniniai piešiniai būtų vadinami klasėmis, kurios buvo panaudotos projektuojant tavo namus, butą, vasarnamį, na, supranti apie ką kalbu. &lt;br /&gt;
&lt;br /&gt;
Dar kartą, klasė pasako, kaip sukurti objektą. Techniniais terminais tariant, ir tai yra labai svarbu, klasė nusako naudojamus duomenų atributus ir metodus objekte.&lt;br /&gt;
&lt;br /&gt;
Norint sukurti klasę, mes suprogramuojame &amp;lt;i&amp;gt;klasės apibrėžimą&amp;lt;/i&amp;gt;. Klasės apibrėžimas, tai grupė komandų, kurios nusako objekto atributus ir metodus.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&amp;lt;b&amp;gt;Pirma pamoka&amp;lt;/b&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apačioje yra procedūrinė programa, kuri atlieka paprastą matematinį veiksmą su vartotojo įvestu skaičiumi.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Programa parašyta Mitchell Aikens&lt;br /&gt;
# Nėra autoriaus teisių&lt;br /&gt;
# 2012&lt;br /&gt;
&lt;br /&gt;
# Procedūra 1&lt;br /&gt;
def main():&lt;br /&gt;
    try:&lt;br /&gt;
        # Pasiimk skaičių, kurį manipuliuosi.&lt;br /&gt;
        sk = float(input(&amp;quot;Įrašyk skaičių.\n&amp;quot;))&lt;br /&gt;
        # Išsaugok naują skaičių į kintamąjį. Prieš tai, su pasiimtu skaičiumi atlik matematinius&lt;br /&gt;
        # veiksmus naudojant procedūrą 2&lt;br /&gt;
        pridėksk = pridėkpenkis(sk)&lt;br /&gt;
        # Išsaugok naują skaičių į kintamąjį. Prieš tai, su ankščiau išsaugotu skaičiu atlik&lt;br /&gt;
        # matematinius veiksmus naudojant procedūrą 3&lt;br /&gt;
        dauginksk = daugink(pridėksk)&lt;br /&gt;
        # Paduok skaičių procedūrai 4&lt;br /&gt;
        rodyk(dauginksk)&lt;br /&gt;
    # Susidorok su išimtimis, kurios gali atsirasti dėl netinkamo vartotojo skaičiaus įvedimo&lt;br /&gt;
    except ValueError:&lt;br /&gt;
        print(&amp;quot;Privalai įvesti tinkamą skaičių.\n&amp;quot;)&lt;br /&gt;
        # Atstatyk kintamojo num reikšmę, kad ištrintum netinkamą vartotojo įvestį.&lt;br /&gt;
        sk = 0&lt;br /&gt;
        # Dar kartą iškviesk main.&lt;br /&gt;
        main()&lt;br /&gt;
&lt;br /&gt;
# Procedūra 2&lt;br /&gt;
def pridėkpenkis(sk):&lt;br /&gt;
    return sk + 5&lt;br /&gt;
&lt;br /&gt;
# Procedūra 3&lt;br /&gt;
def daugink(pridėksk):&lt;br /&gt;
    return pridėksk * 2.452&lt;br /&gt;
&lt;br /&gt;
# Procedūra 4&lt;br /&gt;
def rodyk(dauginksk):&lt;br /&gt;
    # Parodyk galutinį rezultatą.&lt;br /&gt;
    print(&amp;quot;Galutinis rezultatas yra&amp;quot;, dauginksk)&lt;br /&gt;
&lt;br /&gt;
# Kviesk procedūrą 1&lt;br /&gt;
main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jei įrašysi skaitemnį &amp;quot;5&amp;quot;, gausi išvestį parodytą žemiau.&lt;br /&gt;
&lt;br /&gt;
 Įrašyk skaičių.&lt;br /&gt;
 5&lt;br /&gt;
 Galutinis rezultatas yra 24.52&lt;br /&gt;
&lt;br /&gt;
Jei įrašysi reikšmę &amp;quot;g&amp;quot;, tada pasitaisysi ir įrašysi skaitmenį &amp;quot;8&amp;quot;, tada gausi išvestį parodytą žemiau.&lt;br /&gt;
&lt;br /&gt;
 Įrašyk skaičių.&lt;br /&gt;
 g&lt;br /&gt;
 Privalai įvesti tinkamą skaičių.&lt;br /&gt;
 &lt;br /&gt;
 Įrašyk skaičių.&lt;br /&gt;
 8&lt;br /&gt;
 Galutinis rezultatas yra 31.875999999999998&lt;br /&gt;
&lt;br /&gt;
Žemiau matai klasę ir programą, kuri naudoja nurodytą klasę. Ši objektinio programavimo būdu parašyta programa daro tą patį, ką prieš tai darė procedūriniu programavimo būdu parašyta programa. Apžiūrėk keletą svarbių objektinio programavimo būdo konceptų prieš neriant į ankščiau minėtą klasę ir programą.&lt;br /&gt;
Norint sukurti klasę, naudok &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt; raktažodį. Po raktažodžio rašyk pavadinimą, kurį norėtum, jog turėtų klasė. Dažnai naudojama praktika kuriant klasių pavadinimus yra &amp;lt;i&amp;gt;NaujųŽodžiųRašymasIšDidžiosiosRaidės&amp;lt;/i&amp;gt;.&lt;br /&gt;
Jei norėčiau sukurti klasę pavadinimu purvinoskojinės, kodas atrodytų taip:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
class PurvinosKojinės&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Iš pradžių pažiūrėk į klasę. Programa, kuri naudos šią klasę, bus parodyta vėliau.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Failo pavadinimas: ooppavyzdys.py&lt;br /&gt;
# Programa parašyta Mitchell Aikens&lt;br /&gt;
# Nėra autoriaus teisių&lt;br /&gt;
# 2012&lt;br /&gt;
# OOP Demonstracija - Klasė&lt;br /&gt;
&lt;br /&gt;
class SkKeitimas:&lt;br /&gt;
&lt;br /&gt;
    def __init__(self):&lt;br /&gt;
        self.__skaičius = 0&lt;br /&gt;
&lt;br /&gt;
    def pridėkpenkis(self, sk):&lt;br /&gt;
        self.__skaičius = sk&lt;br /&gt;
        return self.__skaičius + 5&lt;br /&gt;
&lt;br /&gt;
    def padaugink(self, pridėtas):&lt;br /&gt;
        self.__pridėtas = pridėtas&lt;br /&gt;
        return self.__pridėtas * 2.452&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Programa, kuri naudoja viršuje esančią klasę yra parašyta žemiau.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Failo pavadinimas: ooppavyzdys.py&lt;br /&gt;
# Mitchell Aikens&lt;br /&gt;
# Nėra autoriaus teisių&lt;br /&gt;
# 2012&lt;br /&gt;
# OOP Demonstracija - Programa&lt;br /&gt;
&lt;br /&gt;
import ooppavyzdys&lt;br /&gt;
&lt;br /&gt;
matkė = ooppavyzdys.SkKeitimas()&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
&lt;br /&gt;
    sk = float(input(&amp;quot;Įrašyk skaičių.\n&amp;quot;))&lt;br /&gt;
&lt;br /&gt;
    pridėtas = matkė.pridėkpenkis(sk)&lt;br /&gt;
&lt;br /&gt;
    daugintas = matkė.padaugink(pridėtas)&lt;br /&gt;
&lt;br /&gt;
    print(&amp;quot;Galutinis rezultatas yra&amp;quot;, daugintas)&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tikriausiai dabar esi pasimetęs. Tai visiškai suprantama. Iš pradžių, pasistenk suprasti klasę.&lt;br /&gt;
Klasė yra pavadinta &amp;quot;SkKeitimas&amp;quot;&lt;br /&gt;
Ši klasė turi tris metodus&lt;br /&gt;
* __init__&lt;br /&gt;
* pridėkpenkis&lt;br /&gt;
* padaugink&lt;br /&gt;
&lt;br /&gt;
Šie trys metodai savyje turi labai panašų kodą.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def __init__(self):&lt;br /&gt;
    self.__skaičius = 0&lt;br /&gt;
&lt;br /&gt;
def pridėkpenkis(self, sk):&lt;br /&gt;
    self.__skaičius = sk&lt;br /&gt;
    return self.__skaičius + 5&lt;br /&gt;
&lt;br /&gt;
def padaugink(self, pridėtas):&lt;br /&gt;
    self.__pridėtas = pridėtas&lt;br /&gt;
    return self.__pridėtas * 2.452&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Atkreipk dėmesį į tai, jog kiekvienas metodas turi parametrą pavadinimu „self“. Kiekvienas klasės metodas turi būtinai turėti šį parametrą. Šis parametras nebūtinai turi būti su pavadinimu „self“, bet tai laikoma gerąja praktika, tad tikriausiai ir tu turėtum jį taip vadinti. Šis parametras yra reikalingas kiekviename metode nes, kai jis yra iškviečiamas, jis turi žinoti, su kuriuo objekto atributu turėtų atlikti operacijas. Net kai turi tik vieną objektą, turi pasirūpinti, kad programa žinotų, jog nori naudoti atributus aprašytus būtent toje klasėje. Todėl turi būti saugus ir naudoti „self“ parametrą.&lt;br /&gt;
&lt;br /&gt;
Peržiūrėk pirmą metodą.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def __init__(self):&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dauguma Python'o klasių turi &amp;lt;code&amp;gt;__init__&amp;lt;/code&amp;gt; metodą, kuris yra paleidžiamas automatiškai kiekvieną kartą, kai atmintyje yra sukuriamas tos klasės objektas (kai vykdoma programa kreipiasi į klasę, yra sukuriama tos klasės &amp;lt;i&amp;gt;objektas&amp;lt;/i&amp;gt;). Šis metodas yra paprastai vadinamas &amp;lt;i&amp;gt;inicijavimo metodu&amp;lt;/i&amp;gt;. Kai šis metodas yra paleidžiamas, „self“ parametras yra automatiškai priskiriamas sukurtam objektui. __init__ metodas inicijuoja klasės atributus, dėl šios priežasties jis yra pavadintas inicijavimo metodu. Vykdant __init__ metodą, &amp;lt;code&amp;gt;skaičius&amp;lt;/code&amp;gt; atributui priskiriame 0.&lt;br /&gt;
Į objekto atributą skaičius kreipiamės panaudojant tašką.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def __init__(self):&lt;br /&gt;
    self.__skaičius = 0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Kodas &amp;lt;code&amp;gt;self.__skaičius = 0&amp;lt;/code&amp;gt; reiškia, jog objekte esančio „skaičius“ atributo reikšmė tampa lygi 0.&lt;br /&gt;
&lt;br /&gt;
Pažiūrėk į kitą metodą.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def pridėkpenkis(self, sk):&lt;br /&gt;
    self.__skaičius = sk&lt;br /&gt;
    return self.__skaičius + 5&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Šis metodas yra pavadintas „pridėkpenkis“. Jis priima parametrą pavadinimu „sk“. Metode esanti komanda priskiria „sk“ reikšmę objekte esančiui atributui pavadinimu „skaičius“. Tada metodas prideda 5 prie „skaičius“ ir jį grąžina į tą vietą, kur metodas buvo iškviestas.&lt;br /&gt;
&lt;br /&gt;
Pažiūrėk į trečiajį metodą.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def padaugink(self, pridėtas):&lt;br /&gt;
    self.__pridėtas = pridėtas&lt;br /&gt;
    return self.__pridėtas * 2.453&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Šis metodas yra pavadintas „padaugink“. Jis priima parametrą pavadinimu „pridėtas“. Metodas priskiria priimtą reikšmę objekte esančiam atributui su pavadinimu „pridėtas“ ir grąžina „pridėtas“ atributo ir 2.452 sandaugą į tą vietą, kur metodas buvo iškviestas.&lt;br /&gt;
&lt;br /&gt;
Ar atkreipei dėmesį į tai, jog kiekvieno metodo viduje „self“ atributas prasideda su dviem pabraukimais? Pabandyk suprasti kodėl.&lt;br /&gt;
Prieš tai buvo minėta, jog objektas, metodų pagalba, dirba su atributais apibrėžtais jame pačiame. Būtų idealu, jei tuos atributus galėtum pakeisti TIK SU METODAIS ESANČIAIS TAME OBJEKTE. Įmanoma turėti iššorinį kodą, kuris galėtų manipuliuoti tais pačiais atributais. Norint „paslėpti“ atributus, taip, kad juos matytų tik metodai aprašyti pačiame objekte, turi naudoti du pabraukimus prieš objekto pavadinimą, taip kaip ir buvo padaryta. Ištrynus abu pabraukimus nuo atributo pavadinimo tu juo galėsi manipuliuoti kodu, kuris parašytas objekto išorėje.&lt;br /&gt;
&lt;br /&gt;
Pažiūrėk į programą, kuri naudoja aptartą klasę.&lt;br /&gt;
&lt;br /&gt;
Atkreipk dėmesį į pirmą eilutę, kuri nėra komentaras.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import ooppavyzdys&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ši kodo eilutė importuoją klasę, kurią išsaugojai atskirame faile (modulyje). Klasės nebūtinai turi būti talpinamos atskiruose failuose, bet tai yra priimta kaip geroji praktika, tad yra verta jau nuo pat pradžių priprasti prie modulių importavimo.&lt;br /&gt;
&lt;br /&gt;
Kita eilutė:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
matkė = ooppavyzdys.SkKeitimas()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ši eilutė sukuria SkKeitimas pavadinimu „ooppavyzdys“ modulyje patalpintos klasės objektą, kuris yra priskiriamas „matkė“ kintamajam.&lt;br /&gt;
Sintaksė atrodo taip: &amp;lt;code&amp;gt;&amp;lt;i&amp;gt;moduliopavadinimas.Klasėspavadinimas()&amp;lt;/i&amp;gt;&amp;lt;/code&amp;gt;. Toliau apibrėžiama ''main'' funkcija ir paimamas skaičius iš vartotojo priskiriamas kintamajam &amp;lt;code&amp;gt;sk&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Kita eilutė &amp;lt;code&amp;gt;pridėtas = matkė.pridėkpenkis(sk)&amp;lt;/code&amp;gt; nusiunčia „sk“ kintamojo reikšmę metodui pavadinimu „pridėkpenkis“. Metodas yra aprašytas klasėje, kurios objektą sukūrei kintamajame pavadinimu „matkė“. „pridėkpenkis“ metodas grąžina apskaičiuotį reikšmę, kuri priskiriama kintamajam pavadinimu „pridėtas“.&lt;br /&gt;
&lt;br /&gt;
Kita eilutė &amp;lt;code&amp;gt;daugintas = matkė.daugink(pridėtas)&amp;lt;/code&amp;gt; nusiunčia „pridėtas“ kintamojo reikšmę metodui pavadinimu „daugink“. Metodas yra aprašytas objekto „matkė“ klasėje. „daugink“ metodas apskaičiuja ir grąžina reikšmę, kuri yra priskiriama kintamajam pavadinimu „daugintas“.&lt;br /&gt;
&lt;br /&gt;
Paskutinė main() funkcijos eilutė atspausdina „Galutinis rezultatas yra &amp;lt;kintamojo daugintas reikšmė&amp;gt;“. &lt;br /&gt;
&lt;br /&gt;
Programos paskutinė eilutė iškviečia main funkciją, kuri įvykdo žingsnius nurodytus viršuje.&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Rekursija|next=Įvadas į importuotas bibliotekas ir kitas funkcijas}}&lt;br /&gt;
{{BookCat}}&lt;/div&gt;</summary>
		<author><name>Juratevalat</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/%C4%AEvadas_%C4%AF_objektin%C4%AF_programavim%C4%85_Python_3&amp;diff=3867</id>
		<title>Python Vadovėlis/Įvadas į objektinį programavimą Python 3</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/%C4%AEvadas_%C4%AF_objektin%C4%AF_programavim%C4%85_Python_3&amp;diff=3867"/>
		<updated>2022-02-12T15:20:54Z</updated>

		<summary type="html">&lt;p&gt;Juratevalat: /* Įžanga */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Objektinis programavimas==&lt;br /&gt;
&lt;br /&gt;
Iki šiol rašei kodą pagal procedūrinio programavimo taisykles. Tačiau, yra daug programų, kurios parašytos pagal objektinio programavimo taisykles. Žinoti abu programavimo tipus ir jų skirtumus yra labai svarbu. Informatikoje, daug svarbių kalbų, tokių kaip C++ ar Java, dažnai naudoja objektinio programavimo taisykles.&lt;br /&gt;
&lt;br /&gt;
Pradedantiesiems ir mokiniams, neturintiems programavimo žinių, objektinis programavimas dažnai gali atrodyti painus ir tai yra visiškai normalu. Nesijausk blogai, jei nesiseka suprasti iš pat pradžių. Jei šis skyrius nepadės tau suprasti, yra ir daugiau informatyvių šaltinių, kurie padės atsakyti į visus klausimus.&lt;br /&gt;
&lt;br /&gt;
Šis skyrius yra padalintas į keletą pamokų. Kiekviena pamoka - skirta paaiškinti skirtingas objektinio programavimo dalis. &amp;lt;b&amp;gt;LABAI SVARBU&amp;lt;/b&amp;gt; suprasti jas visas. Nepamiršk prieš kiekvieną pamoką perskaityti įžangą, kuri paaiškins pagrindines idėjas, sąvokas ir kitas objektinio programavimo sritis.&lt;br /&gt;
&lt;br /&gt;
==Įžanga==&lt;br /&gt;
&lt;br /&gt;
Tu jau žinai, kad funkcija turi konkrečią paskyrtį ir ji gali būti įvairi: rinkti įvestis, atlikti matematinius skaičiavimus, atvaizduoti ar kitaip manipuliuoti duomenimis. Paprastai, funkcijos manipuliuoja duomenimis, kurie yra aprašyti atskirai. Šie duomenys yra dažnai perduodami iš vienos funkcijos į kitą. Ir, kai programa pasidaro per didelė, tai padaro duomenų perdavimą komplikuotą.&lt;br /&gt;
Pavyzdžiui, parašei programą, kuri kintamuosiuose išsaugo produkto duomenis. Kai klientas paprašo informacijos apie produktą, reikia išrinkti visus kintamuosius, saugančius tuos duomenis ir pateikti atitinkamoms funkcijoms. Laikui bėgant ir saugant vis daugiau duomenų apie turimus produktus, tu sugalvoji išsaugoti turimą informaciją sąrašuose ar žodynuose. Norint, jog tavo programa veiktų, tu dabar turi redaguoti kiekvieną funkciją, kuri naudojo tuos kintamuosius, taip, kad dabar ji galėtų priimti ir manipuliuoti sąrašus ar žodynus. Įsivaizduok kiek laiko tau reikėtų norint peržiūrėti ir pakeisti šimtus failų. Tu išprotėtum! Nekalbant apie tai, jog klaidas daro net ir labiausiai patyrę programuotojai, tad taip pat reikėtų taisyti begalę klaidų. Toks programavimas yra pernelyg neoptimalus.&lt;br /&gt;
Procedūrinis programavimas yra paremtas funkcijomis (procedūromis). Objektinis programavimas yra paremtas objektais. Ar prisimeni, kaip procedūrinė programa atskyrė duomenis nuo kodo? Ar prisimeni programą, kuri turėjo šimtus failų ir norint kažką pakeisti reikėdavo ilgai joje narpstytis? &lt;br /&gt;
Galvok apie &amp;lt;i&amp;gt;objektą&amp;lt;/i&amp;gt; kaip apie minėtų failų ir duomenų „kombinaciją“ į vieną esybę. Technine prasme, objektas yra esybė, kuri savyje turi duomenis ir veiksmus su tais duomenimis (kodą, funkcijas, t.t.).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Duomenis objekto viduje vadiname &amp;lt;i&amp;gt;atributais&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Funkcijas objekto viduje vadiname &amp;lt;i&amp;gt;metodais&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Galvok apie &amp;lt;b&amp;gt;duomenų atributus&amp;lt;/b&amp;gt; kaip apie kintamuosius. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Galvok apie &amp;lt;b&amp;gt;metodus&amp;lt;/b&amp;gt; kaip apie funkcijas. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pažiūrėk į paprastą, kasdienį pavyzdį. Lemputė ir jungiklis tavo kambaryje.&lt;br /&gt;
Atributai bus štai tokie.&lt;br /&gt;
&lt;br /&gt;
* šviesa_įjungta (True False)&lt;br /&gt;
* jungiklio_pozicija (Viršuje arba Apačioje)&lt;br /&gt;
* elektros_tekėjimas (True arba False)&lt;br /&gt;
&lt;br /&gt;
Metodai būtų štai tokie.&lt;br /&gt;
&lt;br /&gt;
* pakeisti_jungiklio_poziciją&lt;br /&gt;
* pakeisti_elektros_tekėjimą&lt;br /&gt;
&lt;br /&gt;
Atributai gali būti matomi ir nematomi. Pavyzdžiui, tu negali matyti elektros tekančios į lemputę. Tu tik žinai, kad elektra išties teka, nes ji tuo metu skleidžia šviesą. Nepaisant to, tu gali matyti jungiklio poziciją (jungiklio_pozicija) ir taip pat tu matai ar šviesa yra įjungta ar ne (šviesa_įjungta). Kai kurie metodai yra &amp;lt;i&amp;gt;privatūs&amp;lt;/i&amp;gt;. Tai reiškia, jog jų reikšmės neišeina tiesiogiai pakeisti. Pavyzdžiui, tu negalėtum pakeisti elektros tėkmės tiesiogiai, nebent būtų nukerpami laidai (to nedaryk ir dėl šio pavyzdžio; manyk, jog laidai neegzistuoja). Tu taip pat negali tiesiogiai įtakoti lemputės šviesos (ne, tu negali atsukti lemputės ar jos sudaužyti!). Bet tu visada gali šiuos atributus įtakoti netiesiogiai naudojant objekto &amp;lt;i&amp;gt;metodus&amp;lt;/i&amp;gt;. Jeigu nesumokėsi mokesčių, metodas pavadinimu &amp;lt;code&amp;gt;pakeisti_elektros_tekėjimą&amp;lt;/code&amp;gt; pakeis &amp;lt;code&amp;gt;elektros_tekėjimas&amp;lt;/code&amp;gt; reikšmę į False. Jei tu įjungsi jungiklį, &amp;lt;code&amp;gt;pakeisti_jungiklio_poziciją&amp;lt;/code&amp;gt; metodas pakeis &amp;lt;code&amp;gt;šviesa_įjungta&amp;lt;/code&amp;gt; atributo reikšmę.&lt;br /&gt;
&lt;br /&gt;
Dabar jau tikriausiai galvoji, „Ką tai turi bendro su Python'u?“ ar, „Aš nesuprantu, bet kaip man sukurti tą objektą?“. Na, beveik priėjai prie atsakymų! Tik turiu paaiškinti dar vieną dalyką prieš neriant į kodą.&lt;br /&gt;
&lt;br /&gt;
Python'e objekto atributai ir metodai yra nurodomi &amp;lt;b&amp;gt;klasės&amp;lt;/b&amp;gt;. Galvok apie klasę kaip apie objekto techninį piešinį. Pavyzdžiui, tavo namai - objektas kuriame gyveni - taip pat jį gali vadinti butu, vasarnamiu, prakartėle ar bet kuo kitu, buvo pastatytas naudojant techinius piešinius. Šie techniniai piešiniai būtų vadinami klasėmis, kurios buvo panaudotos projektuojant tavo namus, butą, vasarnamį, na, supranti apie ką kalbu. &lt;br /&gt;
&lt;br /&gt;
Dar kartą, klasė pasako, kaip sukurti objektą. Techniniais terminais tariant, ir tai yra labai svarbu, klasė nusako naudojamus duomenų atributus ir metodus objekte.&lt;br /&gt;
&lt;br /&gt;
Norint sukurti klasę, mes suprogramuojame &amp;lt;i&amp;gt;klasės apibrėžimą&amp;lt;/i&amp;gt;. Klasės apibrėžimas, tai grupė komandų, kurios nusako objekto atributus ir metodus.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&amp;lt;b&amp;gt;Pirma pamoka&amp;lt;/b&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apačioje yra procedūrinė programa, kuri atlieka paprastą matematinį veiksmą su vartotojo įvestu skaičiumi.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Programa parašyta Mitchell Aikens&lt;br /&gt;
# Nėra autoriaus teisių&lt;br /&gt;
# 2012&lt;br /&gt;
&lt;br /&gt;
# Procedūra 1&lt;br /&gt;
def main():&lt;br /&gt;
    try:&lt;br /&gt;
        # Pasiimk skaičių, kurį manipuliuosi.&lt;br /&gt;
        sk = float(input(&amp;quot;Įrašyk skaičių.\n&amp;quot;))&lt;br /&gt;
        # Išsaugok naują skaičių į kintamąjį. Prieš tai, su pasiimtu skaičiumi atlik matematinius&lt;br /&gt;
        # veiksmus naudojant procedūrą 2&lt;br /&gt;
        pridėksk = pridėkpenkis(sk)&lt;br /&gt;
        # Išsaugok naują skaičių į kintamąjį. Prieš tai, su ankščiau išsaugotu skaičiu atlik&lt;br /&gt;
        # matematinius veiksmus naudojant procedūrą 3&lt;br /&gt;
        dauginksk = daugink(pridėksk)&lt;br /&gt;
        # Paduok skaičių procedūrai 4&lt;br /&gt;
        rodyk(dauginksk)&lt;br /&gt;
    # Susidorok su išimtimis, kurios gali atsirasti dėl netinkamo vartotojo skaičiaus įvedimo&lt;br /&gt;
    except ValueError:&lt;br /&gt;
        print(&amp;quot;Privalai įvesti tinkamą skaičių.\n&amp;quot;)&lt;br /&gt;
        # Atstatyk kintamojo num reikšmę, kad ištrintum netinkamą vartotojo įvestį.&lt;br /&gt;
        sk = 0&lt;br /&gt;
        # Dar kartą iškviesk main.&lt;br /&gt;
        main()&lt;br /&gt;
&lt;br /&gt;
# Procedūra 2&lt;br /&gt;
def pridėkpenkis(sk):&lt;br /&gt;
    return sk + 5&lt;br /&gt;
&lt;br /&gt;
# Procedūra 3&lt;br /&gt;
def daugink(pridėksk):&lt;br /&gt;
    return pridėksk * 2.452&lt;br /&gt;
&lt;br /&gt;
# Procedūra 4&lt;br /&gt;
def rodyk(dauginksk):&lt;br /&gt;
    # Parodyk galutinį rezultatą.&lt;br /&gt;
    print(&amp;quot;Galutinis rezultatas yra&amp;quot;, dauginksk)&lt;br /&gt;
&lt;br /&gt;
# Kviesk procedūrą 1&lt;br /&gt;
main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jei įrašysi skaitemnį &amp;quot;5&amp;quot;, gausi išvestį parodytą žemiau.&lt;br /&gt;
&lt;br /&gt;
 Įrašyk skaičių.&lt;br /&gt;
 5&lt;br /&gt;
 Galutinis rezultatas yra 24.52&lt;br /&gt;
&lt;br /&gt;
Jei įrašysi reikšmę &amp;quot;g&amp;quot;, tada pasitaisysi ir įrašysi skaitmenį &amp;quot;8&amp;quot;, tada gausi išvestį parodytą žemiau.&lt;br /&gt;
&lt;br /&gt;
 Įrašyk skaičių.&lt;br /&gt;
 g&lt;br /&gt;
 Privalai įvesti tinkamą skaičių.&lt;br /&gt;
 &lt;br /&gt;
 Įrašyk skaičių.&lt;br /&gt;
 8&lt;br /&gt;
 Galutinis rezultatas yra 31.875999999999998&lt;br /&gt;
&lt;br /&gt;
Žemiau matai klasę ir programą, kuri naudoja nurodytą klasę. Ši objektinio programavimo būdu parašyta programa daro tą patį, ką prieš tai darė procedūriniu programavimo būdu parašyta programa. Apžiūrėk keletą svarbių objektinio programavimo būdo konceptų prieš neriant į ankščiau minėtą klasę ir programą.&lt;br /&gt;
Norint sukurti klasę, naudok &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt; raktažodį. Po raktažodžio rašyk pavadinimą, kurį norėtum, jog turėtų klasė. Dažnai naudojama praktika kuriant klasių pavadinimus yra &amp;lt;i&amp;gt;NaujųŽodžiųRašymasIšDidžiosiosRaidės&amp;lt;/i&amp;gt;.&lt;br /&gt;
Jei norėčiau sukurti klasę pavadinimu purvinoskojinės, kodas atrodytų taip:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
class PurvinosKojinės&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Iš pradžių pažiūrėk į klasę. Programa, kuri naudos šią klasę, bus parodyta vėliau.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Failo pavadinimas: ooppavyzdys.py&lt;br /&gt;
# Programa parašyta Mitchell Aikens&lt;br /&gt;
# Nėra autoriaus teisių&lt;br /&gt;
# 2012&lt;br /&gt;
# OOP Demonstracija - Klasė&lt;br /&gt;
&lt;br /&gt;
class SkKeitimas:&lt;br /&gt;
&lt;br /&gt;
    def __init__(self):&lt;br /&gt;
        self.__skaičius = 0&lt;br /&gt;
&lt;br /&gt;
    def pridėkpenkis(self, sk):&lt;br /&gt;
        self.__skaičius = sk&lt;br /&gt;
        return self.__skaičius + 5&lt;br /&gt;
&lt;br /&gt;
    def padaugink(self, pridėtas):&lt;br /&gt;
        self.__pridėtas = pridėtas&lt;br /&gt;
        return self.__pridėtas * 2.452&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Programa, kuri naudoja viršuje esančią klasę yra parašyta žemiau.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Failo pavadinimas: ooppavyzdys.py&lt;br /&gt;
# Mitchell Aikens&lt;br /&gt;
# Nėra autoriaus teisių&lt;br /&gt;
# 2012&lt;br /&gt;
# OOP Demonstracija - Programa&lt;br /&gt;
&lt;br /&gt;
import ooppavyzdys&lt;br /&gt;
&lt;br /&gt;
matkė = ooppavyzdys.SkKeitimas()&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
&lt;br /&gt;
    sk = float(input(&amp;quot;Įrašyk skaičių.\n&amp;quot;))&lt;br /&gt;
&lt;br /&gt;
    pridėtas = matkė.pridėkpenkis(sk)&lt;br /&gt;
&lt;br /&gt;
    daugintas = matkė.padaugink(pridėtas)&lt;br /&gt;
&lt;br /&gt;
    print(&amp;quot;Galutinis rezultatas yra&amp;quot;, daugintas)&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tikriausiai dabar esi pasimetęs. Tai visiškai suprantama. Iš pradžių, pasistenk suprasti klasę.&lt;br /&gt;
Klasė yra pavadinta &amp;quot;SkKeitimas&amp;quot;&lt;br /&gt;
Ši klasė turi tris metodus&lt;br /&gt;
* __init__&lt;br /&gt;
* pridėkpenkis&lt;br /&gt;
* padaugink&lt;br /&gt;
&lt;br /&gt;
Šie trys metodai savyje turi labai panašų kodą.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def __init__(self):&lt;br /&gt;
    self.__skaičius = 0&lt;br /&gt;
&lt;br /&gt;
def pridėkpenkis(self, sk):&lt;br /&gt;
    self.__skaičius = sk&lt;br /&gt;
    return self.__skaičius + 5&lt;br /&gt;
&lt;br /&gt;
def padaugink(self, pridėtas):&lt;br /&gt;
    self.__pridėtas = pridėtas&lt;br /&gt;
    return self.__pridėtas * 2.452&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Atkreipk dėmesį į tai, jog kiekvienas metodas turi parametrą pavadinimu „self“. Kiekvienas klasės metodas turi būtinai turėti šį parametrą. Šis parametras nebūtinai turi būti su pavadinimu „self“, bet tai laikoma gerąja praktika, tad tikriausiai ir tu turėtum jį taip vadinti. Šis parametras yra reikalingas kiekviename metode nes, kai jis yra iškviečiamas, jis turi žinoti, su kuriuo objekto atributu turėtų atlikti operacijas. Net kai turi tik vieną objektą, turi pasirūpinti, kad programa žinotų, jog nori naudoti atributus aprašytus būtent toje klasėje. Todėl turi būti saugus ir naudoti „self“ parametrą.&lt;br /&gt;
&lt;br /&gt;
Peržiūrėk pirmą metodą.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def __init__(self):&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dauguma Python'o klasių turi &amp;lt;code&amp;gt;__init__&amp;lt;/code&amp;gt; metodą, kuris yra paleidžiamas automatiškai kiekvieną kartą, kai atmintyje yra sukuriamas tos klasės objektas (kai vykdoma programa kreipiasi į klasę, yra sukuriama tos klasės &amp;lt;i&amp;gt;objektas&amp;lt;/i&amp;gt;). Šis metodas yra paprastai vadinamas &amp;lt;i&amp;gt;inicijavimo metodu&amp;lt;/i&amp;gt;. Kai šis metodas yra paleidžiamas, „self“ parametras yra automatiškai priskiriamas sukurtam objektui. __init__ metodas inicijuoja klasės atributus, dėl šios priežasties jis yra pavadintas inicijavimo metodu. Vykdant __init__ metodą, &amp;lt;code&amp;gt;skaičius&amp;lt;/code&amp;gt; atributui priskiriame 0.&lt;br /&gt;
Į objekto atributą skaičius kreipiamės panaudojant tašką.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def __init__(self):&lt;br /&gt;
    self.__skaičius = 0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Kodas &amp;lt;code&amp;gt;self.__skaičius = 0&amp;lt;/code&amp;gt; reiškia, jog objekte esančio „skaičius“ atributo reikšmė tampa lygi 0.&lt;br /&gt;
&lt;br /&gt;
Pažiūrėk į kitą metodą.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def pridėkpenkis(self, sk):&lt;br /&gt;
    self.__skaičius = sk&lt;br /&gt;
    return self.__skaičius + 5&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Šis metodas yra pavadintas „pridėkpenkis“. Jis priima parametrą pavadinimu „sk“. Metode esanti logika tada priskiria „sk“ reikšmę objekte esančiui atributui su pavadinimu „skaičius“. Tada metodas prideda 5 prie „skaičius“ ir jį grąžina į tą vietą, kur metodas buvo iškviestas.&lt;br /&gt;
&lt;br /&gt;
Pažiūrėk į trečiajį metodą.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def padaugink(self, pridėtas):&lt;br /&gt;
    self.__pridėtas = pridėtas&lt;br /&gt;
    return self.__pridėtas * 2.453&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Šis metodas yra pavadintas „padaugink“. Jis priima parametrą pavadinimu „pridėtas“. Metodas priskiria priimtą reikšmę objekte esančiam atributui su pavadinimu „pridėtas“ ir grąžina „pridėtas“ atributo ir 2.452 sandaugą jį kviečiančiam.&lt;br /&gt;
&lt;br /&gt;
Ar atkreipei dėmesį į tai, jog kiekvienas metodo pavadinimas prasideda su dviem pabraukimais? Pabandyk tai suprasti.&lt;br /&gt;
Prieš tai buvo minėta, jog objektas, su metodų pagalba, dirba su atributais apibrėžtais jame pačiame. Būtų idealu, jei tuos atributus galėtum pakeisti TIK SU METODAIS ESANČIAIS PAČIAME OBJEKTE. Įmanoma turėti iššorinį kodą, kuris galėtų manipuliuoti tais pačiais atributais. Norint „paslėpti“ atributus, taip, kad juos matytų metodai aprašyti pačiame objekte, turi naudoti du pabraukimus prieš objekto pavadinimą, taip kaip ir buvo rodyta. Ištrynus abu pabraukimus nuo atributo pavadinimo tu juo galėsi manipuliuoti kodu, kuris yra parašytas objekto išorėje.&lt;br /&gt;
&lt;br /&gt;
Pažiūrėki į programą, kuri naudoja aptartą klasę.&lt;br /&gt;
&lt;br /&gt;
Atkreipk dėmesį į pirmą eilutę, kuri nėra komentaras.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import ooppavyzdys&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ši kodo eilutė importuoją klasę, kurią išsaugojai atskirame faile (modulyje). Klasės nebūtinai turi būti talpinamos atskiruose failuose, bet tai yra priimta kaip gerosios praktikos, tad yra verta jau nuo pat pradžių priprasti prie modulių importavimo.&lt;br /&gt;
&lt;br /&gt;
Kita eilutė:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
matkė = ooppavyzdys.SkKeitimas()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ši eilutė sukuria SkKeitimas pavadinimu „ooppavyzdys“ modulyje patalpintos klasės objektą, kuris yra priskiriamas „matkė“ kintamajam.&lt;br /&gt;
Sintaksė atrodo taip: &amp;lt;code&amp;gt;&amp;lt;i&amp;gt;moduliopavadinimas.Klasėspavadinimas()&amp;lt;/i&amp;gt;&amp;lt;/code&amp;gt; Toliau apibrėžiama ''main'' funkciją ir paimamas skaičius iš vartotojo.&lt;br /&gt;
&lt;br /&gt;
Kita eilutė &amp;lt;code&amp;gt;pridėtas = matkė.pridėkpenkis(sk)&amp;lt;/code&amp;gt; nusiunčia „sk“ kintamojo reikšmę metodui pavadinimu „pridėkpenkis“. Metodas yra aprašytas klasėje, kurios objektą išsaugojai kintamajame pavadinimu „matkė“. „pridėkpenkis“ metodas išsaugo gautą reikšmę į kintamajį pavadinimu „pridėtas“.&lt;br /&gt;
&lt;br /&gt;
Kita eilutė &amp;lt;code&amp;gt;daugintas = matkė.daugink(pridėtas)&amp;lt;/code&amp;gt; nusiunčia „pridėtas“ kintamojo reikšmę metodui pavadinimu „daugink“. Metodas yra aprašytas klasėje, kurios objektą išsaugojome kintamajame pavadinimu „matkė“. „daugink“ metodas išsaugo gautą reikšmę į kintamajį pavadinimu „daugintas“.&lt;br /&gt;
&lt;br /&gt;
Kita eilutė atspausdina „Galutinis rezultatas yra &amp;lt;daugintas reikšmė&amp;gt;“. Paskutinė eilutė iškviečia main funkciją, kuri įvykdo žingsnius nurodytus viršuje.&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Rekursija|next=Įvadas į importuotas bibliotekas ir kitas funkcijas}}&lt;br /&gt;
{{BookCat}}&lt;/div&gt;</summary>
		<author><name>Juratevalat</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/%C4%AEvadas_%C4%AF_objektin%C4%AF_programavim%C4%85_Python_3&amp;diff=3866</id>
		<title>Python Vadovėlis/Įvadas į objektinį programavimą Python 3</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/%C4%AEvadas_%C4%AF_objektin%C4%AF_programavim%C4%85_Python_3&amp;diff=3866"/>
		<updated>2022-02-12T15:05:57Z</updated>

		<summary type="html">&lt;p&gt;Juratevalat: /* Įžanga */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Objektinis programavimas==&lt;br /&gt;
&lt;br /&gt;
Iki šiol rašei kodą pagal procedūrinio programavimo taisykles. Tačiau, yra daug programų, kurios parašytos pagal objektinio programavimo taisykles. Žinoti abu programavimo tipus ir jų skirtumus yra labai svarbu. Informatikoje, daug svarbių kalbų, tokių kaip C++ ar Java, dažnai naudoja objektinio programavimo taisykles.&lt;br /&gt;
&lt;br /&gt;
Pradedantiesiems ir mokiniams, neturintiems programavimo žinių, objektinis programavimas dažnai gali atrodyti painus ir tai yra visiškai normalu. Nesijausk blogai, jei nesiseka suprasti iš pat pradžių. Jei šis skyrius nepadės tau suprasti, yra ir daugiau informatyvių šaltinių, kurie padės atsakyti į visus klausimus.&lt;br /&gt;
&lt;br /&gt;
Šis skyrius yra padalintas į keletą pamokų. Kiekviena pamoka - skirta paaiškinti skirtingas objektinio programavimo dalis. &amp;lt;b&amp;gt;LABAI SVARBU&amp;lt;/b&amp;gt; suprasti jas visas. Nepamiršk prieš kiekvieną pamoką perskaityti įžangą, kuri paaiškins pagrindines idėjas, sąvokas ir kitas objektinio programavimo sritis.&lt;br /&gt;
&lt;br /&gt;
==Įžanga==&lt;br /&gt;
&lt;br /&gt;
Tu jau žinai, kad funkcija turi konkrečią paskyrtį ir ji gali būti įvairi: rinkti įvestis, atlikti matematinius skaičiavimus, atvaizduoti ar kitaip manipuliuoti duomenimis. Paprastai, funkcijos manipuliuoja duomenimis, kurie yra aprašyti atskirai. Šie duomenys yra dažnai perduodami iš vienos funkcijos į kitą. Ir, kai programa pasidaro per didelė, tai padaro duomenų perdavimą komplikuotą.&lt;br /&gt;
Pavyzdžiui, parašei programą, kuri kintamuosiuose išsaugo produkto duomenis. Kai klientas paprašo informacijos apie produktą, reikia išrinkti visus kintamuosius, saugančius tuos duomenis ir pateikti atitinkamoms funkcijoms. Laikui bėgant ir saugant vis daugiau duomenų apie turimus produktus, tu sugalvoji išsaugoti turimą informaciją sąrašuose ar žodynuose. Norint, jog tavo programa veiktų, tu dabar turi redaguoti kiekvieną funkciją, kuri naudojo tuos kintamuosius, taip, kad dabar ji galėtų priimti ir manipuliuoti sąrašus ar žodynus. Įsivaizduok kiek laiko tau reikėtų norint peržiūrėti ir pakeisti šimtus failų. Tu išprotėtum! Nekalbant apie tai, jog klaidas daro net ir labiausiai patyrę programuotojai, tad taip pat reikėtų taisyti begalę klaidų. Toks programavimas yra pernelyg neoptimalus.&lt;br /&gt;
Procedūrinis programavimas yra paremtas funkcijomis (procedūromis). Objektinis programavimas yra paremtas objektais. Ar prisimeni, kaip procedūrinė programa atskyrė duomenis nuo kodo? Ar prisimeni programą, kuri turėjo šimtus failų ir norint kažką pakeisti reikėdavo ilgai joje narpstytis? &lt;br /&gt;
Galvok apie &amp;lt;i&amp;gt;objektą&amp;lt;/i&amp;gt; kaip apie minėtų failų ir duomenų „kombinaciją“ į vieną esybę. Technine prasme, objektas yra esybė, kuri savyje turi duomenis ir veiksmus su tais duomenimis (kodą, funkcijas, t.t.).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Duomenis objekto viduje vadiname &amp;lt;i&amp;gt;atributais&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Funkcijas objekto viduje vadiname &amp;lt;i&amp;gt;metodais&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Galvok apie &amp;lt;b&amp;gt;duomenų atributus&amp;lt;/b&amp;gt; kaip apie kintamuosius. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Galvok apie &amp;lt;b&amp;gt;metodus&amp;lt;/b&amp;gt; kaip apie funkcijas. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pažiūrėk į paprastą, kasdienį pavyzdį. Lemputė ir jungiklis tavo kambaryje.&lt;br /&gt;
Atributai bus štai tokie.&lt;br /&gt;
&lt;br /&gt;
* šviesa_įjungta (True False)&lt;br /&gt;
* jungiklio_pozicija (Viršuje arba Apačioje)&lt;br /&gt;
* elektros_tekėjimas (True arba False)&lt;br /&gt;
&lt;br /&gt;
Metodai būtų štai tokie.&lt;br /&gt;
&lt;br /&gt;
* pakeisti_jungiklio_poziciją&lt;br /&gt;
* pakeisti_elektros_tekėjimą&lt;br /&gt;
&lt;br /&gt;
Atributai gali būti matomi ir nematomi. Pavyzdžiui, tu negali matyti elektros tekančios į lemputę. Tu tik žinai, kad elektra išties teka, nes ji tuo metu skleidžia šviesą. Nepaisant to, tu gali matyti jungiklio poziciją (jungiklio_pozicija) ir taip pat tu matai ar šviesa yra įjungta ar ne (šviesa_įjungta). Kai kurie metodai yra &amp;lt;i&amp;gt;privatūs&amp;lt;/i&amp;gt;. Tai reiškia, jog jų reikšmės neišeina tiesiogiai pakeisti. Pavyzdžiui, tu negalėtum pakeisti elektros tėkmės tiesiogiai, nebent būtų nukerpami laidai (to nedaryk ir dėl šio pavyzdžio; manyk, jog laidai neegzistuoja). Tu taip pat negali tiesiogiai įtakoti lemputės šviesos (ne, tu negali atsukti lemputės ar jos sudaužyti!). Bet tu visada gali šiuos atributus įtakoti netiesiogiai naudojant objekto &amp;lt;i&amp;gt;metodus&amp;lt;/i&amp;gt;. Jeigu nesumokėsi mokesčių, metodas pavadinimu &amp;lt;code&amp;gt;pakeisti_elektros_tekėjimą&amp;lt;/code&amp;gt; pakeis &amp;lt;code&amp;gt;elektros_tekėjimas&amp;lt;/code&amp;gt; reikšmę į False. Jei tu įjungsi jungiklį, &amp;lt;code&amp;gt;pakeisti_jungiklio_poziciją&amp;lt;/code&amp;gt; metodas pakeis &amp;lt;code&amp;gt;šviesa_įjungta&amp;lt;/code&amp;gt; atributo reikšmę.&lt;br /&gt;
&lt;br /&gt;
Dabar jau tikriausiai galvoji, „Ką tai turi bendro su Python'u?“ ar, „Aš nesuprantu, bet kaip man sukurti tą objektą?“. Na, beveik priėjai prie atsakymų! Tik turiu paaiškinti dar vieną dalyką prieš neriant į kodą.&lt;br /&gt;
&lt;br /&gt;
Python'e objekto atributai ir metodai yra nurodomi &amp;lt;b&amp;gt;klasės&amp;lt;/b&amp;gt;. Galvok apie klasę kaip apie objekto techninį piešinį. Pavyzdžiui, tavo namai - objektas kuriame gyveni - taip pat jį gali vadinti butu, vasarnamiu, prakartėle ar bet kuo kitu, buvo pastatytas naudojant techinius piešinius. Šie techniniai piešiniai būtų vadinami klasėmis, kurios buvo panaudotos projektuojant tavo namus, butą, vasarnamį, na, supranti apie ką kalbu. &lt;br /&gt;
&lt;br /&gt;
Dar kartą, klasė pasako, kaip sukurti objektą. Techniniais terminais tariant, ir tai yra labai svarbu, klasė nusako naudojamus duomenų atributus ir metodus objekte.&lt;br /&gt;
&lt;br /&gt;
Norint sukurti klasę, mes suprogramuojame &amp;lt;i&amp;gt;klasės apibrėžimą&amp;lt;/i&amp;gt;. Klasės apibrėžimas, tai grupė komandų, kurios nusako objekto atributus ir metodus.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&amp;lt;b&amp;gt;Pirma pamoka&amp;lt;/b&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apačioje yra procedūrinė programa, kuri atlieka paprastą matematinį veiksmą su vartotojo įvestu skaičiumi.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Programa parašyta Mitchell Aikens&lt;br /&gt;
# Nėra autoriaus teisių&lt;br /&gt;
# 2012&lt;br /&gt;
&lt;br /&gt;
# Procedūra 1&lt;br /&gt;
def main():&lt;br /&gt;
    try:&lt;br /&gt;
        # Pasiimk skaičių, kurį manipuliuosi.&lt;br /&gt;
        sk = float(input(&amp;quot;Įrašyk skaičių.\n&amp;quot;))&lt;br /&gt;
        # Išsaugok naują skaičių į kintamąjį. Prieš tai, su pasiimtu skaičiumi atlik matematinius&lt;br /&gt;
        # veiksmus naudojant procedūrą 2&lt;br /&gt;
        pridėksk = pridėkpenkis(sk)&lt;br /&gt;
        # Išsaugok naują skaičių į kintamąjį. Prieš tai, su ankščiau išsaugotu skaičiu atlik&lt;br /&gt;
        # matematinius veiksmus naudojant procedūrą 3&lt;br /&gt;
        dauginksk = daugink(pridėksk)&lt;br /&gt;
        # Paduok skaičių procedūrai 4&lt;br /&gt;
        rodyk(dauginksk)&lt;br /&gt;
    # Susidorok su išimtimis, kurios gali atsirasti dėl netinkamo vartotojo skaičiaus įvedimo&lt;br /&gt;
    except ValueError:&lt;br /&gt;
        print(&amp;quot;Privalai įvesti tinkamą skaičių.\n&amp;quot;)&lt;br /&gt;
        # Atstatyk kintamojo num reikšmę, kad ištrintum netinkamą vartotojo įvestį.&lt;br /&gt;
        sk = 0&lt;br /&gt;
        # Dar kartą iškviesk main.&lt;br /&gt;
        main()&lt;br /&gt;
&lt;br /&gt;
# Procedūra 2&lt;br /&gt;
def pridėkpenkis(sk):&lt;br /&gt;
    return sk + 5&lt;br /&gt;
&lt;br /&gt;
# Procedūra 3&lt;br /&gt;
def daugink(pridėksk):&lt;br /&gt;
    return pridėksk * 2.452&lt;br /&gt;
&lt;br /&gt;
# Procedūra 4&lt;br /&gt;
def rodyk(dauginksk):&lt;br /&gt;
    # Parodyk galutinį rezultatą.&lt;br /&gt;
    print(&amp;quot;Galutinis rezultatas yra&amp;quot;, dauginksk)&lt;br /&gt;
&lt;br /&gt;
# Kviesk procedūrą 1&lt;br /&gt;
main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jei įrašysi skaitemnį &amp;quot;5&amp;quot;, gausi išvestį parodytą žemiau.&lt;br /&gt;
&lt;br /&gt;
 Įrašyk skaičių.&lt;br /&gt;
 5&lt;br /&gt;
 Galutinis rezultatas yra 24.52&lt;br /&gt;
&lt;br /&gt;
Jei įrašysi reikšmę &amp;quot;g&amp;quot;, tada pasitaisysi ir įrašysi skaitmenį &amp;quot;8&amp;quot;, tada gausi išvestį parodytą žemiau.&lt;br /&gt;
&lt;br /&gt;
 Įrašyk skaičių.&lt;br /&gt;
 g&lt;br /&gt;
 Privalai įvesti tinkamą skaičių.&lt;br /&gt;
 &lt;br /&gt;
 Įrašyk skaičių.&lt;br /&gt;
 8&lt;br /&gt;
 Galutinis rezultatas yra 31.875999999999998&lt;br /&gt;
&lt;br /&gt;
Žemiau matai klasę ir programą, kuri naudoja nurodytą klasę. Ši objektinio programavimo būdu parašyta programa daro tą patį, ką prieš tai darė procedūriniu programavimo būdu parašyta programa. Apžiūrėk keletą svarbių objektinio programavimo būdo konceptų prieš neriant į ankščiau minėtą klasę ir programą.&lt;br /&gt;
Norint sukurti klasę, naudok &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt; raktažodį. Po raktažodžio rašyk pavadinimą, kurį norėtum, jog turėtų klasė. Dažnai naudojama praktika kuriant klasių pavadinimus yra &amp;lt;i&amp;gt;NaujųŽodžiųRašymasIšDidžiosiosRaidės&amp;lt;/i&amp;gt;.&lt;br /&gt;
Jei norėčiau sukurti klasę pavadinimu purvinoskojinės, kodas atrodytų taip:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
class PurvinosKojinės&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Iš pradžių pažiūrėk į klasę. Programa, kuri naudos šią klasę, bus parodyta vėliau.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Failo pavadinimas: ooppavyzdys.py&lt;br /&gt;
# Programa parašyta Mitchell Aikens&lt;br /&gt;
# Nėra autoriaus teisių&lt;br /&gt;
# 2012&lt;br /&gt;
# OOP Demonstracija - Klasė&lt;br /&gt;
&lt;br /&gt;
class SkKeitimas:&lt;br /&gt;
&lt;br /&gt;
    def __init__(self):&lt;br /&gt;
        self.__skaičius = 0&lt;br /&gt;
&lt;br /&gt;
    def pridėkpenkis(self, sk):&lt;br /&gt;
        self.__skaičius = sk&lt;br /&gt;
        return self.__skaičius + 5&lt;br /&gt;
&lt;br /&gt;
    def padaugink(self, pridėtas):&lt;br /&gt;
        self.__pridėtas = pridėtas&lt;br /&gt;
        return self.__pridėtas * 2.452&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Programa, kuri naudoja viršuje esančią klasę yra parašyta žemiau.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Failo pavadinimas: ooppavyzdys.py&lt;br /&gt;
# Mitchell Aikens&lt;br /&gt;
# Nėra autoriaus teisių&lt;br /&gt;
# 2012&lt;br /&gt;
# OOP Demonstracija - Programa&lt;br /&gt;
&lt;br /&gt;
import ooppavyzdys&lt;br /&gt;
&lt;br /&gt;
matkė = ooppavyzdys.SkKeitimas()&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
&lt;br /&gt;
    sk = float(input(&amp;quot;Įrašyk skaičių.\n&amp;quot;))&lt;br /&gt;
&lt;br /&gt;
    pridėtas = matkė.pridėkpenkis(sk)&lt;br /&gt;
&lt;br /&gt;
    daugintas = matkė.padaugink(pridėtas)&lt;br /&gt;
&lt;br /&gt;
    print(&amp;quot;Galutinis rezultatas yra&amp;quot;, daugintas)&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tikriausiai dabar esi pasimetęs. Tai visiškai suprantama. Iš pradžių, pasistenk suprasti klasę.&lt;br /&gt;
Klasė yra pavadinta &amp;quot;SkKeitimas&amp;quot;&lt;br /&gt;
Ši klasė turi tris metodus&lt;br /&gt;
* __init__&lt;br /&gt;
* pridėkpenkis&lt;br /&gt;
* padaugink&lt;br /&gt;
&lt;br /&gt;
Šie trys metodai savyje turi labai panašų kodą.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def __init__(self):&lt;br /&gt;
def pridėkpenkis(self,sk):&lt;br /&gt;
def padaugink(self,pridėtas):&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Atkreipk dėmesį į tai, jog kiekvienas metodas turi parametrą pavadinimu „self“. Kiekvienas klasės metodas turi būtinai turėti šį parametrą. Šis parametras nebūtinai turi būti su pavadinimu „self“, bet tai yra priimta kaip gerosios praktikos, tad tikriausiai ir tu turėtum jį taip vadinti. Šis parametras yra reikalingas kiekviename metode nes, kai jis yra iškviečiamas, jis turi žinoti, su kuriuo objekto atributu turėtų atlikti operacijas. Net kai turi tik vieną objektą, turi pasirūpinti, kad programa žinotų, jog nori naudoti atributus aprašytus būtent toje klasėje. Todėl turi būti saugus ir naudoti „self“ parametrą.&lt;br /&gt;
&lt;br /&gt;
Peržiūrėk pirmą metodą.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def __init__(self):&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dauguma Python'o klasių turi &amp;lt;code&amp;gt;__init__&amp;lt;/code&amp;gt;, kuris yra paleidžiamas automatiškai kiekvieną kartą, kai atmintyje yra sukuriama tos klasės objektas (kai sukuriame nuorodą į klasę, yra sukuriama tos klasės &amp;lt;i&amp;gt;objektas&amp;lt;/i&amp;gt;). Šis metodas yra paprastai vadinamas &amp;lt;i&amp;gt;inicijavimo metodu&amp;lt;/i&amp;gt;. Kai šis metodas yra paleidžiamas, „self“ parametras yra automatiškai priskiriamas tariamam objektui. __init__ metodas inicijuoja klasės atributus, dėl šios priežasties jis yra pavadintas inicijavimo metodu. Po __init__ metodu, iš pradžių &amp;lt;code&amp;gt;skaičius&amp;lt;/code&amp;gt; atributui mes priskiriame 0.&lt;br /&gt;
Yra sukuriama nuorodą į turimo objekto atributą panaudojant taškinį žymėjimą.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def __init__(self):&lt;br /&gt;
    self.__skaičius = 0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Kodas &amp;lt;code&amp;gt;self.__skaičius = 0&amp;lt;/code&amp;gt; reiškia, jog objekte esančio „skaičius“ atributo reikšmė yra 0.&lt;br /&gt;
&lt;br /&gt;
Pažiūrėk į kitą metodą.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def pridėkpenkis(self, sk):&lt;br /&gt;
    self.__skaičius = sk&lt;br /&gt;
    return self.__skaičius + 5&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Šis metodas yra pavadintas „pridėkpenkis“. Jis priima parametrą pavadinimu „sk“. Metode esanti logika tada priskiria „sk“ reikšmę objekte esančiui atributui su pavadinimu „skaičius“. Tada metodas prideda 5 prie „skaičius“ ir jį grąžina į tą vietą, kur metodas buvo iškviestas.&lt;br /&gt;
&lt;br /&gt;
Pažiūrėk į trečiajį metodą.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def padaugink(self, pridėtas):&lt;br /&gt;
    self.__pridėtas = pridėtas&lt;br /&gt;
    return self.__pridėtas * 2.453&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Šis metodas yra pavadintas „padaugink“. Jis priima parametrą pavadinimu „pridėtas“. Metodas priskiria priimtą reikšmę objekte esančiam atributui su pavadinimu „pridėtas“ ir grąžina „pridėtas“ atributo ir 2.452 sandaugą jį kviečiančiam.&lt;br /&gt;
&lt;br /&gt;
Ar atkreipei dėmesį į tai, jog kiekvienas metodo pavadinimas prasideda su dviem pabraukimais? Pabandyk tai suprasti.&lt;br /&gt;
Prieš tai buvo minėta, jog objektas, su metodų pagalba, dirba su atributais apibrėžtais jame pačiame. Būtų idealu, jei tuos atributus galėtum pakeisti TIK SU METODAIS ESANČIAIS PAČIAME OBJEKTE. Įmanoma turėti iššorinį kodą, kuris galėtų manipuliuoti tais pačiais atributais. Norint „paslėpti“ atributus, taip, kad juos matytų metodai aprašyti pačiame objekte, turi naudoti du pabraukimus prieš objekto pavadinimą, taip kaip ir buvo rodyta. Ištrynus abu pabraukimus nuo atributo pavadinimo tu juo galėsi manipuliuoti kodu, kuris yra parašytas objekto išorėje.&lt;br /&gt;
&lt;br /&gt;
Pažiūrėki į programą, kuri naudoja aptartą klasę.&lt;br /&gt;
&lt;br /&gt;
Atkreipk dėmesį į pirmą eilutę, kuri nėra komentaras.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import ooppavyzdys&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ši kodo eilutė importuoją klasę, kurią išsaugojai atskirame faile (modulyje). Klasės nebūtinai turi būti talpinamos atskiruose failuose, bet tai yra priimta kaip gerosios praktikos, tad yra verta jau nuo pat pradžių priprasti prie modulių importavimo.&lt;br /&gt;
&lt;br /&gt;
Kita eilutė:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
matkė = ooppavyzdys.SkKeitimas()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ši eilutė sukuria SkKeitimas pavadinimu „ooppavyzdys“ modulyje patalpintos klasės objektą, kuris yra priskiriamas „matkė“ kintamajam.&lt;br /&gt;
Sintaksė atrodo taip: &amp;lt;code&amp;gt;&amp;lt;i&amp;gt;moduliopavadinimas.Klasėspavadinimas()&amp;lt;/i&amp;gt;&amp;lt;/code&amp;gt; Toliau apibrėžiama ''main'' funkciją ir paimamas skaičius iš vartotojo.&lt;br /&gt;
&lt;br /&gt;
Kita eilutė &amp;lt;code&amp;gt;pridėtas = matkė.pridėkpenkis(sk)&amp;lt;/code&amp;gt; nusiunčia „sk“ kintamojo reikšmę metodui pavadinimu „pridėkpenkis“. Metodas yra aprašytas klasėje, kurios objektą išsaugojai kintamajame pavadinimu „matkė“. „pridėkpenkis“ metodas išsaugo gautą reikšmę į kintamajį pavadinimu „pridėtas“.&lt;br /&gt;
&lt;br /&gt;
Kita eilutė &amp;lt;code&amp;gt;daugintas = matkė.daugink(pridėtas)&amp;lt;/code&amp;gt; nusiunčia „pridėtas“ kintamojo reikšmę metodui pavadinimu „daugink“. Metodas yra aprašytas klasėje, kurios objektą išsaugojome kintamajame pavadinimu „matkė“. „daugink“ metodas išsaugo gautą reikšmę į kintamajį pavadinimu „daugintas“.&lt;br /&gt;
&lt;br /&gt;
Kita eilutė atspausdina „Galutinis rezultatas yra &amp;lt;daugintas reikšmė&amp;gt;“. Paskutinė eilutė iškviečia main funkciją, kuri įvykdo žingsnius nurodytus viršuje.&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Rekursija|next=Įvadas į importuotas bibliotekas ir kitas funkcijas}}&lt;br /&gt;
{{BookCat}}&lt;/div&gt;</summary>
		<author><name>Juratevalat</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/%C4%AEvadas_%C4%AF_objektin%C4%AF_programavim%C4%85_Python_3&amp;diff=3865</id>
		<title>Python Vadovėlis/Įvadas į objektinį programavimą Python 3</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/%C4%AEvadas_%C4%AF_objektin%C4%AF_programavim%C4%85_Python_3&amp;diff=3865"/>
		<updated>2022-02-12T14:41:35Z</updated>

		<summary type="html">&lt;p&gt;Juratevalat: /* Įžanga */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Objektinis programavimas==&lt;br /&gt;
&lt;br /&gt;
Iki šiol rašei kodą pagal procedūrinio programavimo taisykles. Tačiau, yra daug programų, kurios parašytos pagal objektinio programavimo taisykles. Žinoti abu programavimo tipus ir jų skirtumus yra labai svarbu. Informatikoje, daug svarbių kalbų, tokių kaip C++ ar Java, dažnai naudoja objektinio programavimo taisykles.&lt;br /&gt;
&lt;br /&gt;
Pradedantiesiems ir mokiniams, neturintiems programavimo žinių, objektinis programavimas dažnai gali atrodyti painus ir tai yra visiškai normalu. Nesijausk blogai, jei nesiseka suprasti iš pat pradžių. Jei šis skyrius nepadės tau suprasti, yra ir daugiau informatyvių šaltinių, kurie padės atsakyti į visus klausimus.&lt;br /&gt;
&lt;br /&gt;
Šis skyrius yra padalintas į keletą pamokų. Kiekviena pamoka - skirta paaiškinti skirtingas objektinio programavimo dalis. &amp;lt;b&amp;gt;LABAI SVARBU&amp;lt;/b&amp;gt; suprasti jas visas. Nepamiršk prieš kiekvieną pamoką perskaityti įžangą, kuri paaiškins pagrindines idėjas, sąvokas ir kitas objektinio programavimo sritis.&lt;br /&gt;
&lt;br /&gt;
==Įžanga==&lt;br /&gt;
&lt;br /&gt;
Tu jau žinai, kad funkcija turi konkrečią paskyrtį ir ji gali būti įvairi: rinkti įvestis, atlikti matematinius skaičiavimus, atvaizduoti ar kitaip manipuliuoti duomenimis. Paprastai, funkcijos manipuliuoja duomenimis, kurie yra aprašyti atskirai. Šie duomenys yra dažnai perduodami iš vienos funkcijos į kitą. Ir, kai programa pasidaro per didelė, tai padaro duomenų perdavimą komplikuotą.&lt;br /&gt;
Pavyzdžiui, parašei programą, kuri kintamuosiuose išsaugo produkto duomenis. Kai klientas paprašo informacijos apie produktą, reikia išrinkti visus kintamuosius, saugančius tuos duomenis ir pateikti atitinkamoms funkcijoms. Laikui bėgant ir saugant vis daugiau duomenų apie turimus produktus, tu sugalvoji išsaugoti turimą informaciją sąrašuose ar žodynuose. Norint, jog tavo programa veiktų, tu dabar turi redaguoti kiekvieną funkciją, kuri naudojo tuos kintamuosius, taip, kad dabar ji galėtų priimti ir manipuliuoti sąrašus ar žodynus. Įsivaizduok kiek laiko tau reikėtų norint peržiūrėti ir pakeisti šimtus failų. Tu išprotėtum! Nekalbant apie tai, jog klaidas daro net ir labiausiai patyrę programuotojai, tad taip pat reikėtų taisyti begalę klaidų. Toks programavimas yra pernelyg neoptimalus.&lt;br /&gt;
Procedūrinis programavimas yra paremtas funkcijomis (procedūromis). Objektinis programavimas yra paremtas objektais. Ar prisimeni, kaip procedūrinė programa atskyrė duomenis nuo kodo? Ar prisimeni programą, kuri turėjo šimtus failų ir norint kažką pakeisti reikėdavo ilgai joje narpstytis? &lt;br /&gt;
Galvok apie &amp;lt;i&amp;gt;objektą&amp;lt;/i&amp;gt; kaip apie minėtų failų ir duomenų „kombinaciją“ į vieną esybę. Technine prasme, objektas yra esybė, kuri savyje turi duomenis ir veiksmus su tais duomenimis (kodą, funkcijas, t.t.).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Duomenis objekto viduje vadiname &amp;lt;i&amp;gt;atributais&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Funkcijas objekto viduje vadiname &amp;lt;i&amp;gt;metodais&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Galvok apie &amp;lt;b&amp;gt;duomenų atributus&amp;lt;/b&amp;gt; kaip apie kintamuosius. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Galvok apie &amp;lt;b&amp;gt;metodus&amp;lt;/b&amp;gt; kaip apie funkcijas. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pažiūrėk į paprastą, kasdienį pavyzdį. Lemputė ir jungiklis tavo kambaryje.&lt;br /&gt;
Atributai bus štai tokie.&lt;br /&gt;
&lt;br /&gt;
* šviesa_įjungta (True False)&lt;br /&gt;
* jungiklio_pozicija (Viršuje arba Apačioje)&lt;br /&gt;
* elektros_tekėjimas (True arba False)&lt;br /&gt;
&lt;br /&gt;
Metodai būtų štai tokie.&lt;br /&gt;
&lt;br /&gt;
* pakeisti_jungiklio_poziciją&lt;br /&gt;
* pakeisti_elektros_tekėjimą&lt;br /&gt;
&lt;br /&gt;
Atributai gali būti matomi ir nematomi. Pavyzdžiui, tu negali matyti elektros tekančios į lemputę. Tu tik žinai, kad elektra išties teka, nes ji tuo metu skleidžia šviesą. Nepaisant to, tu gali matyti jungiklio poziciją (jungiklio_pozicija) ir taip pat tu matai ar šviesa yra įjungta ar ne (šviesa_įjungta). Kai kurie metodai yra &amp;lt;i&amp;gt;privatūs&amp;lt;/i&amp;gt;. Tai reiškia, jog jų reikšmės neišeina tiesiogiai pakeisti. Pavyzdžiui, tu negalėtum pakeisti elektros tėkmės tiesiogiai, nebent būtų nukerpami laidai (to nedaryk ir dėl šio pavyzdžio; manyk, jog laidai neegzistuoja). Tu taip pat negali tiesiogiai įtakoti lemputės šviesos (ne, tu negali atsukti lemputės ar jos sudaužyti!). Bet tu visada gali šiuos atributus įtakoti netiesiogiai naudojant objekto &amp;lt;i&amp;gt;metodus&amp;lt;/i&amp;gt;. Jeigu nesumokėsi mokesčių, metodas pavadinimu &amp;lt;code&amp;gt;pakeisti_elektros_tekėjimą&amp;lt;/code&amp;gt; pakeis &amp;lt;code&amp;gt;elektros_tekėjimas&amp;lt;/code&amp;gt; reikšmę į FALSE. Jei tu įjungsi jungiklį, &amp;lt;code&amp;gt;pakeisti_jungiklio_poziciją&amp;lt;/code&amp;gt; metodas pakeis &amp;lt;code&amp;gt;šviesa_įjungta&amp;lt;/code&amp;gt; atributo reikšmę.&lt;br /&gt;
&lt;br /&gt;
Dabar jau tikriausiai galvoji, „Ką tai turi bendro su Python'u?“ ar, „Aš nesuprantu, bet kaip man sukurti tą objektą?“. Na, beveik priėjai prie atsakymų! Tik turiu paaiškinti dar vieną dalyką prieš neriant į kodą.&lt;br /&gt;
&lt;br /&gt;
Python'e objekto atributai ir metodai yra nurodomi &amp;lt;b&amp;gt;klasės&amp;lt;/b&amp;gt;. Galvok apie klasę kaip apie objekto techninį piešinį. Pavyzdžiui, tavo namai - objektas kuriame gyveni - taip pat jį gali vadinti butu, vasarnamiu, prakartėle ar bet kuo kitu, buvo pastatytas naudojant techinius piešinius. Šie techniniai piešiniai būtų vadinami klasėmis, kurios buvo panaudotos projektuojant tavo namus, butą, vasarnamį, na, supranti apie ką kalbu. &lt;br /&gt;
&lt;br /&gt;
Dar kartą, klasė pasako, kaip sukurti objektą. Techniniais terminais tariant, ir tai yra labai svarbu, klasė nusako naudojamus duomenų atributus ir metodus objekte.&lt;br /&gt;
&lt;br /&gt;
Norint sukurti klasę, mes suprogramuojame &amp;lt;i&amp;gt;klasės apibrėžimą&amp;lt;/i&amp;gt;. Klasės apibrėžimas, tai grupė komandų, kurios nusako objekto atributus ir metodus.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&amp;lt;b&amp;gt;Pirma pamoka&amp;lt;/b&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apačioje yra procedūrinė programa, kuri atlieka paprastą matematinį veiksmą su vartotojo įvestu skaičiumi.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Programa parašyta Mitchell Aikens&lt;br /&gt;
# Nėra autoriaus teisių&lt;br /&gt;
# 2012&lt;br /&gt;
&lt;br /&gt;
# Procedūra 1&lt;br /&gt;
def main():&lt;br /&gt;
    try:&lt;br /&gt;
        # Pasiimk skaičių, kurį manipuliuosi.&lt;br /&gt;
        sk = float(input(&amp;quot;Įrašyk skaičių.\n&amp;quot;))&lt;br /&gt;
        # Išsaugok naują skaičių į kintamąjį. Prieš tai, su pasiimtu skaičiumi atlik matematinius&lt;br /&gt;
        # veiksmus naudojant procedūrą 2&lt;br /&gt;
        pridėksk = pridėkpenkis(sk)&lt;br /&gt;
        # Išsaugok naują skaičių į kintamąjį. Prieš tai, su ankščiau išsaugotu skaičiu atlik&lt;br /&gt;
        # matematinius veiksmus naudojant procedūrą 3&lt;br /&gt;
        dauginksk = daugink(pridėksk)&lt;br /&gt;
        # Paduok skaičių procedūrai 4&lt;br /&gt;
        rodyk(dauginksk)&lt;br /&gt;
    # Susidorok su išimtimis, kurios gali atsirasti dėl netinkamo vartotojo skaičiaus įvedimo&lt;br /&gt;
    except ValueError:&lt;br /&gt;
        print(&amp;quot;Privalai įvesti tinkamą skaičių.\n&amp;quot;)&lt;br /&gt;
        # Atstatyk kintamojo num reikšmę, kad ištrintum netinkamą vartotojo įvestį.&lt;br /&gt;
        sk = 0&lt;br /&gt;
        # Dar kartą iškviesk main.&lt;br /&gt;
        main()&lt;br /&gt;
&lt;br /&gt;
# Procedūra 2&lt;br /&gt;
def pridėkpenkis(sk):&lt;br /&gt;
    return sk + 5&lt;br /&gt;
&lt;br /&gt;
# Procedūra 3&lt;br /&gt;
def daugink(pridėksk):&lt;br /&gt;
    return pridėksk * 2.452&lt;br /&gt;
&lt;br /&gt;
# Procedūra 4&lt;br /&gt;
def rodyk(dauginksk):&lt;br /&gt;
    # Parodyk galutinį rezultatą.&lt;br /&gt;
    print(&amp;quot;Galutinis rezultatas yra&amp;quot;, dauginksk)&lt;br /&gt;
&lt;br /&gt;
# Kviesk procedūrą 1&lt;br /&gt;
main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jei įrašysi skaitemnį &amp;quot;5&amp;quot;, gausi išvestį parodytą žemiau.&lt;br /&gt;
&lt;br /&gt;
 Įrašyk skaičių.&lt;br /&gt;
 5&lt;br /&gt;
 Galutinis rezultatas yra 24.52&lt;br /&gt;
&lt;br /&gt;
Jei įrašysi reikšmę &amp;quot;g&amp;quot;, tada pasitaisysi ir įrašysi skaitmenį &amp;quot;8&amp;quot;, tada gausi išvestį parodytą žemiau.&lt;br /&gt;
&lt;br /&gt;
 Įrašyk skaičių.&lt;br /&gt;
 g&lt;br /&gt;
 Privalai įvesti tinkamą skaičių.&lt;br /&gt;
 &lt;br /&gt;
 Įrašyk skaičių.&lt;br /&gt;
 8&lt;br /&gt;
 Galutinis rezultatas yra 31.875999999999998&lt;br /&gt;
&lt;br /&gt;
Žemiau matai klasę ir programą, kuri naudoja nurodytą klasę. Ši objektinio programavimo būdu parašyta programa daro tą patį, ką prieš tai darė procedūriniu programavimo būdu parašyta programa. Apžiūrėk keletą svarbių objektinio programavimo būdo konceptų prieš neriant į ankščiau minėtą klasę ir programą.&lt;br /&gt;
Norint sukurti klasę, naudok &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt; raktažodį. Po raktažodžio rašyk pavadinimą, kurį norėtum, jog turėtų klasė. Dažnai naudojama praktika kuriant klasių pavadinimus yra &amp;lt;i&amp;gt;NaujųŽodžiųRašymasIšDidžiosiosRaidės&amp;lt;/i&amp;gt;.&lt;br /&gt;
Jei norėčiau sukurti klasę pavadinimu purvinoskojinės, kodas atrodytų taip:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
class PurvinosKojinės&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Iš pradžių pažiūrėk į klasę. Programa, kuri naudos šią klasę, bus parodyta vėliau.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Failo pavadinimas: ooppavyzdys.py&lt;br /&gt;
# Programa parašyta Mitchell Aikens&lt;br /&gt;
# Nėra autoriaus teisių&lt;br /&gt;
# 2012&lt;br /&gt;
# OOP Demonstracija - Klasė&lt;br /&gt;
&lt;br /&gt;
class SkKeitimas:&lt;br /&gt;
&lt;br /&gt;
    def __init__(self):&lt;br /&gt;
        self.__skaičius = 0&lt;br /&gt;
&lt;br /&gt;
    def pridėkpenkis(self, sk):&lt;br /&gt;
        self.__skaičius = sk&lt;br /&gt;
        return self.__skaičius + 5&lt;br /&gt;
&lt;br /&gt;
    def padaugink(self, pridėtas):&lt;br /&gt;
        self.__pridėtas = pridėtas&lt;br /&gt;
        return self.__pridėtas * 2.452&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Programa, kuri naudoja viršuje esančią klasę yra parašyta žemiau.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Failo pavadinimas: ooppavyzdys.py&lt;br /&gt;
# Mitchell Aikens&lt;br /&gt;
# Nėra autoriaus teisių&lt;br /&gt;
# 2012&lt;br /&gt;
# OOP Demonstracija - Programa&lt;br /&gt;
&lt;br /&gt;
import ooppavyzdys&lt;br /&gt;
&lt;br /&gt;
matkė = ooppavyzdys.SkKeitimas()&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
&lt;br /&gt;
    sk = float(input(&amp;quot;Įrašyk skaičių.\n&amp;quot;))&lt;br /&gt;
&lt;br /&gt;
    pridėtas = matkė.pridėkpenkis(sk)&lt;br /&gt;
&lt;br /&gt;
    daugintas = matkė.padaugink(pridėtas)&lt;br /&gt;
&lt;br /&gt;
    print(&amp;quot;Galutinis rezultatas yra&amp;quot;, daugintas)&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tikriausiai dabar esi pasimetęs. Tai visiškai suprantama. Iš pradžių, pasistenk suprasti klasę.&lt;br /&gt;
Klasė yra pavadinta &amp;quot;SkKeitimas&amp;quot;&lt;br /&gt;
Ši klasė turi tris metodus&lt;br /&gt;
* __init__&lt;br /&gt;
* pridėkpenkis&lt;br /&gt;
* padaugink&lt;br /&gt;
&lt;br /&gt;
Šie trys metodai savyje turi labai panašų kodą.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def __init__(self):&lt;br /&gt;
def pridėkpenkis(self,sk):&lt;br /&gt;
def padaugink(self,pridėtas):&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Atkreipk dėmesį į tai, jog kiekvienas metodas turi parametrą pavadinimu „self“. Kiekvienas klasės metodas turi būtinai turėti šį parametrą. Šis parametras nebūtinai turi būti su pavadinimu „self“, bet tai yra priimta kaip gerosios praktikos, tad tikriausiai ir tu turėtum jį taip vadinti. Šis parametras yra reikalingas kiekviename metode nes, kai jis yra iškviečiamas, jis turi žinoti, su kuriuo objekto atributu turėtų atlikti operacijas. Net kai turi tik vieną objektą, turi pasirūpinti, kad programa žinotų, jog nori naudoti atributus aprašytus būtent toje klasėje. Todėl turi būti saugus ir naudoti „self“ parametrą.&lt;br /&gt;
&lt;br /&gt;
Peržiūrėk pirmą metodą.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def __init__(self):&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dauguma Python'o klasių turi &amp;lt;code&amp;gt;__init__&amp;lt;/code&amp;gt;, kuris yra paleidžiamas automatiškai kiekvieną kartą, kai atmintyje yra sukuriama tos klasės objektas (kai sukuriame nuorodą į klasę, yra sukuriama tos klasės &amp;lt;i&amp;gt;objektas&amp;lt;/i&amp;gt;). Šis metodas yra paprastai vadinamas &amp;lt;i&amp;gt;inicijavimo metodu&amp;lt;/i&amp;gt;. Kai šis metodas yra paleidžiamas, „self“ parametras yra automatiškai priskiriamas tariamam objektui. __init__ metodas inicijuoja klasės atributus, dėl šios priežasties jis yra pavadintas inicijavimo metodu. Po __init__ metodu, iš pradžių &amp;lt;code&amp;gt;skaičius&amp;lt;/code&amp;gt; atributui mes priskiriame 0.&lt;br /&gt;
Yra sukuriama nuorodą į turimo objekto atributą panaudojant taškinį žymėjimą.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def __init__(self):&lt;br /&gt;
    self.__skaičius = 0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Kodas &amp;lt;code&amp;gt;self.__skaičius = 0&amp;lt;/code&amp;gt; reiškia, jog objekte esančio „skaičius“ atributo reikšmė yra 0.&lt;br /&gt;
&lt;br /&gt;
Pažiūrėk į kitą metodą.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def pridėkpenkis(self, sk):&lt;br /&gt;
    self.__skaičius = sk&lt;br /&gt;
    return self.__skaičius + 5&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Šis metodas yra pavadintas „pridėkpenkis“. Jis priima parametrą pavadinimu „sk“. Metode esanti logika tada priskiria „sk“ reikšmę objekte esančiui atributui su pavadinimu „skaičius“. Tada metodas prideda 5 prie „skaičius“ ir jį grąžina į tą vietą, kur metodas buvo iškviestas.&lt;br /&gt;
&lt;br /&gt;
Pažiūrėk į trečiajį metodą.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def padaugink(self, pridėtas):&lt;br /&gt;
    self.__pridėtas = pridėtas&lt;br /&gt;
    return self.__pridėtas * 2.453&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Šis metodas yra pavadintas „padaugink“. Jis priima parametrą pavadinimu „pridėtas“. Metodas priskiria priimtą reikšmę objekte esančiam atributui su pavadinimu „pridėtas“ ir grąžina „pridėtas“ atributo ir 2.452 sandaugą jį kviečiančiam.&lt;br /&gt;
&lt;br /&gt;
Ar atkreipei dėmesį į tai, jog kiekvienas metodo pavadinimas prasideda su dviem pabraukimais? Pabandyk tai suprasti.&lt;br /&gt;
Prieš tai buvo minėta, jog objektas, su metodų pagalba, dirba su atributais apibrėžtais jame pačiame. Būtų idealu, jei tuos atributus galėtum pakeisti TIK SU METODAIS ESANČIAIS PAČIAME OBJEKTE. Įmanoma turėti iššorinį kodą, kuris galėtų manipuliuoti tais pačiais atributais. Norint „paslėpti“ atributus, taip, kad juos matytų metodai aprašyti pačiame objekte, turi naudoti du pabraukimus prieš objekto pavadinimą, taip kaip ir buvo rodyta. Ištrynus abu pabraukimus nuo atributo pavadinimo tu juo galėsi manipuliuoti kodu, kuris yra parašytas objekto išorėje.&lt;br /&gt;
&lt;br /&gt;
Pažiūrėki į programą, kuri naudoja aptartą klasę.&lt;br /&gt;
&lt;br /&gt;
Atkreipk dėmesį į pirmą eilutę, kuri nėra komentaras.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import ooppavyzdys&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ši kodo eilutė importuoją klasę, kurią išsaugojai atskirame faile (modulyje). Klasės nebūtinai turi būti talpinamos atskiruose failuose, bet tai yra priimta kaip gerosios praktikos, tad yra verta jau nuo pat pradžių priprasti prie modulių importavimo.&lt;br /&gt;
&lt;br /&gt;
Kita eilutė:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
matkė = ooppavyzdys.SkKeitimas()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ši eilutė sukuria SkKeitimas pavadinimu „ooppavyzdys“ modulyje patalpintos klasės objektą, kuris yra priskiriamas „matkė“ kintamajam.&lt;br /&gt;
Sintaksė atrodo taip: &amp;lt;code&amp;gt;&amp;lt;i&amp;gt;moduliopavadinimas.Klasėspavadinimas()&amp;lt;/i&amp;gt;&amp;lt;/code&amp;gt; Toliau apibrėžiama ''main'' funkciją ir paimamas skaičius iš vartotojo.&lt;br /&gt;
&lt;br /&gt;
Kita eilutė &amp;lt;code&amp;gt;pridėtas = matkė.pridėkpenkis(sk)&amp;lt;/code&amp;gt; nusiunčia „sk“ kintamojo reikšmę metodui pavadinimu „pridėkpenkis“. Metodas yra aprašytas klasėje, kurios objektą išsaugojai kintamajame pavadinimu „matkė“. „pridėkpenkis“ metodas išsaugo gautą reikšmę į kintamajį pavadinimu „pridėtas“.&lt;br /&gt;
&lt;br /&gt;
Kita eilutė &amp;lt;code&amp;gt;daugintas = matkė.daugink(pridėtas)&amp;lt;/code&amp;gt; nusiunčia „pridėtas“ kintamojo reikšmę metodui pavadinimu „daugink“. Metodas yra aprašytas klasėje, kurios objektą išsaugojome kintamajame pavadinimu „matkė“. „daugink“ metodas išsaugo gautą reikšmę į kintamajį pavadinimu „daugintas“.&lt;br /&gt;
&lt;br /&gt;
Kita eilutė atspausdina „Galutinis rezultatas yra &amp;lt;daugintas reikšmė&amp;gt;“. Paskutinė eilutė iškviečia main funkciją, kuri įvykdo žingsnius nurodytus viršuje.&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Rekursija|next=Įvadas į importuotas bibliotekas ir kitas funkcijas}}&lt;br /&gt;
{{BookCat}}&lt;/div&gt;</summary>
		<author><name>Juratevalat</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/%C4%AEvadas_%C4%AF_objektin%C4%AF_programavim%C4%85_Python_3&amp;diff=3864</id>
		<title>Python Vadovėlis/Įvadas į objektinį programavimą Python 3</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/%C4%AEvadas_%C4%AF_objektin%C4%AF_programavim%C4%85_Python_3&amp;diff=3864"/>
		<updated>2022-02-12T14:34:45Z</updated>

		<summary type="html">&lt;p&gt;Juratevalat: /* Įžanga */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Objektinis programavimas==&lt;br /&gt;
&lt;br /&gt;
Iki šiol rašei kodą pagal procedūrinio programavimo taisykles. Tačiau, yra daug programų, kurios parašytos pagal objektinio programavimo taisykles. Žinoti abu programavimo tipus ir jų skirtumus yra labai svarbu. Informatikoje, daug svarbių kalbų, tokių kaip C++ ar Java, dažnai naudoja objektinio programavimo taisykles.&lt;br /&gt;
&lt;br /&gt;
Pradedantiesiems ir mokiniams, neturintiems programavimo žinių, objektinis programavimas dažnai gali atrodyti painus ir tai yra visiškai normalu. Nesijausk blogai, jei nesiseka suprasti iš pat pradžių. Jei šis skyrius nepadės tau suprasti, yra ir daugiau informatyvių šaltinių, kurie padės atsakyti į visus klausimus.&lt;br /&gt;
&lt;br /&gt;
Šis skyrius yra padalintas į keletą pamokų. Kiekviena pamoka - skirta paaiškinti skirtingas objektinio programavimo dalis. &amp;lt;b&amp;gt;LABAI SVARBU&amp;lt;/b&amp;gt; suprasti jas visas. Nepamiršk prieš kiekvieną pamoką perskaityti įžangą, kuri paaiškins pagrindines idėjas, sąvokas ir kitas objektinio programavimo sritis.&lt;br /&gt;
&lt;br /&gt;
==Įžanga==&lt;br /&gt;
&lt;br /&gt;
Tu jau žinai, kad funkcija turi konkrečią paskyrtį ir ji gali būti įvairi: rinkti įvestis, atlikti matematinius skaičiavimus, atvaizduoti ar kitaip manipuliuoti duomenimis. Paprastai, funkcijos manipuliuoja duomenimis, kurie yra aprašyti atskirai. Šie duomenys yra dažnai perduodami iš vienos funkcijos į kitą. Ir, kai programa pasidaro per didelė, tai padaro duomenų perdavimą komplikuotą.&lt;br /&gt;
Pavyzdžiui, parašei programą, kuri kintamuosiuose išsaugo produkto duomenis. Kai klientas paprašo informacijos apie produktą, reikia išrinkti visus kintamuosius, saugančius tuos duoemnis ir pateikti atitinkamoms funkcijoms. Laikui bėgant ir saugant vis daugiau duomenų apie turimus produktus, tu sugalvoji išsaugoti turimą informaciją sąrašuose ar žodynuose. Norint, jog tavo programa veiktų, tu dabar turi redaguoti kiekvieną funkciją, kuri naudojo tuos kintamuosius, taip, kad dabar ji galėtų priimti ir manipuliuoti sąrašus ar žodynus. Įsivaizduok kiek laiko tau reikėtų norint peržiūrėti ir pakeisti šimtus failų. Tu išprotėtum! Nekalbant apie tai, jog klaidas daro net ir labiausiai patyrę programuotojai, tad taip pat reikėtų taisyti begalę klaidų. Toks programavimas yra pernelyg neoptimalus.&lt;br /&gt;
Procedūrinis programavimas yra paremtas procedūromis (funkcijomis). Objektinis programavimas yra paremtas objektais. Ar prisimeni, kaip procedūrinė programa atskyrė duomenis nuo kodo? Ar prisimeni programą, kuri turėjo šimtus failų ir norint kažką pakeisti reikėdavo ilgai joje narpstytis? &lt;br /&gt;
Galvok apie &amp;lt;i&amp;gt;objektą&amp;lt;/i&amp;gt; kaip apie minėtų failų ir duomenų „kombinaciją“ į vieną esybę. Technine prasme, objektas yra esybė, kuri savyje turi duomenis ir procedūras (kodą, funkcijas, t.t.).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Duomenis objekto viduje vadiname &amp;lt;i&amp;gt;atributais&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Funkcijas ar procedūras objekto viduje vadiname &amp;lt;i&amp;gt;metodais&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Galvok apie &amp;lt;b&amp;gt;duomenų atributus&amp;lt;/b&amp;gt; kaip apie kintamuosius. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Galvok apie &amp;lt;b&amp;gt;metodus&amp;lt;/b&amp;gt; kaip apie funkcijas ar procedūras. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pažiūrėk į paprastą, kasdienį pavyzdį. Lemputė ir jungiklis tavo kambaryje.&lt;br /&gt;
Atributai bus štai tokie.&lt;br /&gt;
&lt;br /&gt;
* šviesa_įjungta (True False)&lt;br /&gt;
* jungiklio_pozicija (Viršuje arba Apačioje)&lt;br /&gt;
* elektros_tekėjimas (True arba False)&lt;br /&gt;
&lt;br /&gt;
Metodai būtų štai tokie.&lt;br /&gt;
&lt;br /&gt;
* pakeisti_jungiklio_poziciją&lt;br /&gt;
* pakeisti_elektros_tekėjimą&lt;br /&gt;
&lt;br /&gt;
Atributai gali būti matomi ir nematomi. Pavyzdžiui, tu negali matyti elektros tekančios į lemputę. Tu tik žinai, kad elektra išties teka, nes ji tuo metu skleidžia šviesą. Nepaisant to, tu gali matyti jungiklio poziciją (jungiklio_pozicija) ir taip pat tu matai ar šviesa yra įjungta ar ne (šviesa_įjungta). Kai kurie metodai yra &amp;lt;i&amp;gt;privatūs&amp;lt;/i&amp;gt;. Tai reiškia, jog jų reikšmės neišeina tiesiogiai pakeisti. Pavyzdžiui, tu negalėtum pakeisti elektros tėkmės tiesiogiai, nebent būtų nukerpami laidai (to nedaryk ir dėl šio pavyzdžio; manyk, jog laidai neegzistuoja). Tu taip pat negali tiesiogiai įtakoti lemputės šviesos (ne, tu negali atsukti lemputės ar jos sudaužyti!). Bet tu visada gali šiuos atributus įtakoti netiesiogiai naudojant objekto &amp;lt;i&amp;gt;metodus&amp;lt;/i&amp;gt;. Jeigu nesumokėsi mokesčių, metodas pavadinimu &amp;lt;code&amp;gt;pakeisti_elektros_tekėjimą&amp;lt;/code&amp;gt; pakeis &amp;lt;code&amp;gt;elektros_tekėjimas&amp;lt;/code&amp;gt; reikšmę į FALSE. Jei tu įjungsi jungiklį, &amp;lt;code&amp;gt;pakeisti_jungiklio_poziciją&amp;lt;/code&amp;gt; metodas pakeis &amp;lt;code&amp;gt;šviesa_įjungta&amp;lt;/code&amp;gt; atributo reikšmę.&lt;br /&gt;
&lt;br /&gt;
Dabar jau tikriausiai galvoji, „Ką tai turi bendro su Python'u?“ ar, „Aš nesuprantu, bet kaip man sukurti tą objektą?“. Na, beveik priėjai prie atsakymų! Tik turiu paaiškinti dar vieną dalyką prieš neriant į kodą.&lt;br /&gt;
&lt;br /&gt;
Python'e objekto atributai ir metodai yra nurodomi &amp;lt;b&amp;gt;klasės&amp;lt;/b&amp;gt;. Galvok apie klasę kaip apie objekto techninį piešinį. Pavyzdžiui, tavo namai - objektas kuriame gyveni - taip pat jį gali vadinti butu, vasarnamiu, prakartėle ar bet kuo kitu, buvo pastatytas naudojant techinius piešinius. Šie techniniai piešiniai būtų vadinami klasėmis, kurios buvo panaudotos projektuojant tavo namus, butą, vasarnamį, na, supranti apie ką kalbu. &lt;br /&gt;
&lt;br /&gt;
Dar kartą, klasė pasako, kaip sukurti objektą. Techniniais terminais tariant, ir tai yra labai svarbu, klasė nusako naudojamus duomenų atributus ir metodus objekte.&lt;br /&gt;
&lt;br /&gt;
Norint sukurti klasę, mes suprogramuojame &amp;lt;i&amp;gt;klasės apibrėžimą&amp;lt;/i&amp;gt;. Klasės apibrėžimas, tai grupė komandų, kurios nusako objekto atributus ir metodus.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&amp;lt;b&amp;gt;Pirma pamoka&amp;lt;/b&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apačioje yra procedūrinė programa, kuri atlieka paprastą matematinį veiksmą su vartotojo įvestu skaičiumi.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Programa parašyta Mitchell Aikens&lt;br /&gt;
# Nėra autoriaus teisių&lt;br /&gt;
# 2012&lt;br /&gt;
&lt;br /&gt;
# Procedūra 1&lt;br /&gt;
def main():&lt;br /&gt;
    try:&lt;br /&gt;
        # Pasiimk skaičių, kurį manipuliuosi.&lt;br /&gt;
        sk = float(input(&amp;quot;Įrašyk skaičių.\n&amp;quot;))&lt;br /&gt;
        # Išsaugok naują skaičių į kintamąjį. Prieš tai, su pasiimtu skaičiumi atlik matematinius&lt;br /&gt;
        # veiksmus naudojant procedūrą 2&lt;br /&gt;
        pridėksk = pridėkpenkis(sk)&lt;br /&gt;
        # Išsaugok naują skaičių į kintamąjį. Prieš tai, su ankščiau išsaugotu skaičiu atlik&lt;br /&gt;
        # matematinius veiksmus naudojant procedūrą 3&lt;br /&gt;
        dauginksk = daugink(pridėksk)&lt;br /&gt;
        # Paduok skaičių procedūrai 4&lt;br /&gt;
        rodyk(dauginksk)&lt;br /&gt;
    # Susidorok su išimtimis, kurios gali atsirasti dėl netinkamo vartotojo skaičiaus įvedimo&lt;br /&gt;
    except ValueError:&lt;br /&gt;
        print(&amp;quot;Privalai įvesti tinkamą skaičių.\n&amp;quot;)&lt;br /&gt;
        # Atstatyk kintamojo num reikšmę, kad ištrintum netinkamą vartotojo įvestį.&lt;br /&gt;
        sk = 0&lt;br /&gt;
        # Dar kartą iškviesk main.&lt;br /&gt;
        main()&lt;br /&gt;
&lt;br /&gt;
# Procedūra 2&lt;br /&gt;
def pridėkpenkis(sk):&lt;br /&gt;
    return sk + 5&lt;br /&gt;
&lt;br /&gt;
# Procedūra 3&lt;br /&gt;
def daugink(pridėksk):&lt;br /&gt;
    return pridėksk * 2.452&lt;br /&gt;
&lt;br /&gt;
# Procedūra 4&lt;br /&gt;
def rodyk(dauginksk):&lt;br /&gt;
    # Parodyk galutinį rezultatą.&lt;br /&gt;
    print(&amp;quot;Galutinis rezultatas yra&amp;quot;, dauginksk)&lt;br /&gt;
&lt;br /&gt;
# Kviesk procedūrą 1&lt;br /&gt;
main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jei įrašysi skaitemnį &amp;quot;5&amp;quot;, gausi išvestį parodytą žemiau.&lt;br /&gt;
&lt;br /&gt;
 Įrašyk skaičių.&lt;br /&gt;
 5&lt;br /&gt;
 Galutinis rezultatas yra 24.52&lt;br /&gt;
&lt;br /&gt;
Jei įrašysi reikšmę &amp;quot;g&amp;quot;, tada pasitaisysi ir įrašysi skaitmenį &amp;quot;8&amp;quot;, tada gausi išvestį parodytą žemiau.&lt;br /&gt;
&lt;br /&gt;
 Įrašyk skaičių.&lt;br /&gt;
 g&lt;br /&gt;
 Privalai įvesti tinkamą skaičių.&lt;br /&gt;
 &lt;br /&gt;
 Įrašyk skaičių.&lt;br /&gt;
 8&lt;br /&gt;
 Galutinis rezultatas yra 31.875999999999998&lt;br /&gt;
&lt;br /&gt;
Žemiau matai klasę ir programą, kuri naudoja nurodytą klasę. Ši objektinio programavimo būdu parašyta programa daro tą patį, ką prieš tai darė procedūriniu programavimo būdu parašyta programa. Apžiūrėk keletą svarbių objektinio programavimo būdo konceptų prieš neriant į ankščiau minėtą klasę ir programą.&lt;br /&gt;
Norint sukurti klasę, naudok &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt; raktažodį. Po raktažodžio rašyk pavadinimą, kurį norėtum, jog turėtų klasė. Dažnai naudojama praktika kuriant klasių pavadinimus yra &amp;lt;i&amp;gt;NaujųŽodžiųRašymasIšDidžiosiosRaidės&amp;lt;/i&amp;gt;.&lt;br /&gt;
Jei norėčiau sukurti klasę pavadinimu purvinoskojinės, kodas atrodytų taip:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
class PurvinosKojinės&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Iš pradžių pažiūrėk į klasę. Programa, kuri naudos šią klasę, bus parodyta vėliau.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Failo pavadinimas: ooppavyzdys.py&lt;br /&gt;
# Programa parašyta Mitchell Aikens&lt;br /&gt;
# Nėra autoriaus teisių&lt;br /&gt;
# 2012&lt;br /&gt;
# OOP Demonstracija - Klasė&lt;br /&gt;
&lt;br /&gt;
class SkKeitimas:&lt;br /&gt;
&lt;br /&gt;
    def __init__(self):&lt;br /&gt;
        self.__skaičius = 0&lt;br /&gt;
&lt;br /&gt;
    def pridėkpenkis(self, sk):&lt;br /&gt;
        self.__skaičius = sk&lt;br /&gt;
        return self.__skaičius + 5&lt;br /&gt;
&lt;br /&gt;
    def padaugink(self, pridėtas):&lt;br /&gt;
        self.__pridėtas = pridėtas&lt;br /&gt;
        return self.__pridėtas * 2.452&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Programa, kuri naudoja viršuje esančią klasę yra parašyta žemiau.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Failo pavadinimas: ooppavyzdys.py&lt;br /&gt;
# Mitchell Aikens&lt;br /&gt;
# Nėra autoriaus teisių&lt;br /&gt;
# 2012&lt;br /&gt;
# OOP Demonstracija - Programa&lt;br /&gt;
&lt;br /&gt;
import ooppavyzdys&lt;br /&gt;
&lt;br /&gt;
matkė = ooppavyzdys.SkKeitimas()&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
&lt;br /&gt;
    sk = float(input(&amp;quot;Įrašyk skaičių.\n&amp;quot;))&lt;br /&gt;
&lt;br /&gt;
    pridėtas = matkė.pridėkpenkis(sk)&lt;br /&gt;
&lt;br /&gt;
    daugintas = matkė.padaugink(pridėtas)&lt;br /&gt;
&lt;br /&gt;
    print(&amp;quot;Galutinis rezultatas yra&amp;quot;, daugintas)&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tikriausiai dabar esi pasimetęs. Tai visiškai suprantama. Iš pradžių, pasistenk suprasti klasę.&lt;br /&gt;
Klasė yra pavadinta &amp;quot;SkKeitimas&amp;quot;&lt;br /&gt;
Ši klasė turi tris metodus&lt;br /&gt;
* __init__&lt;br /&gt;
* pridėkpenkis&lt;br /&gt;
* padaugink&lt;br /&gt;
&lt;br /&gt;
Šie trys metodai savyje turi labai panašų kodą.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def __init__(self):&lt;br /&gt;
def pridėkpenkis(self,sk):&lt;br /&gt;
def padaugink(self,pridėtas):&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Atkreipk dėmesį į tai, jog kiekvienas metodas turi parametrą pavadinimu „self“. Kiekvienas klasės metodas turi būtinai turėti šį parametrą. Šis parametras nebūtinai turi būti su pavadinimu „self“, bet tai yra priimta kaip gerosios praktikos, tad tikriausiai ir tu turėtum jį taip vadinti. Šis parametras yra reikalingas kiekviename metode nes, kai jis yra iškviečiamas, jis turi žinoti, su kuriuo objekto atributu turėtų atlikti operacijas. Net kai turi tik vieną objektą, turi pasirūpinti, kad programa žinotų, jog nori naudoti atributus aprašytus būtent toje klasėje. Todėl turi būti saugus ir naudoti „self“ parametrą.&lt;br /&gt;
&lt;br /&gt;
Peržiūrėk pirmą metodą.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def __init__(self):&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dauguma Python'o klasių turi &amp;lt;code&amp;gt;__init__&amp;lt;/code&amp;gt;, kuris yra paleidžiamas automatiškai kiekvieną kartą, kai atmintyje yra sukuriama tos klasės objektas (kai sukuriame nuorodą į klasę, yra sukuriama tos klasės &amp;lt;i&amp;gt;objektas&amp;lt;/i&amp;gt;). Šis metodas yra paprastai vadinamas &amp;lt;i&amp;gt;inicijavimo metodu&amp;lt;/i&amp;gt;. Kai šis metodas yra paleidžiamas, „self“ parametras yra automatiškai priskiriamas tariamam objektui. __init__ metodas inicijuoja klasės atributus, dėl šios priežasties jis yra pavadintas inicijavimo metodu. Po __init__ metodu, iš pradžių &amp;lt;code&amp;gt;skaičius&amp;lt;/code&amp;gt; atributui mes priskiriame 0.&lt;br /&gt;
Yra sukuriama nuorodą į turimo objekto atributą panaudojant taškinį žymėjimą.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def __init__(self):&lt;br /&gt;
    self.__skaičius = 0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Kodas &amp;lt;code&amp;gt;self.__skaičius = 0&amp;lt;/code&amp;gt; reiškia, jog objekte esančio „skaičius“ atributo reikšmė yra 0.&lt;br /&gt;
&lt;br /&gt;
Pažiūrėk į kitą metodą.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def pridėkpenkis(self, sk):&lt;br /&gt;
    self.__skaičius = sk&lt;br /&gt;
    return self.__skaičius + 5&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Šis metodas yra pavadintas „pridėkpenkis“. Jis priima parametrą pavadinimu „sk“. Metode esanti logika tada priskiria „sk“ reikšmę objekte esančiui atributui su pavadinimu „skaičius“. Tada metodas prideda 5 prie „skaičius“ ir jį grąžina į tą vietą, kur metodas buvo iškviestas.&lt;br /&gt;
&lt;br /&gt;
Pažiūrėk į trečiajį metodą.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def padaugink(self, pridėtas):&lt;br /&gt;
    self.__pridėtas = pridėtas&lt;br /&gt;
    return self.__pridėtas * 2.453&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Šis metodas yra pavadintas „padaugink“. Jis priima parametrą pavadinimu „pridėtas“. Metodas priskiria priimtą reikšmę objekte esančiam atributui su pavadinimu „pridėtas“ ir grąžina „pridėtas“ atributo ir 2.452 sandaugą jį kviečiančiam.&lt;br /&gt;
&lt;br /&gt;
Ar atkreipei dėmesį į tai, jog kiekvienas metodo pavadinimas prasideda su dviem pabraukimais? Pabandyk tai suprasti.&lt;br /&gt;
Prieš tai buvo minėta, jog objektas, su metodų pagalba, dirba su atributais apibrėžtais jame pačiame. Būtų idealu, jei tuos atributus galėtum pakeisti TIK SU METODAIS ESANČIAIS PAČIAME OBJEKTE. Įmanoma turėti iššorinį kodą, kuris galėtų manipuliuoti tais pačiais atributais. Norint „paslėpti“ atributus, taip, kad juos matytų metodai aprašyti pačiame objekte, turi naudoti du pabraukimus prieš objekto pavadinimą, taip kaip ir buvo rodyta. Ištrynus abu pabraukimus nuo atributo pavadinimo tu juo galėsi manipuliuoti kodu, kuris yra parašytas objekto išorėje.&lt;br /&gt;
&lt;br /&gt;
Pažiūrėki į programą, kuri naudoja aptartą klasę.&lt;br /&gt;
&lt;br /&gt;
Atkreipk dėmesį į pirmą eilutę, kuri nėra komentaras.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import ooppavyzdys&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ši kodo eilutė importuoją klasę, kurią išsaugojai atskirame faile (modulyje). Klasės nebūtinai turi būti talpinamos atskiruose failuose, bet tai yra priimta kaip gerosios praktikos, tad yra verta jau nuo pat pradžių priprasti prie modulių importavimo.&lt;br /&gt;
&lt;br /&gt;
Kita eilutė:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
matkė = ooppavyzdys.SkKeitimas()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ši eilutė sukuria SkKeitimas pavadinimu „ooppavyzdys“ modulyje patalpintos klasės objektą, kuris yra priskiriamas „matkė“ kintamajam.&lt;br /&gt;
Sintaksė atrodo taip: &amp;lt;code&amp;gt;&amp;lt;i&amp;gt;moduliopavadinimas.Klasėspavadinimas()&amp;lt;/i&amp;gt;&amp;lt;/code&amp;gt; Toliau apibrėžiama ''main'' funkciją ir paimamas skaičius iš vartotojo.&lt;br /&gt;
&lt;br /&gt;
Kita eilutė &amp;lt;code&amp;gt;pridėtas = matkė.pridėkpenkis(sk)&amp;lt;/code&amp;gt; nusiunčia „sk“ kintamojo reikšmę metodui pavadinimu „pridėkpenkis“. Metodas yra aprašytas klasėje, kurios objektą išsaugojai kintamajame pavadinimu „matkė“. „pridėkpenkis“ metodas išsaugo gautą reikšmę į kintamajį pavadinimu „pridėtas“.&lt;br /&gt;
&lt;br /&gt;
Kita eilutė &amp;lt;code&amp;gt;daugintas = matkė.daugink(pridėtas)&amp;lt;/code&amp;gt; nusiunčia „pridėtas“ kintamojo reikšmę metodui pavadinimu „daugink“. Metodas yra aprašytas klasėje, kurios objektą išsaugojome kintamajame pavadinimu „matkė“. „daugink“ metodas išsaugo gautą reikšmę į kintamajį pavadinimu „daugintas“.&lt;br /&gt;
&lt;br /&gt;
Kita eilutė atspausdina „Galutinis rezultatas yra &amp;lt;daugintas reikšmė&amp;gt;“. Paskutinė eilutė iškviečia main funkciją, kuri įvykdo žingsnius nurodytus viršuje.&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Rekursija|next=Įvadas į importuotas bibliotekas ir kitas funkcijas}}&lt;br /&gt;
{{BookCat}}&lt;/div&gt;</summary>
		<author><name>Juratevalat</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Terminai&amp;diff=3863</id>
		<title>Python Vadovėlis/Terminai</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Terminai&amp;diff=3863"/>
		<updated>2022-02-12T13:32:13Z</updated>

		<summary type="html">&lt;p&gt;Juratevalat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Computer - kompiuteris &lt;br /&gt;
&lt;br /&gt;
Container - konteineris&lt;br /&gt;
&lt;br /&gt;
Control strukture - valdymo struktūra&lt;br /&gt;
&lt;br /&gt;
Counter - skaitliukas &lt;br /&gt;
&lt;br /&gt;
Debugging - derinimas&lt;br /&gt;
&lt;br /&gt;
Directory - katalogas&lt;br /&gt;
&lt;br /&gt;
Exercise - pratimas&lt;br /&gt;
&lt;br /&gt;
Expression - reiškinys&lt;br /&gt;
&lt;br /&gt;
False - Melas&lt;br /&gt;
&lt;br /&gt;
Feature - ypatybė&lt;br /&gt;
&lt;br /&gt;
Floating point - slankusis kablelis&lt;br /&gt;
&lt;br /&gt;
Good practices - gerosios praktikos&lt;br /&gt;
&lt;br /&gt;
Hard-coded - įkoduotas/užprogramuotas&lt;br /&gt;
&lt;br /&gt;
IDLE - „IDLE“ kodo redaktorius/kodo redaktorius&lt;br /&gt;
&lt;br /&gt;
Indent - įtrauka&lt;br /&gt;
&lt;br /&gt;
Instance - objektas&lt;br /&gt;
&lt;br /&gt;
Item - elementas&lt;br /&gt;
&lt;br /&gt;
Iterable - iteruojamasis&lt;br /&gt;
&lt;br /&gt;
List - sąrašas&lt;br /&gt;
&lt;br /&gt;
Loop - ciklas&lt;br /&gt;
&lt;br /&gt;
Mouse - pelė&lt;br /&gt;
&lt;br /&gt;
Operator - operatorius&lt;br /&gt;
&lt;br /&gt;
Optional - pasirinktinas&lt;br /&gt;
&lt;br /&gt;
Output - išvestis/rezultatas&lt;br /&gt;
&lt;br /&gt;
Prepackaged - iš anksto paruošti paketai&lt;br /&gt;
&lt;br /&gt;
Prompt - kviesti&lt;br /&gt;
&lt;br /&gt;
Python - Python'as&lt;br /&gt;
&lt;br /&gt;
Run (daikt.) - vykdymas &lt;br /&gt;
&lt;br /&gt;
Shell - terminalas/konsolės langas&lt;br /&gt;
&lt;br /&gt;
Site-packages - svetainės paketai&lt;br /&gt;
&lt;br /&gt;
Solution - sprendimas&lt;br /&gt;
&lt;br /&gt;
Source code - pirminis programos tekstas&lt;br /&gt;
&lt;br /&gt;
Statement - sakinys&lt;br /&gt;
&lt;br /&gt;
String - tekstinė eilutė/eilutė&lt;br /&gt;
&lt;br /&gt;
Terminate - nutraukti darbą/stabdyti programą&lt;br /&gt;
&lt;br /&gt;
True - Tiesa&lt;br /&gt;
&lt;br /&gt;
User - naudotojas&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=DUK |next=END}}&lt;/div&gt;</summary>
		<author><name>Juratevalat</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Rekursija&amp;diff=3862</id>
		<title>Python Vadovėlis/Rekursija</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Rekursija&amp;diff=3862"/>
		<updated>2022-02-12T12:28:03Z</updated>

		<summary type="html">&lt;p&gt;Juratevalat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Rekursija ==&lt;br /&gt;
&lt;br /&gt;
Programavime rekursine funkcija vadinama funkcija, kuri iškviečia pati save.&lt;br /&gt;
&lt;br /&gt;
=== Įvadas į rekursiją ===&lt;br /&gt;
&lt;br /&gt;
Iki šiol Python'o programoje matėme funkcijas, kurios iškviečia kitas funkcijas. Tačiau funkcija gali iškviesti ir pati save. Pažvelkime į paprastą pavyzdį.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Mitchell Aikens programa&lt;br /&gt;
# Nėra autorinių teisių&lt;br /&gt;
# 2010&lt;br /&gt;
&lt;br /&gt;
sk = 0&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    skaitliukas(sk)&lt;br /&gt;
&lt;br /&gt;
def skaitliukas(sk):&lt;br /&gt;
    print(sk)&lt;br /&gt;
    sk+= 1&lt;br /&gt;
    skaitliukas(sk)&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jei šią programą paleistum IDLE kodo redaktoriuje, ji veiktų amžinai. Vienintelis būdas sustabdyti ciklą būtų nutraukti vykdymą paspaudžiant Ctrl + c klaviatūroje. Tai yra begalinės rekursijos pavyzdys (Kai kurie naudotojai pranešė apie esamos IDLE kodo redaktoriaus sistemos gedimą, dėl kurio Ctrl + c išimtis taip pat pradeda veikti. Jei taip nutinka, paspausk Ctrl + F6 ir IDLE kodo redaktoriaus terminalas turėtų pasileisti iš naujo.).&lt;br /&gt;
&lt;br /&gt;
Galima ginčytis, kad rekursija yra tik dar vienas būdas atlikti tą patį dalyką kaip ir naudojant ciklą. Kai kuriais atvejais tai yra visiškai teisinga. Tačiau yra ir kitų rekursijos naudojimo būdų, kurie yra labai tinkami, o  &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; arba &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; ciklai gali būti ne pats geriausias variantas.&lt;br /&gt;
&lt;br /&gt;
Rekursija gali būti valdoma, kaip ir ciklai. Pažvelk į rekursinio ciklo pavyzdį.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Mitchell Aikens programa&lt;br /&gt;
# Nėra autorinių teisių&lt;br /&gt;
# 2010&lt;br /&gt;
def main():&lt;br /&gt;
    ciklosk= int(input(&amp;quot;Kiek kartų norėtum paleisti ciklą?\n&amp;quot;))&lt;br /&gt;
    skaitliukas = 1&lt;br /&gt;
    recurr(ciklosk,skaitliukas)&lt;br /&gt;
&lt;br /&gt;
def recurr(ciklosk,skaitliukas):&lt;br /&gt;
    if ciklosk&amp;gt; 0:&lt;br /&gt;
        print(&amp;quot;Tai yra ciklo iteracija&amp;quot;,skaitliukas)&lt;br /&gt;
        recurr(ciklosk- 1,skaitliukas + 1)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Ciklas yra pabaigtas.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Programoje naudojami argumentai/parametrai rekursijų skaičiui valdyti. Tiesiog naudok tai, ką jau žinai apie funkcijas, ir sek programos eigą. Tai paprasta išsiaiškinti. Jei kyla problemų, grįžk į [[Vadovėlis/Pažangių funkcijų pavyzdys|Pažangių funkcijų pavyzdys]].&lt;br /&gt;
&lt;br /&gt;
== Praktiniai rekursijos pritaikymai ==&lt;br /&gt;
&lt;br /&gt;
Dažnai rekursija yra studijuojama pažengusiu informatikos lygiu. Rekursija dažniausiai naudojama sprendžiant sudėtingas problemas, kurias galima suskirstyti į mažesnes, identiškas problemas. Norint išspręsti problemą, rekursija nebūtina. Problemos, kurias galima išspręsti naudojant rekursiją, greičiausiai gali būti išspręstos ir su ciklais. Be to, ciklas gali būti efektyvesnis nei rekursinė funkcija. Rekursinėms funkcijoms reikia daugiau atminties ir išteklių nei ciklams, todėl daugeliu atvejų jos yra mažiau efektyvios. Šis naudojimo reikalavimas kartais vadinamas &amp;lt;i&amp;gt;overhead&amp;lt;/i&amp;gt;.&lt;br /&gt;
Galbūt galvoji: „Na, kam nerimauti su rekursija. Aš tiesiog naudosiu ciklą. Aš jau žinau, kaip sudaryti ciklą, ir tai yra daug daugiau darbo.“ Ši mintis suprantama, bet ne visai ideali. Sprendžiant sudėtingas problemas, rekursinę funkciją kartais lengviau, greičiau ir paprasčiau sukurti bei programuoti.&lt;br /&gt;
&lt;br /&gt;
Pagalvokite apie šias dvi „taisykles“:&lt;br /&gt;
* Jei galiu išspręsti problemą su ciklu, be rekursijos, funkcija tiesiog grąžina reikšmę.&lt;br /&gt;
* Jei negaliu išspręsti problemos su cilku, be rekursijos, funkcija sumažina problemą iki mažesnės analogiškos problemos ir iškviečia pati save.&lt;br /&gt;
&lt;br /&gt;
Pabandyk pritaikyti rekursinę funkciją faktorialui apskaičiuoti. Jei nesi susipažinęs su faktoriais, skaityk: [https://lt.wikipedia.org/wiki/Faktorialas Faktorialas]&lt;br /&gt;
 &lt;br /&gt;
Skaičiaus n faktorialas &amp;lt;i&amp;gt;n&amp;lt;/i&amp;gt;, yra žymimas kaip &amp;lt;i&amp;gt;n!&amp;lt;/i&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Štai keletas pagrindinių faktorialo taisyklių:&lt;br /&gt;
&lt;br /&gt;
Jei n = 0 tai n! = 1&lt;br /&gt;
&lt;br /&gt;
Jei n &amp;gt; 0 tai n! = 1 x 2 x 3 x ... x n&lt;br /&gt;
&lt;br /&gt;
Pavyzdžiui, pažiūrėk į skaičiaus 9 faktorialą.&lt;br /&gt;
&lt;br /&gt;
9! = 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9&lt;br /&gt;
&lt;br /&gt;
Pažiūrėk į programą, kuri rekursijos metodu apskaičiuoja bet kurio vartotojo įvesto skaičiaus faktorialą.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python3&amp;quot;&amp;gt;&lt;br /&gt;
def main():&lt;br /&gt;
    sk = int(input(&amp;quot;Įvesk neneigiamą sveikąjį skaičių.\n&amp;quot;))&lt;br /&gt;
    fact = factorialas(sk)&lt;br /&gt;
    print(&amp;quot;Skaičiaus &amp;quot;, sk, &amp;quot; faktorialas yra &amp;quot;, fact)&lt;br /&gt;
&lt;br /&gt;
def factorialas(sk):&lt;br /&gt;
    if sk == 0:&lt;br /&gt;
        return  1&lt;br /&gt;
    else:&lt;br /&gt;
        return sk * factorialas(sk - 1)&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rekursija taip pat naudinga išplėstinėje temoje, vadinamoje generatoriais. Norint sugeneruoti serijas 1, 2, 1, 3, 1, 2, 1, 4, 1, 2... reikės šio kodo:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def beprotiškas(min_):&lt;br /&gt;
    yield min_&lt;br /&gt;
    g=beprotiškas(min_+1)&lt;br /&gt;
    while True:&lt;br /&gt;
        yield next(g)&lt;br /&gt;
        yield min_&lt;br /&gt;
&lt;br /&gt;
i = beprotiškas(1)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
norint gauti kitą elementą, iškiviestum next(i)&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Siekiant tobulumo |next=Įvadas į objektinį programavimą Python 3}}&lt;br /&gt;
{{BookCat}}&lt;/div&gt;</summary>
		<author><name>Juratevalat</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Rekursija&amp;diff=3861</id>
		<title>Python Vadovėlis/Rekursija</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Rekursija&amp;diff=3861"/>
		<updated>2022-02-12T12:12:13Z</updated>

		<summary type="html">&lt;p&gt;Juratevalat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Rekursija ==&lt;br /&gt;
&lt;br /&gt;
Programavime rekursine funkcija vadinama funkcija, kuri iškviečia pati save.&lt;br /&gt;
&lt;br /&gt;
=== Įvadas į rekursiją ===&lt;br /&gt;
&lt;br /&gt;
Iki šiol Python'o programoje matėme funkcijas, kurios iškviečia kitas funkcijas. Tačiau funkcija gali iškviesti ir pati save. Pažvelkime į paprastą pavyzdį.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Mitchell Aikens programa&lt;br /&gt;
# Nėra autorinių teisių&lt;br /&gt;
# 2010&lt;br /&gt;
&lt;br /&gt;
sk = 0&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    skaitliukas(sk)&lt;br /&gt;
&lt;br /&gt;
def skaitliukas(sk):&lt;br /&gt;
    print(sk)&lt;br /&gt;
    sk+= 1&lt;br /&gt;
    skaitliukas(sk)&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jei šią programą paleistum IDLE kodo redaktoriuje, ji veiktų amžinai. Vienintelis būdas sustabdyti ciklą būtų nutraukti vykdymą paspaudžiant Ctrl + c klaviatūroje. Tai yra begalinės rekursijos pavyzdys (Kai kurie naudotojai pranešė apie esamos IDLE kodo redaktoriaus sistemos gedimą, dėl kurio Ctrl + c išimtis taip pat pradeda veikti. Jei taip nutinka, paspausk Ctrl + F6 ir IDLE kodo redaktoriaus terminalas turėtų pasileisti iš naujo.).&lt;br /&gt;
&lt;br /&gt;
Galima ginčytis, kad rekursija yra tik dar vienas būdas atlikti tą patį dalyką kaip ir naudojant ciklą. Kai kuriais atvejais tai yra visiškai teisinga. Tačiau yra ir kitų rekursijos naudojimo būdų, kurie yra labai tinkami, o  &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; arba &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; ciklai gali būti ne pats geriausias variantas.&lt;br /&gt;
&lt;br /&gt;
Rekursija gali būti valdoma, kaip ir ciklai. Pažvelk į valdomo ciklo pavyzdį.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Mitchell Aikens programa&lt;br /&gt;
# Nėra autorinių teisių&lt;br /&gt;
# 2010&lt;br /&gt;
def main():&lt;br /&gt;
    ciklosk= int(input(&amp;quot;Kiek kartų norėtum paleisti ciklą?\n&amp;quot;))&lt;br /&gt;
    skaitliukas = 1&lt;br /&gt;
    recurr(ciklosk,skaitliukas)&lt;br /&gt;
&lt;br /&gt;
def recurr(ciklosk,skaitliukas):&lt;br /&gt;
    if ciklosk&amp;gt; 0:&lt;br /&gt;
        print(&amp;quot;Tai yra ciklo iteracija&amp;quot;,skaitliukas)&lt;br /&gt;
        recurr(ciklosk- 1,skaitliukas + 1)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Ciklas yra pabaigtas.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aukščiau naudojami argumentai/parametrai rekursijų skaičiui valdyti. Tiesiog naudok tai, ką jau žinai apie funkcijas, ir sek programos eigą. Tai paprasta išsiaiškinti. Jei kyla problemų, grįžk į [[Vadovėlis/Pažangių funkcijų pavyzdys|Pažangių funkcijų pavyzdys]].&lt;br /&gt;
&lt;br /&gt;
== Praktiniai rekursijos pritaikymai ==&lt;br /&gt;
&lt;br /&gt;
Dažnai rekursija yra studijuojama pažengusiu informatikos lygiu. Rekursija dažniausiai naudojama sprendžiant sudėtingas problemas, kurias galima suskirstyti į mažesnes, identiškas problemas. Norint išspręsti problemą, rekursija nebūtina. Problemos, kurias galima išspręsti naudojant rekursiją, greičiausiai gali būti išspręstos ir su ciklais. Be to, ciklas gali būti efektyvesnis nei rekursinė funkcija. Rekursinėms funkcijoms reikia daugiau atminties ir išteklių nei ciklams, todėl daugeliu atvejų jos yra mažiau efektyvios. Šis naudojimo reikalavimas kartais vadinamas &amp;lt;i&amp;gt;overhead&amp;lt;/i&amp;gt;.&lt;br /&gt;
Galbūt galvoji: „Na, kam nerimauti su rekursija. Aš tiesiog naudosiu ciklą. Aš jau žinau, kaip sudaryti ciklą, ir tai yra daug daugiau darbo.“ Ši mintis suprantama, bet ne visai ideali. Sprendžiant sudėtingas problemas, rekursinę funkciją kartais lengviau, greičiau ir paprasčiau sukurti bei programuoti.&lt;br /&gt;
&lt;br /&gt;
Pagalvokite apie šias dvi „taisykles“:&lt;br /&gt;
* Jei galiu išspręsti problemą dabar, be rekursijos, funkcija tiesiog grąžina reikšmę.&lt;br /&gt;
* Jei negaliu išspręsti problemos dabar be rekursijos, funkcija sumažina problemą iki mažesnio ir panašaus ir pakviečia pati save, kad išspręstų problemą.&lt;br /&gt;
&lt;br /&gt;
Taikyk tai naudojant bendrą matematinę sąvoką – faktorialus. Jei nesi susipažinęs su matematikos faktoriais, skaityk: [https://lt.wikipedia.org/wiki/Faktorialas Faktorialas]&lt;br /&gt;
 &lt;br /&gt;
Skaičiaus faktorialas &amp;lt;i&amp;gt;n&amp;lt;/i&amp;gt;, yra žymimas kaip &amp;lt;i&amp;gt;n!&amp;lt;/i&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Štai keletas pagrindinių faktorialų taisyklių:&lt;br /&gt;
&lt;br /&gt;
Jei n = 0 tai n! = 1&lt;br /&gt;
&lt;br /&gt;
Jei n &amp;gt; 0 tai n! = 1 x 2 x 3 x ... x n&lt;br /&gt;
&lt;br /&gt;
Pavyzdžiui, pažiūrėk į skaičiaus 9 faktorialą.&lt;br /&gt;
&lt;br /&gt;
9! = 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9&lt;br /&gt;
&lt;br /&gt;
Pažiūrėk į programą, kuri rekursijos metodu apskaičiuoja bet kurio vartotojo įvesto skaičiaus faktorialą.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python3&amp;quot;&amp;gt;&lt;br /&gt;
def main():&lt;br /&gt;
    sk = int(input(&amp;quot;Įvesk neneigiamą sveikąjį skaičių.\n&amp;quot;))&lt;br /&gt;
    fact = factorialas(sk)&lt;br /&gt;
    print(&amp;quot;Skaičiaus &amp;quot;,sk,&amp;quot; faktorialas yra &amp;quot;,fact)&lt;br /&gt;
&lt;br /&gt;
def factorialas(sk):&lt;br /&gt;
    if sk== 0:&lt;br /&gt;
        return  1&lt;br /&gt;
    else:&lt;br /&gt;
        return sk* factorialas(sk- 1)&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rekursija taip pat naudinga išplėstinėje temoje, vadinamoje generatoriais. Norint sugeneruoti serijas 1,2,1,3,1,2,1,4,1,2... reikės šio kodo:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def beprotiškas(min_):&lt;br /&gt;
    yield min_&lt;br /&gt;
    g=beprotiškas(min_+1)&lt;br /&gt;
    while True:&lt;br /&gt;
        yield next(g)&lt;br /&gt;
        yield min_&lt;br /&gt;
&lt;br /&gt;
i=beprotiškas(1)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
norint gauti kitą elementą, iškiviestum next(i)&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Siekiant tobulumo |next=Įvadas į objektinį programavimą Python 3}}&lt;br /&gt;
{{BookCat}}&lt;/div&gt;</summary>
		<author><name>Juratevalat</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Siekiant_tobulumo&amp;diff=3860</id>
		<title>Python Vadovėlis/Siekiant tobulumo</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Siekiant_tobulumo&amp;diff=3860"/>
		<updated>2022-02-12T11:27:47Z</updated>

		<summary type="html">&lt;p&gt;Juratevalat: /* Klaidų „gaudymas“ su try */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== ...arba, kaip kovoti su klaidomis ===&lt;br /&gt;
=== Klaidų „gaudymas“ su &amp;lt;code&amp;gt;try&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Tarkime, kad jau turi tobulą programą, ji vykdoma nepriekaištingai. Tik viena maža detalė: programa užstringa naudotojui įvedus klaidingą įvestį. Nesijaudink, Pithon'as turi specialią valdymo struktūrą, kuri tau padės. Ji vadinama &amp;lt;code&amp;gt;try&amp;lt;/code&amp;gt; ir ji bando kažką padaryti. Programos su problema pavyzdys:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Norėdamas uždaryti programą, įvesk -1&amp;quot;)&lt;br /&gt;
skaicius = 1&lt;br /&gt;
while skaicius != -1:&lt;br /&gt;
   skaicius = int(input(&amp;quot;Įvesk skaičių: &amp;quot;))&lt;br /&gt;
   print(&amp;quot;Tu įvedei:&amp;quot;, skaicius)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jei įvesi &amp;lt;code&amp;gt;@#&amp;amp;&amp;lt;/code&amp;gt;, programa išves kažką tokio:&lt;br /&gt;
&lt;br /&gt;
 Traceback (most recent call last):&lt;br /&gt;
  File &amp;quot;bandyk.py&amp;quot;, line 4, in &amp;lt;module&amp;gt;&lt;br /&gt;
   skaicius = int(input(&amp;quot;Įvesk skaičių: &amp;quot;))&lt;br /&gt;
 ValueError: invalid literal for int() with base 10: '\\@#&amp;amp;'&lt;br /&gt;
&lt;br /&gt;
Kaip gali pastebėti, &amp;lt;code&amp;gt;int()&amp;lt;/code&amp;gt; funkcijai netinka įvestis &amp;lt;code&amp;gt;@#&amp;amp;&amp;lt;/code&amp;gt; (kaip ir turėtų būti). Paskutinė eilutė parodo, kokia yra problema: Python'as rado &amp;lt;code&amp;gt;ValueError&amp;lt;/code&amp;gt; klaidą. Kaip mūsų programa gali su tuo susitvarkyti? Visų pirma, tą kodo vietą, kurioje gali būti klaidų, turime įrašyti į &amp;lt;code&amp;gt;try&amp;lt;/code&amp;gt; bloką. Antra, turime pasakyti Python'ui, kaip tvarkytis su &amp;lt;code&amp;gt;ValueError&amp;lt;/code&amp;gt; klaidomis. Tai daro žemiau esanti programa:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Norėdamas uždaryti programą, įvesk -1&amp;quot;)&lt;br /&gt;
skaicius = 1&lt;br /&gt;
while skaicius != -1:&lt;br /&gt;
    try:&lt;br /&gt;
        skaicius = int(input(&amp;quot;Įvesk skaičių: &amp;quot;))&lt;br /&gt;
        print(&amp;quot;Tu įvedei:&amp;quot;, skaicius)&lt;br /&gt;
    except ValueError:&lt;br /&gt;
        print(&amp;quot;Tai buvo ne skaičius.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dabar, kai vykdome programą ir įvedame &amp;lt;code&amp;gt;@#&amp;amp;&amp;lt;/code&amp;gt;, programa mums pasako, kad &amp;lt;code&amp;gt;Tai buvo ne skaičius.&amp;lt;/code&amp;gt; ir toliau vykdo tai, ką turėtų.&lt;br /&gt;
&lt;br /&gt;
Kai tavo programa vis susiduria su ta pačia klaida, kodą apsupk &amp;lt;code&amp;gt;try&amp;lt;/code&amp;gt; bloku ir aprašyk būdą, kaip elgtis sutikus klaidą, &amp;lt;code&amp;gt;except&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Pratimai ===&lt;br /&gt;
Pataisyk telefono numerių programą ([[Vadovėlis/Žodynai|Žodynai]] skyriuje), kad ji neužstrigtų, jei naudotojas neįrašo jokios įvesties į meniu.&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;
def spausdink_meniu():&lt;br /&gt;
    print('1. Spausdink telefonų numerius')&lt;br /&gt;
    print('2. Pridėk telefono numerį')&lt;br /&gt;
    print('3. Pašalink telefono numerį')&lt;br /&gt;
    print('4. Ieškok telefono numerio')&lt;br /&gt;
    print('5. Išeik')&lt;br /&gt;
    print()&lt;br /&gt;
&lt;br /&gt;
numeriai = {}&lt;br /&gt;
meniu_pasirinkimas = 0&lt;br /&gt;
spausdink_meniu ()&lt;br /&gt;
while meniu_pasirinkimas != 5:&lt;br /&gt;
    try:&lt;br /&gt;
        meniu_pasirinkimas = int(input(&amp;quot;Įvesk skaičių (1-5): &amp;quot;))&lt;br /&gt;
        if meniu_pasirinkimas == 1:&lt;br /&gt;
            print(&amp;quot;Telefono numeriai: &amp;quot;)&lt;br /&gt;
            for x in numeriai.keys():&lt;br /&gt;
                print(&amp;quot;Vardas: &amp;quot;, x, &amp;quot;\tTelefono numeris:&amp;quot;, numeriai[x])&lt;br /&gt;
            print()&lt;br /&gt;
        elif meniu_pasirinkimas == 2:&lt;br /&gt;
            print(&amp;quot;Pridėk vardą ir telefono numerį&amp;quot;)&lt;br /&gt;
            vardas = input(&amp;quot;Vardas: &amp;quot;)&lt;br /&gt;
            numeris = input(&amp;quot;Telefono numeris: &amp;quot;)&lt;br /&gt;
            numeriai[vardas] = numeris &lt;br /&gt;
        elif meniu_pasirinkimas == 3:&lt;br /&gt;
            print(&amp;quot;Pašalink vardą ir telefono numerį&amp;quot;)&lt;br /&gt;
            vardas = input(&amp;quot;Vardas: &amp;quot;)&lt;br /&gt;
            if vardas in numeriai:&lt;br /&gt;
                del numeriai[vardas]&lt;br /&gt;
            else:&lt;br /&gt;
                print(vardas, &amp;quot; nebuvo rastas&amp;quot;)&lt;br /&gt;
        elif meniu_pasirinkimas == 4:&lt;br /&gt;
            print(&amp;quot;Ieškok telefono numerio&amp;quot;)&lt;br /&gt;
            vardas = input(&amp;quot;Vardas: &amp;quot;)&lt;br /&gt;
            if vardas in numeriai:&lt;br /&gt;
                print(&amp;quot;Telefono numeris yra &amp;quot;, numeriai[vardas])&lt;br /&gt;
            else:&lt;br /&gt;
                print(vardas, &amp;quot; nebuvo rastas&amp;quot;)&lt;br /&gt;
        elif meniu_pasirinkimas  != 5:&lt;br /&gt;
            print_menu()&lt;br /&gt;
    except ValueError:&lt;br /&gt;
        print(&amp;quot;Tai buvo ne skaičius.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
{{navigation |previous=Failų IO |next=Rekursija}}&lt;br /&gt;
{{BookCat}}&lt;/div&gt;</summary>
		<author><name>Juratevalat</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Fail%C5%B3_tvarkymas&amp;diff=3859</id>
		<title>Python Vadovėlis/Failų tvarkymas</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Fail%C5%B3_tvarkymas&amp;diff=3859"/>
		<updated>2022-02-12T11:24:18Z</updated>

		<summary type="html">&lt;p&gt;Juratevalat: /* Pažangesnis .txt failų naudojimas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Failų I/O ===&lt;br /&gt;
&lt;br /&gt;
Štai paprastas failo I/O (ang. Input/Output, lt. Įvesties/Išvesties) pavyzdys:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Rašyti į failą&lt;br /&gt;
with open(&amp;quot;testas.txt&amp;quot;, &amp;quot;wt&amp;quot;) as rašomas_failas:&lt;br /&gt;
    rašomas_failas.write(&amp;quot;Šis tekstas bus išsiųstas į failą\nPažiūrėk ir pamatysi!&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# Skaityti failą&lt;br /&gt;
with open(&amp;quot;testas.txt&amp;quot;, &amp;quot;rt&amp;quot;) as skaitomas_failas:&lt;br /&gt;
    tekstas = skaitomas_failas.read()&lt;br /&gt;
&lt;br /&gt;
print(tekstas)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Failo &amp;lt;code&amp;gt;testas.txt&amp;lt;/code&amp;gt; išvestis ir turinys yra:&lt;br /&gt;
&lt;br /&gt;
 Šis tekstas bus išsiųstas į failą&lt;br /&gt;
 Pažiūrėk ir pamatysi!&lt;br /&gt;
&lt;br /&gt;
Atkreipk dėmesį, kad programa sukūrė failą pavadinimu &amp;lt;code&amp;gt;testas.txt&amp;lt;/code&amp;gt; kataloge, iš kurio paleidai programą.  Eilutėje esantis &amp;lt;code&amp;gt;\n&amp;lt;/code&amp;gt; nurodo Python'ui toje vietoje peršokti į naują eilutę.  &lt;br /&gt;
&lt;br /&gt;
Apžvelkime failų I/O:&lt;br /&gt;
* Gauk failo objektą su funkcija &amp;lt;code&amp;gt;open&amp;lt;/code&amp;gt;&lt;br /&gt;
* Skaityk iš arba rašyk į failo objektą (priklausomai nuo to, kokiu režimu jis buvo atidarytas)&lt;br /&gt;
* Jeigu failui atidaryti nenaudojai funkcijos &amp;lt;code&amp;gt;with&amp;lt;/code&amp;gt;, turėsi jį uždaryti rankiniu būdu&lt;br /&gt;
&lt;br /&gt;
Pirmas žingsnis yra gauti failo objektą. Tai galima padaryti naudojant funkciją &amp;lt;code&amp;gt;open&amp;lt;/code&amp;gt;. Formatas yra &amp;lt;code&amp;gt;failo_objektas = open(failo_pavadinimas, režimas)&amp;lt;/code&amp;gt;, kur &amp;lt;code&amp;gt;failo_objektas&amp;lt;/code&amp;gt; yra kintamasis, į kurį reikia įdėti failo objektą, &amp;lt;code&amp;gt;failo_pavadinimas&amp;lt;/code&amp;gt; yra eilutė su failo pavadinimu, o &amp;lt;code&amp;gt;režimas&amp;lt;/code&amp;gt; yra &amp;lt;code&amp;gt;&amp;quot;rt&amp;quot;&amp;lt;/code&amp;gt;, kad (ang. ''r''ead) skaityti failą kaip ''t''ekstą arba &amp;lt;code&amp;gt;&amp;quot;wt&amp;quot;&amp;lt;/code&amp;gt; (''w''rite) rašytį į failą kaip ''t''ekstą (ir keletą kitų režimų, kuriuos čia praleisime). Toliau galima iškviesti failų objektų funkcijas. Dvi dažniausiai naudojamos funkcijos yra &amp;lt;code&amp;gt;read&amp;lt;/code&amp;gt; (skaityti) ir &amp;lt;code&amp;gt;write&amp;lt;/code&amp;gt; (rašyti). Funkcija &amp;lt;code&amp;gt;write&amp;lt;/code&amp;gt; prideda eilutę prie failo pabaigos. Funkcija &amp;lt;code&amp;gt;read&amp;lt;/code&amp;gt; nuskaito failo turinį ir grąžina jį kaip eilutę (kaip padaryta pavyzdyje). &lt;br /&gt;
&lt;br /&gt;
O dabar čia yra nauja telefono numerių programos versija, kurią jau sukūrei anksčiau:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def spausdink_numerius(numeriai):&lt;br /&gt;
    print(&amp;quot;Telefono numeriai:&amp;quot;)&lt;br /&gt;
    for k, v in numeriai.items():&lt;br /&gt;
        print(&amp;quot;Vardas:&amp;quot;, k, &amp;quot;\tTelefono numeris:&amp;quot;, v)&lt;br /&gt;
    print()&lt;br /&gt;
&lt;br /&gt;
def pridėk_numerį(numeriai, vardas, numeris):&lt;br /&gt;
    numeriai[vardas] = numeris&lt;br /&gt;
&lt;br /&gt;
def surask_numerį(numeriai, vardas):&lt;br /&gt;
    if vardas in numeriai:&lt;br /&gt;
        return &amp;quot;Telefono numeris yra &amp;quot; + numeriai[vardas]&lt;br /&gt;
    else:&lt;br /&gt;
        return vardas + &amp;quot; nebuvo rastas&amp;quot;&lt;br /&gt;
&lt;br /&gt;
def pašalink_numerį(numeriai, vardas):&lt;br /&gt;
    if vardas in numeriai:&lt;br /&gt;
        del numeriai[vardas]&lt;br /&gt;
    else:&lt;br /&gt;
        print(vardas,&amp;quot; nebuvo rastas&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
def įkelti_numerius(numeriai, failo_pavadinimas):&lt;br /&gt;
    skaitymo_failas = open(failo_pavadinimas, &amp;quot;rt&amp;quot;)&lt;br /&gt;
    while True:&lt;br /&gt;
        skaitoma_eilutė = skaitymo_failas.readline()&lt;br /&gt;
        if not skaitoma_eilutė:&lt;br /&gt;
            break&lt;br /&gt;
        skaitoma_eilutė = skaitoma_eilutė[:-1]&lt;br /&gt;
        vardas, numeris = skaitoma_eilutė.split(&amp;quot;,&amp;quot;)&lt;br /&gt;
        numeriai[vardas] = numeris&lt;br /&gt;
    skaitymo_failas.close()&lt;br /&gt;
&lt;br /&gt;
def išsaugoti_numerius(numeriai, failo_pavadinimas):&lt;br /&gt;
    išvesties_failas = open(failo_pavadinimas, &amp;quot;wt&amp;quot;)&lt;br /&gt;
    for k, v in numeriai.items():&lt;br /&gt;
        išvesties_failas.write(k + &amp;quot;,&amp;quot; + v + &amp;quot;\n&amp;quot;)&lt;br /&gt;
    išvesties_failas.close()&lt;br /&gt;
&lt;br /&gt;
def spausdink_meniu():&lt;br /&gt;
    print('1. Spausdink telefonų numerius')&lt;br /&gt;
    print('2. Pridėk telefono numerį')&lt;br /&gt;
    print('3. Pašalink telefono numerį')&lt;br /&gt;
    print('4. Ieškok telefono numerio')&lt;br /&gt;
    print('5. Įkelk telefono numerius')&lt;br /&gt;
    print('6. Išsaugok telefono numerius')&lt;br /&gt;
    print('7. Išeik')&lt;br /&gt;
    print()&lt;br /&gt;
&lt;br /&gt;
numeriai = {}&lt;br /&gt;
meniu_pasirinkimas = 0&lt;br /&gt;
spausdink_meniu()&lt;br /&gt;
while True:&lt;br /&gt;
    meniu_pasirinkimas = int(input(&amp;quot;Įvesk skaičių (1-7): &amp;quot;))&lt;br /&gt;
    if meniu_pasirinkimas == 1:&lt;br /&gt;
        spausdink_numerius(numeriai)&lt;br /&gt;
    elif meniu_pasirinkimas == 2:&lt;br /&gt;
        print(&amp;quot;Pridėk vardą ir telefono numerį&amp;quot;)&lt;br /&gt;
        vardas = input(&amp;quot;Vardas: &amp;quot;)&lt;br /&gt;
        numeris = input(&amp;quot;Telefono numeris: &amp;quot;)&lt;br /&gt;
        pridėk_numerį(numeriai, vardas, numeris)&lt;br /&gt;
    elif meniu_pasirinkimas == 3:&lt;br /&gt;
        print(&amp;quot;Pašalink vardą ir telefono numerį&amp;quot;)&lt;br /&gt;
        vardas = input(&amp;quot;Vardas: &amp;quot;)&lt;br /&gt;
        pašalink_numerį(numeriai, vardas)&lt;br /&gt;
    elif meniu_pasirinkimas == 4:&lt;br /&gt;
        print(&amp;quot;Ieškok telefono numerio&amp;quot;)&lt;br /&gt;
        vardas = input(&amp;quot;Vardas: &amp;quot;)&lt;br /&gt;
        print(surask_numerį(numeriai, vardas))&lt;br /&gt;
    elif meniu_pasirinkimas == 5:&lt;br /&gt;
        failo_pavadinimas = input(&amp;quot;Failo pavadinimas, kurį nori įkelti: &amp;quot;)&lt;br /&gt;
        įkelti_numerius(numeriai, failo_pavadinimas)&lt;br /&gt;
    elif meniu_pasirinkimas == 6:&lt;br /&gt;
        failo_pavadinimas = input(&amp;quot;Failo pavadinimas išsaugojimui: &amp;quot;)&lt;br /&gt;
        išsaugoti_numerius(numeriai, failo_pavadinimas)&lt;br /&gt;
    elif meniu_pasirinkimas == 7:&lt;br /&gt;
        break&lt;br /&gt;
    else:&lt;br /&gt;
        spausdink_meniu()&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Viso!&amp;quot;)  &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Gali pastebėti, kad dabar kodas papildomai išsaugo ir perskaito failus. Štai dviejų programos vykdymų išvestis:&lt;br /&gt;
&lt;br /&gt;
 1. Spausdink telefonų numerius&lt;br /&gt;
 2. Pridėk telefono numerį&lt;br /&gt;
 3. Pašalink telefono numerį&lt;br /&gt;
 4. Ieškok telefono numerio&lt;br /&gt;
 5. Įkelk telefono numerius&lt;br /&gt;
 6. Išsaugok telefono numerius&lt;br /&gt;
 7. Išeik&lt;br /&gt;
 &lt;br /&gt;
 Įvesk skaičių (1-7): '''2'''&lt;br /&gt;
 Pridėk vardą ir telefono numerį&lt;br /&gt;
 Vardas: '''Liepa'''&lt;br /&gt;
 Telefono numeris: '''1234'''&lt;br /&gt;
 Įvesk skaičių (1-7): '''2'''&lt;br /&gt;
 Pridėk vardą ir telefono numerį&lt;br /&gt;
 Vardas: '''Benas'''&lt;br /&gt;
 Telefono numeris: '''4321'''&lt;br /&gt;
 Įvesk skaičių (1-7): '''1'''&lt;br /&gt;
 Telefono numeriai:&lt;br /&gt;
 Vardas: Liepa     Telefono numeris: 1234&lt;br /&gt;
 Vardas: Benas     Telefono numeris: 4321&lt;br /&gt;
 &lt;br /&gt;
 Įvesk skaičių (1-7): '''6'''&lt;br /&gt;
 Failo pavadinimas išsaugojimui: '''numeriai.txt'''&lt;br /&gt;
 Įvesk skaičių (1-7): '''7'''&lt;br /&gt;
 Viso!&lt;br /&gt;
&lt;br /&gt;
 1. Spausdink telefonų numerius&lt;br /&gt;
 2. Pridėk telefono numerį&lt;br /&gt;
 3. Pašalink telefono numerį&lt;br /&gt;
 4. Ieškok telefono numerio&lt;br /&gt;
 5. Įkelk telefono numerius&lt;br /&gt;
 6. Išsaugok telefono numerius&lt;br /&gt;
 7. Išeik&lt;br /&gt;
 &lt;br /&gt;
 Įvesk skaičių (1-7): '''5'''&lt;br /&gt;
 Failo pavadinimas, kurį nori įkelti: '''numeriai.txt'''&lt;br /&gt;
 Įvesk skaičių (1-7): '''1'''&lt;br /&gt;
 Telefono numeriai:&lt;br /&gt;
 Vardas: Liepa     Telefono numeris: 1234&lt;br /&gt;
 Vardas: Benas     Telefono numeris: 4321&lt;br /&gt;
 &lt;br /&gt;
 Įvesk skaičių (1-7): '''7'''&lt;br /&gt;
 Viso!&lt;br /&gt;
&lt;br /&gt;
Naujos šios programos dalys yra:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def įkelti_numerius(numeriai, failo_pavadinimas):&lt;br /&gt;
    skaitymo_failas = open(failo_pavadinimas, &amp;quot;rt&amp;quot;)&lt;br /&gt;
    while True:&lt;br /&gt;
        skaitoma_eilutė = skaitymo_failas.readline()&lt;br /&gt;
        if not skaitoma_eilutė:&lt;br /&gt;
            break&lt;br /&gt;
        skaitoma_eilutė = skaitoma_eilutė[:-1]&lt;br /&gt;
        vardas, numeris = skaitoma_eilutė.split(&amp;quot;,&amp;quot;)&lt;br /&gt;
        numeriai[vardas] = numeris&lt;br /&gt;
    skaitymo_failas.close()&lt;br /&gt;
&lt;br /&gt;
def išsaugoti_numerius(numeriai, failo_pavadinimas):&lt;br /&gt;
    išvesties_failas = open(failo_pavadinimas, &amp;quot;wt&amp;quot;)&lt;br /&gt;
    for k, v in numeriai.items():&lt;br /&gt;
        išvesties_failas.write(k + &amp;quot;,&amp;quot; + v + &amp;quot;\n&amp;quot;)&lt;br /&gt;
    išvesties_failas.close()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pirmiausia pažiūrėk į programos išsaugojimo dalį. Visų pirma, sukuriamas failo objektas su komanda &amp;lt;code&amp;gt;open(failo_pavadinimas, &amp;quot;wt&amp;quot;)&amp;lt;/code&amp;gt;. Toliau sukuriama eilutė kiekvienam telefono numeriui su komanda &amp;lt;code&amp;gt;išvesties_failas.write(k + &amp;quot;,&amp;quot; + v + &amp;quot;\n&amp;quot;)&amp;lt;/code&amp;gt;. Tai išrašo eilutę, kurioje yra vardas, kablelis, telefono numeris, o po jos rašoma nauja eilutė.&lt;br /&gt;
&lt;br /&gt;
Failo skaitymo dalis yra šiek tiek sudėtingesnė. Ji prasideda failo objekto gavimu. Tada ji naudoja &amp;lt;code&amp;gt;while True:&amp;lt;/code&amp;gt; ciklą, kad tęstųsi ciklas tol, kol bus aptikta komanda &amp;lt;code&amp;gt;break&amp;lt;/code&amp;gt;. Komanda &amp;lt;code&amp;gt;skaitoma_eilutė = skaitymo_failas.readline()&amp;lt;/code&amp;gt; perskaito pirmą eilutę ir priskiria kintamajam &amp;lt;code&amp;gt;skaitome_eilutė&amp;lt;/code&amp;gt;. Pasiekus failo pabaigą, funkcija &amp;lt;code&amp;gt;readline&amp;lt;/code&amp;gt; grąžins tuščią eilutę. Sąlyginis sakinys &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; tai patikrina ir panaudojant komandą &amp;lt;code&amp;gt;break&amp;lt;/code&amp;gt; nutraukia &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; ciklą. Funkcija &amp;lt;code&amp;gt;readline&amp;lt;/code&amp;gt; perskaito ir grąžina vieną eilutę kartu su jos pabaigos simboliu. Tai yra tam, kad būtų galima spręsti ar tai yra tik tuščia eilutė, ar jau failo pabaiga. Taigi turime atsikratyti to paskutinio eilutės pabaigos simbolio. Komanda &amp;lt;code&amp;gt;skaitoma_eilutė = skaitoma_eilutė[:-1]&amp;lt;/code&amp;gt; tai padaro už mus, išmesdama paskutinį simbolį. Toliau eilutė &amp;lt;code&amp;gt;vardas, numeris = skaitoma_eilutė.split(&amp;quot;,&amp;quot;)&amp;lt;/code&amp;gt; padalija eilutę ties kableliu į vardą ir telefono numerį ir visa tai įtraukiama į &amp;lt;code&amp;gt;numeriai&amp;lt;/code&amp;gt; žodyną.&lt;br /&gt;
&lt;br /&gt;
=== Pažangesnis .txt failų naudojimas ===&lt;br /&gt;
&lt;br /&gt;
Galbūt tau kyla toks klausimas: „Aš žinau, kaip skaityti ir rašyti tekstinį failą, bet ką daryti, jei noriu spausdintuvu atspausdinti failo duomenis neatidarant jokios programos?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Yra keletas skirtingų būdų, kaip tai padaryti. Iš tikrųjų, lengviausias būdas atidaro kitą programą, tačiau viskuo pasirūpina Python'o kodas ir vartotojui nereikia pačiam failo atidarinėti ir spausdinti. Šis metodas apima kitos programos subproceso (arba antrinis procesas; biblioteka 'subprocess') iškvietimą. &lt;br /&gt;
&lt;br /&gt;
Prisimeni failą, į kurį įrašėme išvestį aukščiau esančioje programoje? Panaudokime tą failą.&lt;br /&gt;
Turėk omenyje, kad norint išvengti klaidų, ši programa naudoja sąvokas iš kito skyriaus. Nedvejodamas gali dar kartą peržiūrėti šį pavyzdį po kito skyriaus.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Python&amp;quot;&amp;gt;&lt;br /&gt;
import subprocess&lt;br /&gt;
def pagrindinis():&lt;br /&gt;
    try:&lt;br /&gt;
        print(&amp;quot;Ši maža programa iškviečia spausdinimo funkciją Notepad programoje&amp;quot;)&lt;br /&gt;
        #Atspausdinkime failą, kurį sukūrėme aukščiau esančioje programoje&lt;br /&gt;
        subprocess.call(['notepad','/p','numeriai.txt'])&lt;br /&gt;
    except WindowsError:&lt;br /&gt;
        print(&amp;quot;Pakviesto subproceso nėra arba jo negalima iškviesti.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
pagrindinis()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;subprocess.call&amp;lt;/code&amp;gt; turi tris argumentus. Pirmasis argumentas šio pavyzdžio kontekste turėtų būti programos pavadinimas, iš kurios nori iškviesti spausdinimo subprocesą. Antrasis argumentas turėtų būti konkretus tos programos subprocesas. Kad būtų paprasčiau, tiesiog suprask, kad šioje programoje &amp;lt;code&amp;gt;'/p'&amp;lt;/code&amp;gt; yra subprocesas, naudojamas norint pasiekti spausdintuvą per nurodytą programą. Paskutinis argumentas turėtų būti failo pavadinimas, kurį norite siųsti į spausdinimo subprocesą. Šiuo atveju tai yra tas pats failas, naudotas anksčiau šiame skyriuje.&lt;br /&gt;
&lt;br /&gt;
=== Pratimai ===&lt;br /&gt;
Dabar pakeisk pažymių programą iš skyriaus [[Vadovėlis/Žodynai|Žodynai]], kad ji naudotų failus mokinių pažymiams saugoti.&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;
užduotys = ['nd sk 1', 'nd sk 2', 'viktorina   ', 'nd sk 3', 'testas']&lt;br /&gt;
mokiniai = { }&lt;br /&gt;
&lt;br /&gt;
def įkelti_pažymius(pažymių_failas):&lt;br /&gt;
    įvesties_failas = open(pažymių_failas, &amp;quot;r&amp;quot;)&lt;br /&gt;
    pažymiai = [ ]&lt;br /&gt;
    while True:&lt;br /&gt;
        mokinys_ir_pažymys = įvesties_failas.readline()&lt;br /&gt;
        mokinys_ir_pažymys = mokinys_ir_pažymys[:-1]&lt;br /&gt;
        if not mokinys_ir_pažymys:&lt;br /&gt;
            break&lt;br /&gt;
        else:&lt;br /&gt;
            mokinio_vardas, mokinio_pažymiai = mokinys_ir_pažymys.split(&amp;quot;,&amp;quot;)&lt;br /&gt;
            mokinio_pažymiai = mokinio_pažymiai.split(&amp;quot; &amp;quot;)&lt;br /&gt;
            mokiniai[mokinio_vardas] = mokinio_pažymiai&lt;br /&gt;
    įvesties_failas.close()&lt;br /&gt;
    print(&amp;quot;Pažymiai įkelti.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
def išsaugoti_pažymius(pažymių_failas):&lt;br /&gt;
    išvesties_failas = open(pažymių_failas, &amp;quot;w&amp;quot;)&lt;br /&gt;
    for k, v in mokiniai.items():&lt;br /&gt;
        išvesties_failas.write(k + &amp;quot;,&amp;quot;)&lt;br /&gt;
        for x in v:&lt;br /&gt;
            išvesties_failas.write(str(x) + &amp;quot; &amp;quot;)&lt;br /&gt;
        išvesties_failas.write(&amp;quot;\n&amp;quot;)&lt;br /&gt;
    išvesties_failas.close()&lt;br /&gt;
    print(&amp;quot;Pažymiai išsaugoti.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
def spausdink_meniu():&lt;br /&gt;
    print(&amp;quot;1. Pridėk mokinį&amp;quot;)&lt;br /&gt;
    print(&amp;quot;2. Pašalink mokinį&amp;quot;)&lt;br /&gt;
    print(&amp;quot;3. Įkrauti pažymius&amp;quot;)&lt;br /&gt;
    print(&amp;quot;4. Įrašyk pažymį&amp;quot;)&lt;br /&gt;
    print(&amp;quot;5. Spausdink pažymius&amp;quot;)&lt;br /&gt;
    print(&amp;quot;6. Įšsaugoti pažymius&amp;quot;)&lt;br /&gt;
    print(&amp;quot;7. Spausdink meniu&amp;quot;)&lt;br /&gt;
    print(&amp;quot;9. Išeik&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
def spausdink_visus_pažymius():&lt;br /&gt;
    if mokiniai:&lt;br /&gt;
        raktai = sorted(mokiniai.keys())&lt;br /&gt;
        print('\t', end=' ')&lt;br /&gt;
        for x in užduotys:&lt;br /&gt;
            print(x, '\t', end=' ')&lt;br /&gt;
        print()&lt;br /&gt;
        for x in raktai:&lt;br /&gt;
            print(x, '\t', end=' ')&lt;br /&gt;
            pažymiai = mokiniai[x]&lt;br /&gt;
            spausdink_pažymius(pažymiai)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Neradau pažymių spausdinimui.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
def spausdink_pažymius(pažymiai):&lt;br /&gt;
    for x in pažymiai:&lt;br /&gt;
        print(x, '\t', end=' ')&lt;br /&gt;
    print()&lt;br /&gt;
&lt;br /&gt;
spausdink_meniu()&lt;br /&gt;
meniu_pasirinkimas = 0&lt;br /&gt;
while meniu_pasirinkimas != 9:&lt;br /&gt;
    print()&lt;br /&gt;
    meniu_pasirinkimas = int(input(&amp;quot;Meniu pasirinkimas: &amp;quot;))&lt;br /&gt;
    if meniu_pasirinkimas == 1:&lt;br /&gt;
        vardas = input(&amp;quot;Pridėk mokinį: &amp;quot;)&lt;br /&gt;
        mokiniai[vardas] = [0] * len(užduotys)&lt;br /&gt;
    elif meniu_pasirinkimas == 2:&lt;br /&gt;
        vardas = input(&amp;quot;Pašalink mokinį: &amp;quot;)&lt;br /&gt;
        if vardas in mokiniai:&lt;br /&gt;
            del mokiniai[vardas]&lt;br /&gt;
        else:&lt;br /&gt;
            print(&amp;quot;Mokinys vardu:&amp;quot;, vardas, &amp;quot; nerastas.&amp;quot;)&lt;br /&gt;
    elif meniu_pasirinkimas == 3:&lt;br /&gt;
        pažymių_failas = input(&amp;quot;Įkrauti pažymius iš kokio failo? &amp;quot;)&lt;br /&gt;
        įkelti_pažymius(pažymių_failas)&lt;br /&gt;
    elif meniu_pasirinkimas == 4:&lt;br /&gt;
        print(&amp;quot;Įrašyk pažymį&amp;quot;)&lt;br /&gt;
        vardas = input(&amp;quot;Mokinys: &amp;quot;)&lt;br /&gt;
        if vardas in mokiniai:&lt;br /&gt;
            pažymiai = mokiniai[vardas]&lt;br /&gt;
            print(&amp;quot;Įrašyk mokinio pažymį&amp;quot;)&lt;br /&gt;
            print(&amp;quot;Įrašyk 0 (nulį), kad išeitum&amp;quot;)&lt;br /&gt;
            for i,x in enumerate(užduotys):&lt;br /&gt;
                print(i + 1, x, '\t', end=' ')&lt;br /&gt;
            print()&lt;br /&gt;
            spausdink_pažymius(pažymiai)&lt;br /&gt;
            kuris = 1234&lt;br /&gt;
            while kuris != -1:&lt;br /&gt;
                kuris = int(input(&amp;quot;Pažymys, kurį nori pakeisti: &amp;quot;))&lt;br /&gt;
                kuris -= 1&lt;br /&gt;
                if 0 &amp;lt;= kuris &amp;lt; len(pažymiai):&lt;br /&gt;
                    pažymys = int(input(&amp;quot;Pažymys: &amp;quot;))&lt;br /&gt;
                    pažymiai[kuris] = pažymys&lt;br /&gt;
                elif kuris != -1:&lt;br /&gt;
                    print(&amp;quot;Klaidingas pažymys&amp;quot;)&lt;br /&gt;
        else:&lt;br /&gt;
            print(&amp;quot;Mokinys nerastas&amp;quot;)&lt;br /&gt;
    elif meniu_pasirinkimas == 5:&lt;br /&gt;
        spausdink_visus_pažymius()&lt;br /&gt;
    elif meniu_pasirinkimas == 6:&lt;br /&gt;
        pažymių_failas = input(&amp;quot;Į kokį failą išsaugoti pažymius? &amp;quot;)&lt;br /&gt;
        išsaugoti_pažymius(pažymių_failas)&lt;br /&gt;
    elif meniu_pasirinkimas != 9:&lt;br /&gt;
        spausdink_meniu()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Daugiau apie tekstines eilutes |next=Siekiant tobulumo}}&lt;br /&gt;
{{BookCat}}&lt;/div&gt;</summary>
		<author><name>Juratevalat</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Fail%C5%B3_tvarkymas&amp;diff=3858</id>
		<title>Python Vadovėlis/Failų tvarkymas</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Fail%C5%B3_tvarkymas&amp;diff=3858"/>
		<updated>2022-02-12T11:10:25Z</updated>

		<summary type="html">&lt;p&gt;Juratevalat: /* Failų I/O */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Failų I/O ===&lt;br /&gt;
&lt;br /&gt;
Štai paprastas failo I/O (ang. Input/Output, lt. Įvesties/Išvesties) pavyzdys:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Rašyti į failą&lt;br /&gt;
with open(&amp;quot;testas.txt&amp;quot;, &amp;quot;wt&amp;quot;) as rašomas_failas:&lt;br /&gt;
    rašomas_failas.write(&amp;quot;Šis tekstas bus išsiųstas į failą\nPažiūrėk ir pamatysi!&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# Skaityti failą&lt;br /&gt;
with open(&amp;quot;testas.txt&amp;quot;, &amp;quot;rt&amp;quot;) as skaitomas_failas:&lt;br /&gt;
    tekstas = skaitomas_failas.read()&lt;br /&gt;
&lt;br /&gt;
print(tekstas)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Failo &amp;lt;code&amp;gt;testas.txt&amp;lt;/code&amp;gt; išvestis ir turinys yra:&lt;br /&gt;
&lt;br /&gt;
 Šis tekstas bus išsiųstas į failą&lt;br /&gt;
 Pažiūrėk ir pamatysi!&lt;br /&gt;
&lt;br /&gt;
Atkreipk dėmesį, kad programa sukūrė failą pavadinimu &amp;lt;code&amp;gt;testas.txt&amp;lt;/code&amp;gt; kataloge, iš kurio paleidai programą.  Eilutėje esantis &amp;lt;code&amp;gt;\n&amp;lt;/code&amp;gt; nurodo Python'ui toje vietoje peršokti į naują eilutę.  &lt;br /&gt;
&lt;br /&gt;
Apžvelkime failų I/O:&lt;br /&gt;
* Gauk failo objektą su funkcija &amp;lt;code&amp;gt;open&amp;lt;/code&amp;gt;&lt;br /&gt;
* Skaityk iš arba rašyk į failo objektą (priklausomai nuo to, kokiu režimu jis buvo atidarytas)&lt;br /&gt;
* Jeigu failui atidaryti nenaudojai funkcijos &amp;lt;code&amp;gt;with&amp;lt;/code&amp;gt;, turėsi jį uždaryti rankiniu būdu&lt;br /&gt;
&lt;br /&gt;
Pirmas žingsnis yra gauti failo objektą. Tai galima padaryti naudojant funkciją &amp;lt;code&amp;gt;open&amp;lt;/code&amp;gt;. Formatas yra &amp;lt;code&amp;gt;failo_objektas = open(failo_pavadinimas, režimas)&amp;lt;/code&amp;gt;, kur &amp;lt;code&amp;gt;failo_objektas&amp;lt;/code&amp;gt; yra kintamasis, į kurį reikia įdėti failo objektą, &amp;lt;code&amp;gt;failo_pavadinimas&amp;lt;/code&amp;gt; yra eilutė su failo pavadinimu, o &amp;lt;code&amp;gt;režimas&amp;lt;/code&amp;gt; yra &amp;lt;code&amp;gt;&amp;quot;rt&amp;quot;&amp;lt;/code&amp;gt;, kad (ang. ''r''ead) skaityti failą kaip ''t''ekstą arba &amp;lt;code&amp;gt;&amp;quot;wt&amp;quot;&amp;lt;/code&amp;gt; (''w''rite) rašytį į failą kaip ''t''ekstą (ir keletą kitų režimų, kuriuos čia praleisime). Toliau galima iškviesti failų objektų funkcijas. Dvi dažniausiai naudojamos funkcijos yra &amp;lt;code&amp;gt;read&amp;lt;/code&amp;gt; (skaityti) ir &amp;lt;code&amp;gt;write&amp;lt;/code&amp;gt; (rašyti). Funkcija &amp;lt;code&amp;gt;write&amp;lt;/code&amp;gt; prideda eilutę prie failo pabaigos. Funkcija &amp;lt;code&amp;gt;read&amp;lt;/code&amp;gt; nuskaito failo turinį ir grąžina jį kaip eilutę (kaip padaryta pavyzdyje). &lt;br /&gt;
&lt;br /&gt;
O dabar čia yra nauja telefono numerių programos versija, kurią jau sukūrei anksčiau:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def spausdink_numerius(numeriai):&lt;br /&gt;
    print(&amp;quot;Telefono numeriai:&amp;quot;)&lt;br /&gt;
    for k, v in numeriai.items():&lt;br /&gt;
        print(&amp;quot;Vardas:&amp;quot;, k, &amp;quot;\tTelefono numeris:&amp;quot;, v)&lt;br /&gt;
    print()&lt;br /&gt;
&lt;br /&gt;
def pridėk_numerį(numeriai, vardas, numeris):&lt;br /&gt;
    numeriai[vardas] = numeris&lt;br /&gt;
&lt;br /&gt;
def surask_numerį(numeriai, vardas):&lt;br /&gt;
    if vardas in numeriai:&lt;br /&gt;
        return &amp;quot;Telefono numeris yra &amp;quot; + numeriai[vardas]&lt;br /&gt;
    else:&lt;br /&gt;
        return vardas + &amp;quot; nebuvo rastas&amp;quot;&lt;br /&gt;
&lt;br /&gt;
def pašalink_numerį(numeriai, vardas):&lt;br /&gt;
    if vardas in numeriai:&lt;br /&gt;
        del numeriai[vardas]&lt;br /&gt;
    else:&lt;br /&gt;
        print(vardas,&amp;quot; nebuvo rastas&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
def įkelti_numerius(numeriai, failo_pavadinimas):&lt;br /&gt;
    skaitymo_failas = open(failo_pavadinimas, &amp;quot;rt&amp;quot;)&lt;br /&gt;
    while True:&lt;br /&gt;
        skaitoma_eilutė = skaitymo_failas.readline()&lt;br /&gt;
        if not skaitoma_eilutė:&lt;br /&gt;
            break&lt;br /&gt;
        skaitoma_eilutė = skaitoma_eilutė[:-1]&lt;br /&gt;
        vardas, numeris = skaitoma_eilutė.split(&amp;quot;,&amp;quot;)&lt;br /&gt;
        numeriai[vardas] = numeris&lt;br /&gt;
    skaitymo_failas.close()&lt;br /&gt;
&lt;br /&gt;
def išsaugoti_numerius(numeriai, failo_pavadinimas):&lt;br /&gt;
    išvesties_failas = open(failo_pavadinimas, &amp;quot;wt&amp;quot;)&lt;br /&gt;
    for k, v in numeriai.items():&lt;br /&gt;
        išvesties_failas.write(k + &amp;quot;,&amp;quot; + v + &amp;quot;\n&amp;quot;)&lt;br /&gt;
    išvesties_failas.close()&lt;br /&gt;
&lt;br /&gt;
def spausdink_meniu():&lt;br /&gt;
    print('1. Spausdink telefonų numerius')&lt;br /&gt;
    print('2. Pridėk telefono numerį')&lt;br /&gt;
    print('3. Pašalink telefono numerį')&lt;br /&gt;
    print('4. Ieškok telefono numerio')&lt;br /&gt;
    print('5. Įkelk telefono numerius')&lt;br /&gt;
    print('6. Išsaugok telefono numerius')&lt;br /&gt;
    print('7. Išeik')&lt;br /&gt;
    print()&lt;br /&gt;
&lt;br /&gt;
numeriai = {}&lt;br /&gt;
meniu_pasirinkimas = 0&lt;br /&gt;
spausdink_meniu()&lt;br /&gt;
while True:&lt;br /&gt;
    meniu_pasirinkimas = int(input(&amp;quot;Įvesk skaičių (1-7): &amp;quot;))&lt;br /&gt;
    if meniu_pasirinkimas == 1:&lt;br /&gt;
        spausdink_numerius(numeriai)&lt;br /&gt;
    elif meniu_pasirinkimas == 2:&lt;br /&gt;
        print(&amp;quot;Pridėk vardą ir telefono numerį&amp;quot;)&lt;br /&gt;
        vardas = input(&amp;quot;Vardas: &amp;quot;)&lt;br /&gt;
        numeris = input(&amp;quot;Telefono numeris: &amp;quot;)&lt;br /&gt;
        pridėk_numerį(numeriai, vardas, numeris)&lt;br /&gt;
    elif meniu_pasirinkimas == 3:&lt;br /&gt;
        print(&amp;quot;Pašalink vardą ir telefono numerį&amp;quot;)&lt;br /&gt;
        vardas = input(&amp;quot;Vardas: &amp;quot;)&lt;br /&gt;
        pašalink_numerį(numeriai, vardas)&lt;br /&gt;
    elif meniu_pasirinkimas == 4:&lt;br /&gt;
        print(&amp;quot;Ieškok telefono numerio&amp;quot;)&lt;br /&gt;
        vardas = input(&amp;quot;Vardas: &amp;quot;)&lt;br /&gt;
        print(surask_numerį(numeriai, vardas))&lt;br /&gt;
    elif meniu_pasirinkimas == 5:&lt;br /&gt;
        failo_pavadinimas = input(&amp;quot;Failo pavadinimas, kurį nori įkelti: &amp;quot;)&lt;br /&gt;
        įkelti_numerius(numeriai, failo_pavadinimas)&lt;br /&gt;
    elif meniu_pasirinkimas == 6:&lt;br /&gt;
        failo_pavadinimas = input(&amp;quot;Failo pavadinimas išsaugojimui: &amp;quot;)&lt;br /&gt;
        išsaugoti_numerius(numeriai, failo_pavadinimas)&lt;br /&gt;
    elif meniu_pasirinkimas == 7:&lt;br /&gt;
        break&lt;br /&gt;
    else:&lt;br /&gt;
        spausdink_meniu()&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Viso!&amp;quot;)  &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Gali pastebėti, kad dabar kodas papildomai išsaugo ir perskaito failus. Štai dviejų programos vykdymų išvestis:&lt;br /&gt;
&lt;br /&gt;
 1. Spausdink telefonų numerius&lt;br /&gt;
 2. Pridėk telefono numerį&lt;br /&gt;
 3. Pašalink telefono numerį&lt;br /&gt;
 4. Ieškok telefono numerio&lt;br /&gt;
 5. Įkelk telefono numerius&lt;br /&gt;
 6. Išsaugok telefono numerius&lt;br /&gt;
 7. Išeik&lt;br /&gt;
 &lt;br /&gt;
 Įvesk skaičių (1-7): '''2'''&lt;br /&gt;
 Pridėk vardą ir telefono numerį&lt;br /&gt;
 Vardas: '''Liepa'''&lt;br /&gt;
 Telefono numeris: '''1234'''&lt;br /&gt;
 Įvesk skaičių (1-7): '''2'''&lt;br /&gt;
 Pridėk vardą ir telefono numerį&lt;br /&gt;
 Vardas: '''Benas'''&lt;br /&gt;
 Telefono numeris: '''4321'''&lt;br /&gt;
 Įvesk skaičių (1-7): '''1'''&lt;br /&gt;
 Telefono numeriai:&lt;br /&gt;
 Vardas: Liepa     Telefono numeris: 1234&lt;br /&gt;
 Vardas: Benas     Telefono numeris: 4321&lt;br /&gt;
 &lt;br /&gt;
 Įvesk skaičių (1-7): '''6'''&lt;br /&gt;
 Failo pavadinimas išsaugojimui: '''numeriai.txt'''&lt;br /&gt;
 Įvesk skaičių (1-7): '''7'''&lt;br /&gt;
 Viso!&lt;br /&gt;
&lt;br /&gt;
 1. Spausdink telefonų numerius&lt;br /&gt;
 2. Pridėk telefono numerį&lt;br /&gt;
 3. Pašalink telefono numerį&lt;br /&gt;
 4. Ieškok telefono numerio&lt;br /&gt;
 5. Įkelk telefono numerius&lt;br /&gt;
 6. Išsaugok telefono numerius&lt;br /&gt;
 7. Išeik&lt;br /&gt;
 &lt;br /&gt;
 Įvesk skaičių (1-7): '''5'''&lt;br /&gt;
 Failo pavadinimas, kurį nori įkelti: '''numeriai.txt'''&lt;br /&gt;
 Įvesk skaičių (1-7): '''1'''&lt;br /&gt;
 Telefono numeriai:&lt;br /&gt;
 Vardas: Liepa     Telefono numeris: 1234&lt;br /&gt;
 Vardas: Benas     Telefono numeris: 4321&lt;br /&gt;
 &lt;br /&gt;
 Įvesk skaičių (1-7): '''7'''&lt;br /&gt;
 Viso!&lt;br /&gt;
&lt;br /&gt;
Naujos šios programos dalys yra:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def įkelti_numerius(numeriai, failo_pavadinimas):&lt;br /&gt;
    skaitymo_failas = open(failo_pavadinimas, &amp;quot;rt&amp;quot;)&lt;br /&gt;
    while True:&lt;br /&gt;
        skaitoma_eilutė = skaitymo_failas.readline()&lt;br /&gt;
        if not skaitoma_eilutė:&lt;br /&gt;
            break&lt;br /&gt;
        skaitoma_eilutė = skaitoma_eilutė[:-1]&lt;br /&gt;
        vardas, numeris = skaitoma_eilutė.split(&amp;quot;,&amp;quot;)&lt;br /&gt;
        numeriai[vardas] = numeris&lt;br /&gt;
    skaitymo_failas.close()&lt;br /&gt;
&lt;br /&gt;
def išsaugoti_numerius(numeriai, failo_pavadinimas):&lt;br /&gt;
    išvesties_failas = open(failo_pavadinimas, &amp;quot;wt&amp;quot;)&lt;br /&gt;
    for k, v in numeriai.items():&lt;br /&gt;
        išvesties_failas.write(k + &amp;quot;,&amp;quot; + v + &amp;quot;\n&amp;quot;)&lt;br /&gt;
    išvesties_failas.close()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pirmiausia pažiūrėk į programos išsaugojimo dalį. Visų pirma, sukuriamas failo objektas su komanda &amp;lt;code&amp;gt;open(failo_pavadinimas, &amp;quot;wt&amp;quot;)&amp;lt;/code&amp;gt;. Toliau sukuriama eilutė kiekvienam telefono numeriui su komanda &amp;lt;code&amp;gt;išvesties_failas.write(k + &amp;quot;,&amp;quot; + v + &amp;quot;\n&amp;quot;)&amp;lt;/code&amp;gt;. Tai išrašo eilutę, kurioje yra vardas, kablelis, telefono numeris, o po jos rašoma nauja eilutė.&lt;br /&gt;
&lt;br /&gt;
Failo skaitymo dalis yra šiek tiek sudėtingesnė. Ji prasideda failo objekto gavimu. Tada ji naudoja &amp;lt;code&amp;gt;while True:&amp;lt;/code&amp;gt; ciklą, kad tęstųsi ciklas tol, kol bus aptikta komanda &amp;lt;code&amp;gt;break&amp;lt;/code&amp;gt;. Komanda &amp;lt;code&amp;gt;skaitoma_eilutė = skaitymo_failas.readline()&amp;lt;/code&amp;gt; perskaito pirmą eilutę ir priskiria kintamajam &amp;lt;code&amp;gt;skaitome_eilutė&amp;lt;/code&amp;gt;. Pasiekus failo pabaigą, funkcija &amp;lt;code&amp;gt;readline&amp;lt;/code&amp;gt; grąžins tuščią eilutę. Sąlyginis sakinys &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; tai patikrina ir panaudojant komandą &amp;lt;code&amp;gt;break&amp;lt;/code&amp;gt; nutraukia &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; ciklą. Funkcija &amp;lt;code&amp;gt;readline&amp;lt;/code&amp;gt; perskaito ir grąžina vieną eilutę kartu su jos pabaigos simboliu. Tai yra tam, kad būtų galima spręsti ar tai yra tik tuščia eilutė, ar jau failo pabaiga. Taigi turime atsikratyti to paskutinio eilutės pabaigos simbolio. Komanda &amp;lt;code&amp;gt;skaitoma_eilutė = skaitoma_eilutė[:-1]&amp;lt;/code&amp;gt; tai padaro už mus, išmesdama paskutinį simbolį. Toliau eilutė &amp;lt;code&amp;gt;vardas, numeris = skaitoma_eilutė.split(&amp;quot;,&amp;quot;)&amp;lt;/code&amp;gt; padalija eilutę ties kableliu į vardą ir telefono numerį ir visa tai įtraukiama į &amp;lt;code&amp;gt;numeriai&amp;lt;/code&amp;gt; žodyną.&lt;br /&gt;
&lt;br /&gt;
=== Pažangesnis .txt failų naudojimas ===&lt;br /&gt;
&lt;br /&gt;
Galbūt tau kyla toks klausimas: „Aš žinau, kaip skaityti ir rašyti tekstinį failą, bet ką daryti, jei noriu atspausdinti failą neatidaręs kitos programos?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Yra keletas skirtingų būdų, kaip tai padaryti. Iš tikrųjų, lengviausias būdas atidaro kitą programą, tačiau viskuo pasirūpina Python'o kodas ir vartotojui nereikia nurodyti spausdinamo failo. Šis metodas apima kitos programos subproceso (arba antrinis procesas; biblioteka 'subprocess') iškvietimą. &lt;br /&gt;
&lt;br /&gt;
Prisimeni failą, į kurį įrašėme išvestį aukščiau esančioje programoje? Panaudokime tą failą.&lt;br /&gt;
Turėk omenyje, kad norint išvengti klaidų, ši programa naudoja sąvokas iš kito skyriaus. Nedvejodamas gali dar kartą peržiūrėti šį pavyzdį po kito skyriaus.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Python&amp;quot;&amp;gt;&lt;br /&gt;
import subprocess&lt;br /&gt;
def pagrindinis():&lt;br /&gt;
    try:&lt;br /&gt;
        print(&amp;quot;Ši maža programa iškviečia spausdinimo funkciją Notepad programoje&amp;quot;)&lt;br /&gt;
        #Atspausdinkime failą, kurį sukūrėme aukščiau esančioje programoje&lt;br /&gt;
        subprocess.call(['notepad','/p','numeriai.txt'])&lt;br /&gt;
    except WindowsError:&lt;br /&gt;
        print(&amp;quot;Pakviesto subproceso nėra arba jo negalima iškviesti.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
pagrindinis()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;subprocess.call&amp;lt;/code&amp;gt; turi tris argumentus. Pirmasis argumentas šio pavyzdžio kontekste turėtų būti programos pavadinimas, iš kurios nori iškviesti spausdinimo subprocesą. Antrasis argumentas turėtų būti konkretus tos programos subprocesas. Kad būtų paprasčiau, tiesiog suprask, kad šioje programoje &amp;lt;code&amp;gt;'/p'&amp;lt;/code&amp;gt; yra subprocesas, naudojamas norint pasiekti spausdintuvą per nurodytą programą. Paskutinis argumentas turėtų būti failo pavadinimas, kurį norite siųsti į spausdinimo subprocesą. Šiuo atveju tai yra tas pats failas, naudotas anksčiau šiame skyriuje.&lt;br /&gt;
&lt;br /&gt;
=== Pratimai ===&lt;br /&gt;
Dabar pakeisk pažymių programą iš skyriaus [[Vadovėlis/Žodynai|Žodynai]], kad ji naudotų failus mokinių pažymiams saugoti.&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;
užduotys = ['nd sk 1', 'nd sk 2', 'viktorina   ', 'nd sk 3', 'testas']&lt;br /&gt;
mokiniai = { }&lt;br /&gt;
&lt;br /&gt;
def įkelti_pažymius(pažymių_failas):&lt;br /&gt;
    įvesties_failas = open(pažymių_failas, &amp;quot;r&amp;quot;)&lt;br /&gt;
    pažymiai = [ ]&lt;br /&gt;
    while True:&lt;br /&gt;
        mokinys_ir_pažymys = įvesties_failas.readline()&lt;br /&gt;
        mokinys_ir_pažymys = mokinys_ir_pažymys[:-1]&lt;br /&gt;
        if not mokinys_ir_pažymys:&lt;br /&gt;
            break&lt;br /&gt;
        else:&lt;br /&gt;
            mokinio_vardas, mokinio_pažymiai = mokinys_ir_pažymys.split(&amp;quot;,&amp;quot;)&lt;br /&gt;
            mokinio_pažymiai = mokinio_pažymiai.split(&amp;quot; &amp;quot;)&lt;br /&gt;
            mokiniai[mokinio_vardas] = mokinio_pažymiai&lt;br /&gt;
    įvesties_failas.close()&lt;br /&gt;
    print(&amp;quot;Pažymiai įkelti.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
def išsaugoti_pažymius(pažymių_failas):&lt;br /&gt;
    išvesties_failas = open(pažymių_failas, &amp;quot;w&amp;quot;)&lt;br /&gt;
    for k, v in mokiniai.items():&lt;br /&gt;
        išvesties_failas.write(k + &amp;quot;,&amp;quot;)&lt;br /&gt;
        for x in v:&lt;br /&gt;
            išvesties_failas.write(str(x) + &amp;quot; &amp;quot;)&lt;br /&gt;
        išvesties_failas.write(&amp;quot;\n&amp;quot;)&lt;br /&gt;
    išvesties_failas.close()&lt;br /&gt;
    print(&amp;quot;Pažymiai išsaugoti.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
def spausdink_meniu():&lt;br /&gt;
    print(&amp;quot;1. Pridėk mokinį&amp;quot;)&lt;br /&gt;
    print(&amp;quot;2. Pašalink mokinį&amp;quot;)&lt;br /&gt;
    print(&amp;quot;3. Įkrauti pažymius&amp;quot;)&lt;br /&gt;
    print(&amp;quot;4. Įrašyk pažymį&amp;quot;)&lt;br /&gt;
    print(&amp;quot;5. Spausdink pažymius&amp;quot;)&lt;br /&gt;
    print(&amp;quot;6. Įšsaugoti pažymius&amp;quot;)&lt;br /&gt;
    print(&amp;quot;7. Spausdink meniu&amp;quot;)&lt;br /&gt;
    print(&amp;quot;9. Išeik&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
def spausdink_visus_pažymius():&lt;br /&gt;
    if mokiniai:&lt;br /&gt;
        raktai = sorted(mokiniai.keys())&lt;br /&gt;
        print('\t', end=' ')&lt;br /&gt;
        for x in užduotys:&lt;br /&gt;
            print(x, '\t', end=' ')&lt;br /&gt;
        print()&lt;br /&gt;
        for x in raktai:&lt;br /&gt;
            print(x, '\t', end=' ')&lt;br /&gt;
            pažymiai = mokiniai[x]&lt;br /&gt;
            spausdink_pažymius(pažymiai)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Neradau pažymių spausdinimui.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
def spausdink_pažymius(pažymiai):&lt;br /&gt;
    for x in pažymiai:&lt;br /&gt;
        print(x, '\t', end=' ')&lt;br /&gt;
    print()&lt;br /&gt;
&lt;br /&gt;
spausdink_meniu()&lt;br /&gt;
meniu_pasirinkimas = 0&lt;br /&gt;
while meniu_pasirinkimas != 9:&lt;br /&gt;
    print()&lt;br /&gt;
    meniu_pasirinkimas = int(input(&amp;quot;Meniu pasirinkimas: &amp;quot;))&lt;br /&gt;
    if meniu_pasirinkimas == 1:&lt;br /&gt;
        vardas = input(&amp;quot;Pridėk mokinį: &amp;quot;)&lt;br /&gt;
        mokiniai[vardas] = [0] * len(užduotys)&lt;br /&gt;
    elif meniu_pasirinkimas == 2:&lt;br /&gt;
        vardas = input(&amp;quot;Pašalink mokinį: &amp;quot;)&lt;br /&gt;
        if vardas in mokiniai:&lt;br /&gt;
            del mokiniai[vardas]&lt;br /&gt;
        else:&lt;br /&gt;
            print(&amp;quot;Mokinys vardu:&amp;quot;, vardas, &amp;quot; nerastas.&amp;quot;)&lt;br /&gt;
    elif meniu_pasirinkimas == 3:&lt;br /&gt;
        pažymių_failas = input(&amp;quot;Įkrauti pažymius iš kokio failo? &amp;quot;)&lt;br /&gt;
        įkelti_pažymius(pažymių_failas)&lt;br /&gt;
    elif meniu_pasirinkimas == 4:&lt;br /&gt;
        print(&amp;quot;Įrašyk pažymį&amp;quot;)&lt;br /&gt;
        vardas = input(&amp;quot;Mokinys: &amp;quot;)&lt;br /&gt;
        if vardas in mokiniai:&lt;br /&gt;
            pažymiai = mokiniai[vardas]&lt;br /&gt;
            print(&amp;quot;Įrašyk mokinio pažymį&amp;quot;)&lt;br /&gt;
            print(&amp;quot;Įrašyk 0 (nulį), kad išeitum&amp;quot;)&lt;br /&gt;
            for i,x in enumerate(užduotys):&lt;br /&gt;
                print(i + 1, x, '\t', end=' ')&lt;br /&gt;
            print()&lt;br /&gt;
            spausdink_pažymius(pažymiai)&lt;br /&gt;
            kuris = 1234&lt;br /&gt;
            while kuris != -1:&lt;br /&gt;
                kuris = int(input(&amp;quot;Pažymys, kurį nori pakeisti: &amp;quot;))&lt;br /&gt;
                kuris -= 1&lt;br /&gt;
                if 0 &amp;lt;= kuris &amp;lt; len(pažymiai):&lt;br /&gt;
                    pažymys = int(input(&amp;quot;Pažymys: &amp;quot;))&lt;br /&gt;
                    pažymiai[kuris] = pažymys&lt;br /&gt;
                elif kuris != -1:&lt;br /&gt;
                    print(&amp;quot;Klaidingas pažymys&amp;quot;)&lt;br /&gt;
        else:&lt;br /&gt;
            print(&amp;quot;Mokinys nerastas&amp;quot;)&lt;br /&gt;
    elif meniu_pasirinkimas == 5:&lt;br /&gt;
        spausdink_visus_pažymius()&lt;br /&gt;
    elif meniu_pasirinkimas == 6:&lt;br /&gt;
        pažymių_failas = input(&amp;quot;Į kokį failą išsaugoti pažymius? &amp;quot;)&lt;br /&gt;
        išsaugoti_pažymius(pažymių_failas)&lt;br /&gt;
    elif meniu_pasirinkimas != 9:&lt;br /&gt;
        spausdink_meniu()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Daugiau apie tekstines eilutes |next=Siekiant tobulumo}}&lt;br /&gt;
{{BookCat}}&lt;/div&gt;</summary>
		<author><name>Juratevalat</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Daugiau_apie_tekstines_eilutes&amp;diff=3857</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=3857"/>
		<updated>2022-02-12T10:44:18Z</updated>

		<summary type="html">&lt;p&gt;Juratevalat: &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 raidė 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ė (string) yra keliais aspektais panaši į sąrašą (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 su tekstine reikšme galima naudoti sąrašo funkciją &amp;lt;code&amp;gt;len()&amp;lt;/code&amp;gt;, taip pat sąrašo indeksavimu ir pjaustymu. Taigi, 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 raidė in tekstas:&lt;br /&gt;
        if 'a' &amp;lt;= raidė &amp;lt;= 'z':&lt;br /&gt;
            lokacija = ord(raidė) - ord('a')&lt;br /&gt;
            naujas_ascii = lokacija + ord('A')&lt;br /&gt;
            raidė= chr(naujas_ascii)&lt;br /&gt;
        didžiosios_raidės = didžiosios_raidės + raidė&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šmes. Pavyzdžiui, simboliui „A“ yra priskirtas skaičius 65, simbolis „B“ kompiuterio suprantamas kaip 66, o simbolis א yra 1488. Visi simboliai yra tarsi surikiuoti ir turi savo eilės numerį. Python'o 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 simbolio skaičių (eilės numerį_. Taip pat Python'o programavimo kalba turi ir atvirkščią funkciją, vadinamą &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, tačiau daug paprasčiau tai padaryti naudojantis funkcija &amp;lt;code&amp;gt;tekstoEilutė.upper()&amp;lt;/code&amp;gt;, kuri 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ę (skaičiai suprantami, kaip simblių seka), o funkcija &amp;lt;code&amp;gt;int()&amp;lt;/code&amp;gt; konvertuoja tekstinę reikšmę į sveikąjį skaičių. Funkcija &amp;lt;code&amp;gt;float()&amp;lt;/code&amp;gt; konvertuoja tekstinę reikšmę arba skaičių į dešimtainį skaičių (skaičių su kableliu). 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 dešimtainė skaičių) į 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ę į dešimtainį skaičių. Taip pat Python'o programavimo kalba turi funkciją &amp;lt;code&amp;gt;type()&amp;lt;/code&amp;gt;, kuri grąžina kintamojo reikšmė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;
Naudojant funkciją &amp;lt;code&amp;gt;type()&amp;lt;/code&amp;gt; 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 naudojama funkcija &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)? Kai funkcijai nenurodytas argmentas – skyriklis, pagal ką suskirstyti į skirtingus sąrašo elementus, funkcija skirsto pagal tarpus. Antrame pavyzdyje skyriklis yra kablelis.&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; '''sąrašas = tekstas.split(&amp;quot;,&amp;quot;, 2)'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''len(sąrašas)'''&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 su sąrašais, 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ų į tekstą&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;
        tekstas = 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=Daugiau apie sąrašus |next=Failų IO}}&lt;br /&gt;
{{BookCat}}&lt;/div&gt;</summary>
		<author><name>Juratevalat</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Daugiau_apie_s%C4%85ra%C5%A1us&amp;diff=3856</id>
		<title>Python Vadovėlis/Daugiau apie sąrašus</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Daugiau_apie_s%C4%85ra%C5%A1us&amp;diff=3856"/>
		<updated>2022-02-12T10:12:18Z</updated>

		<summary type="html">&lt;p&gt;Juratevalat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Apie sąrašus ir jų panaudojimą jau girdėjai praėjusiame skyriuje. Dabar, kai turi daugiau žinių, aš išsamiau aprašysiu sąrašus. Iš pradžių parodysiu, kaip dirbti su sąrašo elementais ir tuomet papasakosiu, kaip juos galima kopijuoti.  &lt;br /&gt;
&lt;br /&gt;
Parašiau pavyzdį, kuriame naudoju indeksus, kad pasiimčiau vieną konkretų elementą iš sąrašo:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''skaičiai = ['nulis', 'vienas', 'du', 'trys', 'keturi', 'penki']'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''skaičiai[0]'''&lt;br /&gt;
 'nulis'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''skaičiai[4]'''&lt;br /&gt;
 'keturi'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''skaičiai[5]'''&lt;br /&gt;
 'penki'&lt;br /&gt;
&lt;br /&gt;
Visi šie pavyzdžiai tau turėtų atrodyti pažįstami. Jei nori gauti pirmąjį sąrašo elementą, tu žiūri į indeksą 0, jei nori antrojo, tuomet imi indeksą 1 ir taip toliau judi per visą sąrašą. Tačiau ką daryti, jei nori paskutinio sąrašo elemento? Vienas iš būdų galėtų būti funkcijos &amp;lt;code&amp;gt;len()&amp;lt;/code&amp;gt; panaudojimas: &amp;lt;code&amp;gt;skaičiai[len(skaičiai) - 1]&amp;lt;/code&amp;gt;. Funkcija &amp;lt;code&amp;gt;len()&amp;lt;/code&amp;gt; visada grąžina paskutinį indeksą + 1. Šiuo būdu gali eiti per sąrašą iš kitos pusės, pavyzdžiui: antrasis sąrašo elementas nuo galo yra gaunamas taip: &amp;lt;code&amp;gt;skaičiai[len(skaičiai) - 2]&amp;lt;/code&amp;gt;. Kaip jau minėjau, yra dar vienas būdas, kaip galėtum pasiekti tą patį rezultatą. Python'e paskutinis elementas sąraše visada turi indeksą -1, antrojo elemento nuo sąrašo pabaigos indeksas yra -2 ir taip toliau. Štai daugiau pavyzdžių:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''skaičiai[len(skaičiai) - 1]'''&lt;br /&gt;
 'penki'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''skaičiai[len(skaičiai) - 2]'''&lt;br /&gt;
 'keturi'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''skaičiai[-1]'''&lt;br /&gt;
 'penki'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''skaičiai[-2]'''&lt;br /&gt;
 'keturi'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''skaičiai[-6]'''&lt;br /&gt;
 'nulis'&lt;br /&gt;
&lt;br /&gt;
Taigi, bet kuris sąrašo elementas gali būti indeksuojamas dviem būdais: iš priekio ir iš galo.&lt;br /&gt;
&lt;br /&gt;
Kitas naudingas būdas, kaip gali padalinti sąrašą ir gauti konkrečią jo dalį – pjaustymas (slicing). Štai pavyzdys, leidžiantis suprasti, kaip jis gali būti naudojamas:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''dalykai = [0, 'Jonas', 2, 'S.P.A.M.', 'Kojinė', 42, &amp;quot;Benas&amp;quot;, &amp;quot;Liepa&amp;quot;]'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''dalykai[0]'''&lt;br /&gt;
 0&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''dalykai[7]'''&lt;br /&gt;
 'Liepa'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''dalykai[0:8]'''&lt;br /&gt;
 [0, 'Jonas', 2, 'S.P.A.M.', 'Kojinė', 42, 'Benas', 'Liepa']&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''dalykai[2:4]'''&lt;br /&gt;
 [2, 'S.P.A.M.']&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''dalykai[4:7]'''&lt;br /&gt;
 ['Kojinė', 42, 'Benas']&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''dalykai[1:5]'''&lt;br /&gt;
 ['Jonas', 2, 'S.P.A.M.', 'Kojinė']&lt;br /&gt;
&lt;br /&gt;
Pjaustymą naudoju tada, kai noriu gauti konkrečią sąrašo dalį. Pjaustymo operatorius yra aprašomas taip: &amp;lt;code&amp;gt;dalykai[pirmas_indeksas:paskutinis_indeksas]&amp;lt;/code&amp;gt;. Pjaustymas „perpjauna“ sąrašą  ties &amp;lt;code&amp;gt;pirmas_indeksas&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;paskutinis_indeksas&amp;lt;/code&amp;gt; ir tuomet grąžina tą sarašo dalį, kuri yra tarp pirmo indekso ir paskutinio indekso. Gali naudoti abiejų tipų indeksavimą:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''dalykai[-4:-2]'''&lt;br /&gt;
 ['Kojinė', 42]&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''dalykai[-4]'''&lt;br /&gt;
 'Kojinė'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''dalykai[-4:6]'''&lt;br /&gt;
 ['Kojinė', 42]&lt;br /&gt;
&lt;br /&gt;
Dar vienas dalykas, kurį turėtum žinoti apie sąrašo pjaustymą - neapibrėžtas indeksas. Jei &amp;lt;code&amp;gt;pirmas_indeksas&amp;lt;/code&amp;gt; nenurodytas, tuomet numatytoji reikšmė yra pirmojo elemento sąraše indeksas. Jei paskutinis &amp;lt;code&amp;gt;paskutinis_indeksas&amp;lt;/code&amp;gt; nenurodytas, tuomet numatytoji reikšmė yra paskutiniojo elemento sąraše indeksas.  Štai keli pavyzdžiai:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''dalykai[:2]'''&lt;br /&gt;
 [0, 'Jonas']&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''dalykai[-2:]'''&lt;br /&gt;
 ['Benas', 'Liepa']&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''dalykai[:3]'''&lt;br /&gt;
 [0, 'Jonas', 2]&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''dalykai[:-5]'''&lt;br /&gt;
 [0, 'Jonas', 2]&lt;br /&gt;
&lt;br /&gt;
Štai (HTML įkvėptas) programos pavyzdys (jei nori, nukopijuok ir išbandyk šios programos kodą):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
poema = [&amp;quot;&amp;lt;B&amp;gt;&amp;quot;, &amp;quot;Ta&amp;quot;, &amp;quot;liga&amp;quot;, &amp;quot;nelimpa&amp;quot;, &amp;quot;&amp;lt;/B&amp;gt;&amp;quot;, &amp;quot;net&amp;quot;, &amp;quot;ir&amp;quot;, &amp;quot;prie&amp;quot;,&lt;br /&gt;
        &amp;quot;savų.&amp;quot;, &amp;quot;Pats&amp;quot;, &amp;quot;&amp;lt;B&amp;gt;&amp;quot;, &amp;quot;žiopliukas&amp;quot;, &amp;quot;būdamas,&amp;quot;, &amp;quot;neapkrės&amp;quot;, &amp;quot;kitų.&amp;quot;, &amp;quot;&amp;lt;/B&amp;gt;&amp;quot;,&lt;br /&gt;
        &amp;quot;Žiopliškumas&amp;quot;, &amp;quot;buvo&amp;quot;, &amp;quot;ir&amp;quot;, &amp;quot;&amp;lt;B&amp;gt;&amp;quot;, &amp;quot;visad&amp;quot;, &amp;quot;jis&amp;quot;, &amp;quot;bus.&amp;quot;,&lt;br /&gt;
        &amp;quot;&amp;lt;/B&amp;gt;&amp;quot;, &amp;quot;Jei&amp;quot;, &amp;quot;skandinsi&amp;quot;, &amp;quot;pelkėj,&amp;quot;, &amp;quot;&amp;lt;B&amp;gt;&amp;quot;, &amp;quot;jis&amp;quot;, &amp;quot;ir&amp;quot;,&lt;br /&gt;
        &amp;quot;&amp;lt;/B&amp;gt;&amp;quot;, &amp;quot;ten&amp;quot;, &amp;quot;nežus.&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
def gauk_pastorintą(tekstas):&lt;br /&gt;
    true = 1&lt;br /&gt;
    false = 0&lt;br /&gt;
    ## ar_pastorintas pasako ar mes dabar tikriname &lt;br /&gt;
    ## pastorintą teksto dalį.&lt;br /&gt;
    ar_pastorintas = false&lt;br /&gt;
    ## pradinis_blokas yra indeksas arba nepastorinta &lt;br /&gt;
    ## teksto dalis arba pastorinta.&lt;br /&gt;
    pradinis_blokas = 0&lt;br /&gt;
    for indeksas in range(len(tekstas)):&lt;br /&gt;
        ## Apdorojama pastorinto teksto pradžia &lt;br /&gt;
        if tekstas[indeksas] == &amp;quot;&amp;lt;B&amp;gt;&amp;quot;:&lt;br /&gt;
            if ar_pastorintas:&lt;br /&gt;
                print(&amp;quot;Klaida: Papildoma pastorinimo atidarymo žyma&amp;quot;)&lt;br /&gt;
            ## print &amp;quot;Nepastorintas:&amp;quot;, tekstas[pradinis_blokas:indeksas]&lt;br /&gt;
            ar_pastorintas = true&lt;br /&gt;
            pradinis_blokas = indeksas + 1&lt;br /&gt;
        ## Apdorojama pastorinto teksto pabaiga&lt;br /&gt;
        ## Atsimink, kad paskutinis skaičius atliekant pjūvį yra indeksas &lt;br /&gt;
        ## po to, kai paskutinis indeksas yra panaudotas.&lt;br /&gt;
        if tekstas[indeksas] == &amp;quot;&amp;lt;/B&amp;gt;&amp;quot;:&lt;br /&gt;
            if not ar_pastorintas:&lt;br /&gt;
                print(&amp;quot;Klaida: papildoma pastorinimo uždarymo žyma&amp;quot;)&lt;br /&gt;
            print(&amp;quot;Pastorintas [&amp;quot;, pradinis_blokas, &amp;quot;:&amp;quot;, indeksas, &amp;quot;]&amp;quot;, tekstas[pradinis_blokas:indeksas])&lt;br /&gt;
            ar_pastorintas = false&lt;br /&gt;
            pradinis_blokas = indeksas + 1&lt;br /&gt;
&lt;br /&gt;
gauk_pastorintą(poema)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
šios programos išvestis yra:&lt;br /&gt;
&lt;br /&gt;
 Pastorinta [ 1 : 4 ] ['Ta', 'liga', 'nelimpa']&lt;br /&gt;
 Pastorinta [ 11 : 15 ] ['žiopliukas', 'būdamas,', 'neapkrės', 'kitų.']&lt;br /&gt;
 Pastorinta [ 20 : 23 ] ['visad', 'jis', 'bus.']&lt;br /&gt;
 Pastorinta [ 28 : 30 ] ['jis', 'ir']&lt;br /&gt;
&lt;br /&gt;
Funkcija &amp;lt;code&amp;gt;gauk_pastorintą()&amp;lt;/code&amp;gt; pasiima sau į sąrašą tai, kas buvo padalinta į žodžius ir žymas.  Žymos, kurį ši funkcija ieško - &amp;lt;code&amp;gt;&amp;amp;lt;B&amp;amp;gt;&amp;lt;/code&amp;gt;, nes ji pradeda pastorintą tekstą ir &amp;lt;code&amp;gt;&amp;amp;lt;/B&amp;amp;gt;&amp;lt;/code&amp;gt;, kuris užbaigia pastorintą tekstą. Funkcija &amp;lt;code&amp;gt;gauk_pastorintą()&amp;lt;/code&amp;gt; eina per tekstą ir ieško pradžios ir pabaigos žymų.&lt;br /&gt;
&lt;br /&gt;
Kitas dalykas, kurį gali daryti su sąrašais - juos kopijuoti, pavyzdžiui: &lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''a = [1, 2, 3]'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''b = a'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''print(b)'''&lt;br /&gt;
 [1, 2, 3]&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''b[1] = 10'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''print(b)'''&lt;br /&gt;
 [1, 10, 3]&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''print(a)'''&lt;br /&gt;
 [1, 10, 3]&lt;br /&gt;
&lt;br /&gt;
Šis pavyzdys turėtų nustebinti, kadangi pakeitus &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt; pasikeitė ir &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;. Taip yra todėl, kad teiginys &amp;lt;code&amp;gt;b = a&amp;lt;/code&amp;gt; sukūrė ''nuorodą (reference)'' iš &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt; į &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;, o tai reiškia, jog &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt; dabar yra dar vienas &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; vardas.&lt;br /&gt;
Taigi, bet koks &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt; pakeitimas, keičia ir &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;. Tačiau kai kurie priskyrimai nesukuria dviejų pavadinimų vienam sąrašui, pažvelk į dar vieną pavyzdį:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''a = [1, 2, 3]'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''b = a * 2'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''print(a)'''&lt;br /&gt;
 [1, 2, 3]&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''print(b)'''&lt;br /&gt;
 [1, 2, 3, 1, 2, 3]&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''a[1] = 10'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''print(a)'''&lt;br /&gt;
 [1, 10, 3]&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''print(b)'''&lt;br /&gt;
 [1, 2, 3, 1, 2, 3]&lt;br /&gt;
&lt;br /&gt;
Šiuo atveju &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt; nėra nuoroda į &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;, nes išraiška &amp;lt;code&amp;gt;a * 2&amp;lt;/code&amp;gt; sukuria naują sąrašą vietoje nuorodos į &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;. Beveik visos priskyrimo operacijos sukuria nuorodą, pavyzdžiui: kai perduodi sąrašą, kaip funkcijos argumentą, tu sukuri nuorodą.&lt;br /&gt;
Visgi, dažniau mums programoje reikia kopijų, o ne nuorodų. Kai norime pakeisti vieną sąrašą, nekeisdami kito sąrašo, mes turime įsitikinti, kad sukūrėme sąrašo kopiją.&lt;br /&gt;
&lt;br /&gt;
Yra keli būdai, kaip gali sukurti sąrašo kopiją. Vienas iš paprasčiausių būdų yra pjaustymo operatorius, kadangi jis visuomet sukuria naują sąrašą, net tada, kai su pjūviu apimame viso sąrašo ilgį:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''a = [1, 2, 3]'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''b = a[:]'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''b[1] = 10'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''print(a)'''&lt;br /&gt;
 [1, 2, 3]&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''print(b)'''&lt;br /&gt;
 [1, 10, 3]&lt;br /&gt;
&lt;br /&gt;
Panaudoję pjūvio operatorių &amp;lt;code&amp;gt;[:]&amp;lt;/code&amp;gt; mes sukuriame naują sąrašo kopiją. Turėk omeny, kad nukopijuojamas yra tik išorinis sąrašas. Bet koks vidinis sąrašas turi nuorodą į pirminį sąrašą. Todėl, kai sąraše yra sąrašų, reikia nukopijuoti ir vidinius sąrašus. Tu tai gali padaryti pats, tačiau Python'as savyje jau turi modulį, kuris tai padaro už tave. Gali panaudoti funkciją &amp;lt;code&amp;gt;deepcopy&amp;lt;/code&amp;gt; iš &amp;lt;code&amp;gt;copy&amp;lt;/code&amp;gt; modulio:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''import copy'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''a = [[1, 2, 3], [4, 5, 6]]'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''b = a[:]'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''c = copy.deepcopy(a)'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''b[0][1] = 10'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''c[1][1] = 12'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''print(a)'''&lt;br /&gt;
 [[1, 10, 3], [4, 5, 6]]&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''print(b)'''&lt;br /&gt;
 [[1, 10, 3], [4, 5, 6]]&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; '''print(c)'''&lt;br /&gt;
 [[1, 2, 3], [4, 12, 6]]&lt;br /&gt;
&lt;br /&gt;
Iš pradžių atkreipk dėmesį į tai, kad &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; sąrašų sąrašas. Toliau, kai kodo eilutė &amp;lt;code&amp;gt;b[0][1] = 10&amp;lt;/code&amp;gt; yra vykdoma, tuomet &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt; pasikeičia, bet &amp;lt;code&amp;gt;c&amp;lt;/code&amp;gt; ne. Taip nutiko todėl, kad vidiniai masyvai vis dar yra nuorodos, kai naudojamas pjūvio operatorius.  Iš kitos pusės, &amp;lt;code&amp;gt;deepcopy&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;c&amp;lt;/code&amp;gt; buvo visiškai nukopijuotas.&lt;br /&gt;
&lt;br /&gt;
Taigi, ar turėčiau nerimauti dėl nuorodų kiekvieną kartą, kai naudoju funkciją ar &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;?  Geros naujienos yra tos, kad tau reikia nerimauti apie nuorodas tik naudojant žodynus ir sąrašus. Priskiriant skaičiaus ar teksto eilutės reikšmes turinčius kintamuosius nuorodos nesukuriamos ir tau nereikia sukti galvos ar netikėtai pasikeis reikšmė. Tačiau tau reikia turėt omeny nuorodas, kai keiti sąrašus ir žodynus. &lt;br /&gt;
&lt;br /&gt;
Turbūt susimąstei, kam išvis yra reikalingos nuorodos? Pagrindinė priežastis – greitis. Sukurti nuorodą sąrašo tūkstančiui elementų yra daug greičiau nei sukurti jų kopijas. Dar viena priežastis – tai, kad tu gali turėti funkciją, kuri leidžia modifikuoti sąrašus arba žodynus. Jei kada nors susidursi su keistomis problemomis, kai duomenys pasikeičia, nors neturėtų, tai prisimink apie nuorodas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--  On Sun, Sep 09, 2001 at 02:46:06PM +0100, Hamish Lawson wrote: --&amp;gt;&lt;br /&gt;
&amp;lt;!--  Hello Josh --&amp;gt;&lt;br /&gt;
&amp;lt;!--   --&amp;gt;&lt;br /&gt;
&amp;lt;!--  I think it's great that you have undertaken to write a non-programmer's --&amp;gt;&lt;br /&gt;
&amp;lt;!--  tutorial on Python. However may I suggest that a different approach to --&amp;gt;&lt;br /&gt;
&amp;lt;!--  the discussion of variables and references may make things easier for --&amp;gt;&lt;br /&gt;
&amp;lt;!--  both you and the reader, and lead to less potential confusion for the --&amp;gt;&lt;br /&gt;
&amp;lt;!--  novice when they explore Python further? --&amp;gt;&lt;br /&gt;
&amp;lt;!--   --&amp;gt;&lt;br /&gt;
&amp;lt;!--  Programming introductions that use a language like C or Pascal as the --&amp;gt;&lt;br /&gt;
&amp;lt;!--  medium often discuss variables in terms of boxes that store data. But --&amp;gt;&lt;br /&gt;
&amp;lt;!--  for a language like Python, I think this approach ends up making the --&amp;gt;&lt;br /&gt;
&amp;lt;!--  whole subject of variables and references more complicated than it need --&amp;gt;&lt;br /&gt;
&amp;lt;!--  be and means that the reader has a lot to unlearn later. --&amp;gt;&lt;br /&gt;
&amp;lt;!--  --&amp;gt;&lt;br /&gt;
&amp;lt;!--  Saying that &amp;quot;a = []&amp;quot; stores an empty list in 'a' and that &amp;quot;b = a&amp;quot; makes --&amp;gt;&lt;br /&gt;
&amp;lt;!--  'b' a reference to 'a' makes it appear that assignment is --&amp;gt;&lt;br /&gt;
&amp;lt;!--  context-dependent when it isn't really. Things get even trickier when --&amp;gt;&lt;br /&gt;
&amp;lt;!--  you have statements like &amp;quot;b = f()&amp;quot;. Instead a more coherent approach --&amp;gt;&lt;br /&gt;
&amp;lt;!--  might be to say that assignment to a variable stores a reference to --&amp;gt;&lt;br /&gt;
&amp;lt;!--  some object. The difference between &amp;quot;a = []&amp;quot; and &amp;quot;b = a&amp;quot; then lies in --&amp;gt;&lt;br /&gt;
&amp;lt;!--  whether it is a newly created object that you are storing a reference --&amp;gt;&lt;br /&gt;
&amp;lt;!--  to (as produced by '[]') or an existing object (as produced by 'a'), --&amp;gt;&lt;br /&gt;
&amp;lt;!--  *not* in whether or not a reference gets stored in the variable - it --&amp;gt;&lt;br /&gt;
&amp;lt;!--  always does. I believe this approach leads to much less confusion --&amp;gt;&lt;br /&gt;
&amp;lt;!--  overall and less need for special explanations. --&amp;gt;&lt;br /&gt;
&amp;lt;!--   --&amp;gt;&lt;br /&gt;
&amp;lt;!--  Fredrik Lundh has a good explanation of objects and references in --&amp;gt;&lt;br /&gt;
&amp;lt;!--  Python at http://www.effbot.org/guides/python-objects.htm. --&amp;gt;&lt;br /&gt;
&amp;lt;!--   --&amp;gt;&lt;br /&gt;
&amp;lt;!--  I hope you have found this useful. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Modulių naudojimas|next=Daugiau apie tekstines eilutes}}&lt;br /&gt;
{{BookCat}}&lt;/div&gt;</summary>
		<author><name>Juratevalat</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Moduli%C5%B3_naudojimas&amp;diff=3855</id>
		<title>Python Vadovėlis/Modulių naudojimas</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Moduli%C5%B3_naudojimas&amp;diff=3855"/>
		<updated>2022-02-12T09:52:55Z</updated>

		<summary type="html">&lt;p&gt;Juratevalat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Štai šio skyriaus pratimas (pavadink failą cal.py (&amp;lt;code&amp;gt;import&amp;lt;/code&amp;gt; iš tikrųjų ieško failo pavadinimu calendar.py ir jį įtraukią į savo kodą. Jei failas būtų pavadintas calendar.py ir matytų &amp;quot;import calendar&amp;quot;, jis bandytų skaityti pats save, o tai neveiktų tinkamai.)):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import calendar&lt;br /&gt;
metai = int(input(&amp;quot;Įvesk metų skaičių: &amp;quot;))&lt;br /&gt;
calendar.prcal(metai)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ir čia yra gautos programos išvestis:&lt;br /&gt;
&lt;br /&gt;
 Įvesk metų skaičių: 2001&lt;br /&gt;
 &lt;br /&gt;
                                  2001                                  &lt;br /&gt;
 &lt;br /&gt;
        Sausis                  Vasaris                    Kovas      &lt;br /&gt;
 &lt;br /&gt;
 Pr An Tr Ke Pe Še Se      Pr An Tr Ke Pe Še Se      Pr An Tr Ke Pe Še Se&lt;br /&gt;
 1  2  3  4  5  6  7                1  2  3  4                1  2  3  4     &lt;br /&gt;
 8  9 10 11 12 13 14       5  6  7  8  9 10 11       5  6  7  8  9 10 11&lt;br /&gt;
 15 16 17 18 19 20 21      12 13 14 15 16 17 18      12 13 14 15 16 17 18     &lt;br /&gt;
 22 23 24 25 26 27 28      19 20 21 22 23 24 25      19 20 21 22 23 24 25     &lt;br /&gt;
 29 30 31                  26 27 28                  26 27 28 29 30 31        &lt;br /&gt;
&lt;br /&gt;
(Aš praleidau kai kurias išvesties dalis, bet manau, kad principas aiškus.) Taigi, ką daro programa? Pirma eilutė &amp;lt;code&amp;gt;import calendar&amp;lt;/code&amp;gt; naudoja naują komandą &amp;lt;code&amp;gt;import&amp;lt;/code&amp;gt;.  Komanda &amp;lt;code&amp;gt;import&amp;lt;/code&amp;gt; įkelia modulį (šiuo atveju &amp;lt;code&amp;gt;calendar&amp;lt;/code&amp;gt; modulį).  Norint pamatyti standartiniuose moduliuose esančias funkcijas, ieškok Python'o bibliotekos nuorodos (jei atsisiuntei biblioteką) arba eik į http://docs.python.org/3/library/.  Jei pažvelsi į kalendoriaus modulio dokumentaciją, jame yra funkcija, vadinama &amp;lt;code&amp;gt;prcal&amp;lt;/code&amp;gt;, kuri spausdina metų kalendorių. Komanda &amp;lt;code&amp;gt;calendar.prcal(metai)&amp;lt;/code&amp;gt; naudoja šią funkciją. Apskritai, norint naudoti modulį, reikia naudoti raktažodį &amp;lt;code&amp;gt;import&amp;lt;/code&amp;gt; ir kartu panaudoti &amp;lt;code&amp;gt;modulio_pavadinimas.function&amp;lt;/code&amp;gt;, kreipiantis į funkcijas esančias modulyje. Yra ir kitas būdas parašyti analogišką programą:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
from calendar import prcal&lt;br /&gt;
&lt;br /&gt;
metai = int(input(&amp;quot;Įveskite metų skaičių: &amp;quot;))&lt;br /&gt;
prcal(metai)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Šis variantas importuoja konkrečią funkciją iš modulio. &lt;br /&gt;
Panagrinėkime dar vieną programą, kuri naudoja Python'o biblioteką (pavadink ją clock.py) (tuo pačiu metu paspausk Ctrl ir klavišą c, kad nutrauktum darbą):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
from time import time, ctime&lt;br /&gt;
&lt;br /&gt;
ankstesnis_laikas = &amp;quot;&amp;quot;&lt;br /&gt;
while True:&lt;br /&gt;
    laikas = ctime(time())&lt;br /&gt;
    if ankstesnis_laikas != laikas:&lt;br /&gt;
        print(&amp;quot;Laikas:&amp;quot;, ctime(time()))&lt;br /&gt;
        ankstesnis_laikas = laikas&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dalis išvesties yra:&lt;br /&gt;
&lt;br /&gt;
 Laikas: Tue Dec 21 13:14:20 2021&lt;br /&gt;
 Laikas: Tue Dec 21 13:14:21 2021&lt;br /&gt;
 Laikas: Tue Dec 21 13:14:22 2021&lt;br /&gt;
 Laikas: Tue Dec 21 13:14:23 2021&lt;br /&gt;
 &lt;br /&gt;
 Traceback (most recent call last):&lt;br /&gt;
   File &amp;quot;laikas.py&amp;quot;, line 5, in &amp;lt;module&amp;gt;&lt;br /&gt;
     laikas = ctime(time())&lt;br /&gt;
 KeyboardInterrupt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kadangi išvestis yra begalinė, todėl ją atšaukiu (kitu atveju, išvestis tęstųsi bent jau tol, kol būtų paspaustas Ctrl+C). Programa atlieka nesibaigiantį ciklą (&amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt; yra visada tiesa, taigi &amp;lt;code&amp;gt;while True:&amp;lt;/code&amp;gt; vykdoma amžinai). Kiekvieną kartą patikrina, ar laikas nepasikeitė, ir išspausdina, jei pasikeitė. Atkreipk dėmesį, kaip naudojami keli funkcijų pavadinimai po ''import'' sakinyje &amp;lt;code&amp;gt;from time import time, ctime&amp;lt;/code&amp;gt;.  &lt;br /&gt;
&lt;br /&gt;
Python'o bibliotekoje yra daug naudingų funkcijų. Šios funkcijos suteikia Tavo programoms daugiau galimybių ir daugelis jų gali supaprastinti programavimą Python'u.&lt;br /&gt;
&lt;br /&gt;
=== Pratimai ===&lt;br /&gt;
Perrašyk &amp;lt;code&amp;gt;daugiau_maziau.py&amp;lt;/code&amp;gt; programą iš skyriaus [[Vadovėlis/Pasirinkimai#Pavyzdžiai|Pasirinkimai]], kad naudotų atsitiktinį sveikąjį skaičių nuo 0 iki 99, o ne įkoduotą 7. Naudok Python'o dokumentaciją, kad surastum tinkamą modulį ir funkciją.&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;
from random import randint&lt;br /&gt;
&lt;br /&gt;
skaičius = randint(0, 99)&lt;br /&gt;
spėjimas = -1&lt;br /&gt;
while spėjimas != skaičius: &lt;br /&gt;
    spėjimas = int(input (&amp;quot;Atspėk skaičių: &amp;quot;))&lt;br /&gt;
    if spėjimas &amp;gt; skaičius:&lt;br /&gt;
        print(&amp;quot;Per didelis&amp;quot;)&lt;br /&gt;
    elif spėjimas &amp;lt; skaičius:&lt;br /&gt;
        print(&amp;quot;Per mažas&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Būtent tas&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Kiti moduliai==&lt;br /&gt;
Kartais Tu gali norėti naudoti Python'o modulį, kurio nėra standatinėje Python versijoje. Tu gali juos importuoti, tačiau pirmiau turėsi juos įsidiegti savo kompiuterį.&lt;br /&gt;
&lt;br /&gt;
===Kuriant savo modulį===&lt;br /&gt;
Kai Python'as skaito importavimo komandą, jis pirmiausia patikrina Tavo katalogo failus, po to svetainės paketus ir iš anksto įdiegtus modulius. Norint sukurti savo modulį, tiesiog sukurk .py failą dabartiniame kataloge ir parašyk komandą:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python3&amp;quot;&amp;gt;&lt;br /&gt;
import modulis&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Taip bus bandoma importuoti failą modulis.py iš dabartinio katalogo, o jei modulis bus nerastas, iš svetainių paketų ir iš anksto paruoštų modulių. Pakeitus modulį į Tavo sukurto .py failo pavadinimą, jis bus importuotas.&lt;br /&gt;
&lt;br /&gt;
Tačiau kai jis importuoja modulį, jis iš esmės paleidžia failą kaip programą, todėl bet koks jame esantis kodas bus paleistas. Patartina visą kodą sugrupuoti į funkcijas.&lt;br /&gt;
====__name__ == __main__ triukas====&lt;br /&gt;
Python'e kintamasis &amp;lt;code&amp;gt;__name__&amp;lt;/code&amp;gt; suteiks dabartinį programos pavadinimą. Jei importuojamas modulis spausdina &amp;lt;code&amp;gt;__name__&amp;lt;/code&amp;gt; kintamąjį, tada jis atspausdins modulio pavadinimą. Jei dabartinis failas spausdina &amp;lt;code&amp;gt;__name__&amp;lt;/code&amp;gt; kintamąjį, jis atspausdins &amp;lt;code&amp;gt;__main__&amp;lt;/code&amp;gt;, tam, kad parodytų, kad tai yra pagrindinė programa.&lt;br /&gt;
&lt;br /&gt;
Sąlyginis sakinys patikrina vardo kintamąjį ir paleidžia kodą, jei programa yra pagrindinė. Taip ji gali apeiti netyčinio paleidimo problemą, sukuriamą importuojant modulį. Tarkime, kad turi failą, kuriame veikia tam tikras kodas. Jis taip pat turi funkciją, kurią nori naudoti kitoje programoje. Tačiau nori tik funkcijos, esančios faile, o ne paleisti vykdyti kodą. Parašius žemiau pateiktą kodą, programa bus vykdoma tik tuo atveju, jei bus spustelėtas ar paleistas vykdyti esamas failas, o ne importuotas.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python3&amp;quot;&amp;gt;&lt;br /&gt;
if __name__ == '__main__':&lt;br /&gt;
    pass&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Šiuo atveju, jei failas paleidžiamas, bet neimportuojamas, jis vykdys komandą pass. Pass komandą galite pakeisti kodu, kurį norite paleisti, kai jis nėra importuotas. Tiesiog nepamiršk to kodo parašyti.&lt;br /&gt;
===pip modulis===&lt;br /&gt;
Pip modulis yra įdiegtas kartu su Python'u ir veikia kaip modulio atsisiuntėjas/tvarkytojas. Kitus modulius galima atsisiųsti iš interneto naudojant pip.&lt;br /&gt;
&lt;br /&gt;
Pip modulis nenaudojamas Python'o interpretatoriuje, bet yra vykdomas per komandinę eilutę. Norint jį naudoti, atidaryk komandų eilutės programėlę (Windows tai yra komandinė eilutė, Mac/Linux – terminalas) ir įvesk šį kodą:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
py3 -m pip install modulis&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
arba alternatyvus kodas&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
pip install modulis&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ši komandų eilutė bandys atsisiųsti ir įdiegti modulį iš vartotojo pateiktos Python'o modulių duomenų bazės. Modulis gali būti pakeistas į konkretaus modulio pavadinimą.&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Žodynai |next=Daugiau apie sąrašus}}&lt;/div&gt;</summary>
		<author><name>Juratevalat</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/%C5%BDodynai&amp;diff=3854</id>
		<title>Python Vadovėlis/Žodynai</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/%C5%BDodynai&amp;diff=3854"/>
		<updated>2022-02-12T09:11:08Z</updated>

		<summary type="html">&lt;p&gt;Juratevalat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Šis skyrius yra apie žodynus. Žodynai turi raktus ir reikšmes. Raktai naudojami reikšmėms rasti. Štai žodyno pavyzdys:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def spausdink_meniu():&lt;br /&gt;
    print('1. Spausdink telefonų numerius')&lt;br /&gt;
    print('2. Pridėk telefono numerį')&lt;br /&gt;
    print('3. Pašalink telefono numerį')&lt;br /&gt;
    print('4. Ieškok telefono numerio')&lt;br /&gt;
    print('5. Išeik')&lt;br /&gt;
    print()&lt;br /&gt;
&lt;br /&gt;
numeriai = {}&lt;br /&gt;
meniu_pasirinkimas = 0&lt;br /&gt;
spausdink_meniu ()&lt;br /&gt;
while meniu_pasirinkimas != 5:&lt;br /&gt;
    meniu_pasirinkimas = int(input(&amp;quot;Įvesk skaičių (1-5): &amp;quot;))&lt;br /&gt;
    if meniu_pasirinkimas == 1:&lt;br /&gt;
        print(&amp;quot;Telefono numeriai: &amp;quot;)&lt;br /&gt;
        for x in numeriai.keys():&lt;br /&gt;
            print(&amp;quot;Vardas: &amp;quot;, x, &amp;quot;\tTelefono numeris:&amp;quot;, numeriai[x])&lt;br /&gt;
        print()&lt;br /&gt;
    elif meniu_pasirinkimas == 2:&lt;br /&gt;
        print(&amp;quot;Pridėk vardą ir telefono numerį&amp;quot;)&lt;br /&gt;
        vardas = input(&amp;quot;Vardas: &amp;quot;)&lt;br /&gt;
        numeris = input(&amp;quot;Telefono numeris: &amp;quot;)&lt;br /&gt;
        numeriai[vardas] = numeris &lt;br /&gt;
    elif meniu_pasirinkimas == 3:&lt;br /&gt;
        print(&amp;quot;Pašalink vardą ir telefono numerį&amp;quot;)&lt;br /&gt;
        vardas = input(&amp;quot;Vardas: &amp;quot;)&lt;br /&gt;
        if vardas in numeriai:&lt;br /&gt;
            del numeriai[vardas]&lt;br /&gt;
        else:&lt;br /&gt;
            print(vardas, &amp;quot; nebuvo rastas&amp;quot;)&lt;br /&gt;
    elif meniu_pasirinkimas == 4:&lt;br /&gt;
        print(&amp;quot;Ieškok telefono numerio&amp;quot;)&lt;br /&gt;
        vardas = input(&amp;quot;Vardas: &amp;quot;)&lt;br /&gt;
        if vardas in numeriai:&lt;br /&gt;
            print(&amp;quot;Telefono numeris yra &amp;quot;, numeriai[vardas])&lt;br /&gt;
        else:&lt;br /&gt;
            print(vardas, &amp;quot; nebuvo rastas&amp;quot;)&lt;br /&gt;
    elif meniu_pasirinkimas  != 5:&lt;br /&gt;
        print_menu()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O čia - mano išvestis:&lt;br /&gt;
&lt;br /&gt;
 1. Spausdink telefonų numerius&lt;br /&gt;
 2. Pridėk telefono numerį&lt;br /&gt;
 3. Pašalink telefono numerį&lt;br /&gt;
 4. Ieškok telefono numerio&lt;br /&gt;
 5. Išeik&lt;br /&gt;
 &lt;br /&gt;
 Įvesk skaičių (1-5): '''2'''&lt;br /&gt;
 Pridėk vardą ir telefono numerį&lt;br /&gt;
 Vardas: '''Benas'''&lt;br /&gt;
 Telefono numeris: '''869935951'''&lt;br /&gt;
 Įvesk skaičių (1-5): '''2'''&lt;br /&gt;
 Pridėk vardą ir telefono numerį&lt;br /&gt;
 Vardas: '''Liepa'''&lt;br /&gt;
 Telefono numeris: '''869935952'''&lt;br /&gt;
 Įvesk skaičių (1-5): '''2'''&lt;br /&gt;
 Pridėk vardą ir telefono numerį&lt;br /&gt;
 Vardas: '''Markas'''&lt;br /&gt;
 Telefono numeris: '''869935957'''&lt;br /&gt;
 Įvesk skaičių (1-5): '''1'''&lt;br /&gt;
 Telefono numeriai:&lt;br /&gt;
 Vardas: Benas         Telefono numeris: 869935951&lt;br /&gt;
 Vardas: Liepa         Telefono numeris: 869935952&lt;br /&gt;
 Vardas: Markas        Telefono numeris: 869935957&lt;br /&gt;
 &lt;br /&gt;
 Įvesk skaičių (1-5): '''4'''&lt;br /&gt;
 Ieškok telefono numerio&lt;br /&gt;
 Vardas: '''Benas'''&lt;br /&gt;
 Telefono numeris yra 869935951&lt;br /&gt;
 Įvesk skaičių (1-5): '''3'''&lt;br /&gt;
 Pašalink telefono numerį&lt;br /&gt;
 Vardas: '''Markas'''&lt;br /&gt;
 Įvesk skaičių (1-5): '''1'''&lt;br /&gt;
 Telefono numeriai:&lt;br /&gt;
 Vardas: Liepa      Telefono numeris: 869935952&lt;br /&gt;
 Vardas: Benas      Telefono numeris: 869935951&lt;br /&gt;
 &lt;br /&gt;
 Įvesk skaičių (1-5): '''5'''&lt;br /&gt;
&lt;br /&gt;
Ši programa yra panaši į į programą su vardų sąrašu, pateiktą prieš tai buvusiame skyriuje apie sąrašus.  Štai kaip veikia programa.  Pirmiausiai yra aprašoma funkcija &amp;lt;code&amp;gt;spausdink_meniu&amp;lt;/code&amp;gt;.  &amp;lt;code&amp;gt;spausdink_meniu&amp;lt;/code&amp;gt; tiesiog spausdina meniu, kuris vėliau du kartus naudojamas programoje.  Po to, pateikiama keistai atrodanti eilutė &amp;lt;code&amp;gt;numeriai = {}&amp;lt;/code&amp;gt;.  Ši eilutė Python'ui pasako, kad &amp;lt;code&amp;gt;numeriai&amp;lt;/code&amp;gt; yra žodynas.  Kitos kelios eilutės tiesiog padaro taip, kad meniu veiktų.  Vykdydant ciklą:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
for x in numeriai.keys():&lt;br /&gt;
    print(&amp;quot;Vardas: &amp;quot;, x, &amp;quot;\tTelefono numeris:&amp;quot;, numeriai[x])&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
einama per žodyną ir spausdinami žodyne esantys elementai.  Funkcija &amp;lt;code&amp;gt; numeriai.keys()&amp;lt;/code&amp;gt; grąžina žodyno elementų raktų sąrašą, kuris yra vėliau naudojamas &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; cikle.  Sąrašas grąžinamas &amp;lt;code&amp;gt;keys()&amp;lt;/code&amp;gt; metodo pagalba neturi jokio eiliškumo, todėl, jei tu nori, kad jis būtų abėcėlės tvarka, jis turi būti surūšiuotas. Taigi, šiuo atveju &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; yra tekstinė eilutė – vardai. Panašiai kaip sąrašai, komanda &amp;lt;code&amp;gt;numeriai[x]&amp;lt;/code&amp;gt; naudojama norint pasiekti konkretų žodyno elementą. Šiuo atveju tai yra telefonų numeriai. Komanda &amp;lt;code&amp;gt;print&amp;lt;/code&amp;gt; visa tai atspausdina.  &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Pridėk vardą ir telefono numerį&amp;quot;)&lt;br /&gt;
vardas = input(&amp;quot;Vardas: &amp;quot;)&lt;br /&gt;
numeris = input(&amp;quot;Telefono numeris: &amp;quot;)&lt;br /&gt;
numeriai[vardas] = numeris &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Padarius kitą pasirinkimą, pirmiausiai paklausiamas Vardas – tai bus žodyno elemento raktas, ir paklausiamas numeris. Toliau, komanda &amp;lt;code&amp;gt;numeriai[vardas] = telefonas&amp;lt;/code&amp;gt; prideda vardą ir telefono numerį į žodyną. Jei &amp;lt;code&amp;gt;vardas&amp;lt;/code&amp;gt; jau būtų buvęs žodyne, &amp;lt;code&amp;gt;telefonas&amp;lt;/code&amp;gt; pakeistų prieš tai buvusią reikšmę. &lt;br /&gt;
Toliau sąlyginis sakinys&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
if vardas in numeriai:&lt;br /&gt;
    del numeriai[vardas]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
tikrina, ar vardas yra žodyne, ir jei yra, jį pašalina.  Komanda &amp;lt;code&amp;gt;vardas in numeriai&amp;lt;/code&amp;gt; grąžina loginę reikšmę &amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt;, jei &amp;lt;code&amp;gt;vardas&amp;lt;/code&amp;gt; yra &amp;lt;code&amp;gt;numeriai&amp;lt;/code&amp;gt; žodyne, bet kitu atveju grąžina &amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt;. Komanda &amp;lt;code&amp;gt;del numeriai[vardas]&amp;lt;/code&amp;gt; pašalina raktą &amp;lt;code&amp;gt;vardas&amp;lt;/code&amp;gt; ir su tuo raktu susietą reikšmę. &lt;br /&gt;
Sąlyginis sakinys&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
if vardas in numeriai:&lt;br /&gt;
    print(&amp;quot;Telefono numeris yra &amp;quot;, numeriai[vardas])&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
patikrina, ar žodynas turi tam tikrą raktą ir jei žodynas turi tą raktą, išspausdina su juo susietą numerį.  Galiausiai, jei meniu pasirinkimas negalioja, pagrindinis meniu yra atspausdinamas, kad tu galėtum juo pasigrožėti.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- \label{firstgrades}--&amp;gt;&lt;br /&gt;
Apibendrinimas: žodynai turi raktus ir reikšmes.  Raktu gali būti tekstinė eilutė arba&lt;br /&gt;
skaičius.  Raktai nurodo reikšmes.  Reikšmės gali būti bet kokio tipo kintamieji&lt;br /&gt;
(įskaitant sąrašus ar net žodynus (žinoma, tuose žodynuose ar sąrašuose&lt;br /&gt;
gali būti patys žodynai ar sąrašai (baisu, ane? :-)&lt;br /&gt;
))).  Štai yra pavyzdys, kai naudojamas sąrašas žodyne:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
max_taškai = [25, 25, 50, 25, 100]&lt;br /&gt;
užduotys = ['nd sk 1', 'nd sk 2', 'viktorina   ', 'nd sk 3', 'testas']&lt;br /&gt;
mokiniai = {'#Max': max_taškai}&lt;br /&gt;
&lt;br /&gt;
def spausdink_meniu():&lt;br /&gt;
    print(&amp;quot;1. Pridėk mokinį&amp;quot;)&lt;br /&gt;
    print(&amp;quot;2. Pašalink mokinį&amp;quot;)&lt;br /&gt;
    print(&amp;quot;3. Spausdink pažymius&amp;quot;)&lt;br /&gt;
    print(&amp;quot;4. Įrašyk pažymį&amp;quot;)&lt;br /&gt;
    print(&amp;quot;5. Spausdink meniu&amp;quot;)&lt;br /&gt;
    print(&amp;quot;6. Išeik&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
def spausdink_visus_pažymius():&lt;br /&gt;
    print('\t', end=' ')&lt;br /&gt;
    for i in range(len(užduotys)):&lt;br /&gt;
        print(užduotys[i], '\t', end=' ')&lt;br /&gt;
    print()&lt;br /&gt;
    raktai = list(mokiniai.keys())&lt;br /&gt;
    raktai.sort()&lt;br /&gt;
    for x in raktai:&lt;br /&gt;
        print(x, '\t', end=' ')&lt;br /&gt;
        pažymiai = mokiniai[x]&lt;br /&gt;
        spausdink_pažymius(pažymiai)&lt;br /&gt;
&lt;br /&gt;
def spausdink_pažymius(pažymiai):&lt;br /&gt;
    for i in range(len(pažymiai)):&lt;br /&gt;
        print(pažymiai[i], '\t', end=' ')&lt;br /&gt;
    print()&lt;br /&gt;
&lt;br /&gt;
spausdink_meniu()&lt;br /&gt;
meniu_pasirinkimas = 0&lt;br /&gt;
while meniu_pasirinkimas != 6:&lt;br /&gt;
    print()&lt;br /&gt;
    meniu_pasirinkimas = int(input(&amp;quot;Meniu pasirinkimas (1-6): &amp;quot;))&lt;br /&gt;
    if meniu_pasirinkimas == 1:&lt;br /&gt;
        vardas = input(&amp;quot;Pridėk mokinį: &amp;quot;)&lt;br /&gt;
        mokiniai[vardas] = [0] * len(max_taškai)&lt;br /&gt;
    elif meniu_pasirinkimas == 2:&lt;br /&gt;
        vardas = input(&amp;quot;Pašalink mokinį: &amp;quot;)&lt;br /&gt;
        if vardas in mokiniai:&lt;br /&gt;
            del mokiniai[vardas]&lt;br /&gt;
        else:&lt;br /&gt;
            print(&amp;quot;Vardas: &amp;quot;, vardas, &amp;quot; nebuvo rastas&amp;quot;)&lt;br /&gt;
    elif meniu_pasirinkimas == 3:&lt;br /&gt;
        spausdink_visus_pažymius()&lt;br /&gt;
    elif meniu_pasirinkimas == 4:&lt;br /&gt;
        print(&amp;quot;Įrašyk pažymį&amp;quot;)&lt;br /&gt;
        vardas = input(&amp;quot;Mokinys: &amp;quot;)&lt;br /&gt;
        if vardas in mokiniai:&lt;br /&gt;
            pažymiai = mokiniai[vardas]&lt;br /&gt;
            print(&amp;quot;Įrašyk mokinio pažymį&amp;quot;)&lt;br /&gt;
            print(&amp;quot;Įrašyk 0 (nulį), kad išeitum&amp;quot;)&lt;br /&gt;
            for i in range(len(užduotys)):&lt;br /&gt;
                print(i + 1, užduotys[i], '\t', end=' ')&lt;br /&gt;
            print()&lt;br /&gt;
            spausdink_pažymius(pažymiai)&lt;br /&gt;
            kuris = 1234&lt;br /&gt;
            while kuris != -1:&lt;br /&gt;
                kuris = int(input(&amp;quot;Pakeisk kuris pažymį: &amp;quot;))&lt;br /&gt;
                kuris -= 1    #tas pats kaip ir: kuris = kuris - 1&lt;br /&gt;
                if 0 &amp;lt;= kuris &amp;lt; len(pažymiai):&lt;br /&gt;
                    pažymys = int(input(&amp;quot;Pažymys: &amp;quot;))&lt;br /&gt;
                    pažymiai[kuris] = pažymys&lt;br /&gt;
                elif kuris != -1:&lt;br /&gt;
                    print(&amp;quot;Klaidingas pažymys&amp;quot;)&lt;br /&gt;
        else:&lt;br /&gt;
            print(&amp;quot;Mokinys nerastas&amp;quot;)&lt;br /&gt;
    elif meniu_pasirinkimas != 6:&lt;br /&gt;
        spausdink_meniu()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O štai čia yra išvestis:&lt;br /&gt;
&lt;br /&gt;
 1. Pridėk mokinį&lt;br /&gt;
 2. Pašalink mokinį&lt;br /&gt;
 3. Spausdink pažymius&lt;br /&gt;
 4. Įrašyk pažymį&lt;br /&gt;
 5. Spausdink meniu&lt;br /&gt;
 6. Išeik&lt;br /&gt;
 &lt;br /&gt;
 Meniu pasirinkimas (1-6): '''3'''&lt;br /&gt;
        nd sk 1         nd sk 2       viktorina       nd sk 3            testas &lt;br /&gt;
 #Max    25              25              50              25              100 &lt;br /&gt;
 &lt;br /&gt;
 Meniu pasirinkimas (1-6): '''5'''&lt;br /&gt;
 1. Pridėk mokinį&lt;br /&gt;
 2. Pašalink mokinį&lt;br /&gt;
 3. Spausdink pažymius&lt;br /&gt;
 4. Įrašyk pažymį&lt;br /&gt;
 5. Spausdink meniu&lt;br /&gt;
 6. Išeik&lt;br /&gt;
 &lt;br /&gt;
 Meniu pasirinkimas (1-6): '''1'''&lt;br /&gt;
 Pridėk mokinį: '''Markas'''&lt;br /&gt;
 &lt;br /&gt;
 Meniu pasirinkimas (1-6): '''4'''&lt;br /&gt;
 Įrašyk pažymį&lt;br /&gt;
 Mokinys: '''Markas'''&lt;br /&gt;
 Įrašyk mokinio pažymį&lt;br /&gt;
 Įrašyk 0 (nulį), kad išeitum&lt;br /&gt;
 1   nd sk 1     2   nd sk 2     3   viktorina        4   nd sk 3     5   testas &lt;br /&gt;
 0               0               0               0               0 &lt;br /&gt;
 Pakeisk kuris pažymį: '''1'''&lt;br /&gt;
 Pažymys: '''25'''&lt;br /&gt;
 Pakeisk kuris pažymį: '''2'''&lt;br /&gt;
 Pažymys: '''24'''&lt;br /&gt;
 Pakeisk kuris pažymį: '''3'''&lt;br /&gt;
 Pažymys: '''45'''&lt;br /&gt;
 Pakeisk kuris pažymį: '''4'''&lt;br /&gt;
 Pažymys: '''23'''&lt;br /&gt;
 Pakeisk kuris pažymį: '''5'''&lt;br /&gt;
 Pažymys: '''95'''&lt;br /&gt;
 Pakeisk kuris pažymį: '''0'''&lt;br /&gt;
 &lt;br /&gt;
 Meniu pasirinkimas (1-6): '''3'''&lt;br /&gt;
           nd sk 1         nd sk 2         viktorina       nd sk 3          testas&lt;br /&gt;
 #Max        25              25              50              25              100&lt;br /&gt;
 Markas      25              24              45              23              95 &lt;br /&gt;
 &lt;br /&gt;
 Meniu pasirinkimas (1-6): '''6'''&lt;br /&gt;
&lt;br /&gt;
Štai kaip veikia programa.  Iš esmės, kintamasis &amp;lt;code&amp;gt;mokiniai&amp;lt;/code&amp;gt; yra žodynas, kurio raktai yra mokinių vardai, o reikšmės – jų pažymiai.  Pirmosios dvi eilutės tik sukuria du sąrašus.&lt;br /&gt;
Kita eilutė &amp;lt;code&amp;gt;mokiniai = {'#Max': max_taškai}&amp;lt;/code&amp;gt; sukuria naują&lt;br /&gt;
žodyną su raktu {&amp;lt;code&amp;gt;#Max&amp;lt;/code&amp;gt;}, o reikšmė yra &amp;lt;code&amp;gt;[25, 25, 50, 25, 100]&amp;lt;/code&amp;gt; (pirmame sakinyje &amp;lt;code&amp;gt;max_taškai&amp;lt;/code&amp;gt; buvo padarytas priskyrimas) (aš naudoju raktą &amp;lt;code&amp;gt;#Max&amp;lt;/code&amp;gt;, nes rūšiuojant simolis &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; patenka prieš bet kokias abėcėlės raides).  Toliau aprašoma funkcija &amp;lt;code&amp;gt;spausdink_meniu&amp;lt;/code&amp;gt;. Kaip jau žinai, ji spausdina meniu.&lt;br /&gt;
Po to aprašoma funkcija &amp;lt;code&amp;gt;spausdink_visus_pažymius&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def spausdink_visus_pažymius():&lt;br /&gt;
    print('\t',end=&amp;quot; &amp;quot;)&lt;br /&gt;
    for i in range(len(užduotys)):&lt;br /&gt;
        print(užduotys[i], '\t',end=&amp;quot; &amp;quot;)&lt;br /&gt;
    print()&lt;br /&gt;
    raktai = list(mokiniai.keys())&lt;br /&gt;
    keys.sort()&lt;br /&gt;
    for x in raktai:&lt;br /&gt;
        print(x, '\t',end=' ')&lt;br /&gt;
        pažymiai = mokiniai[x]&lt;br /&gt;
        spausdink_pažymius(pažymiai)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Atkreipk dėmesį, į tai, kaip žodyno &amp;lt;code&amp;gt;mokiniai&amp;lt;/code&amp;gt; raktai yra išimami į kintamąjį &amp;lt;code&amp;gt;raktai&amp;lt;/code&amp;gt; su komanda &amp;lt;code&amp;gt;raktai = list(mokiniai.keys())&amp;lt;/code&amp;gt;. Kintamasis &amp;lt;code&amp;gt;raktai&amp;lt;/code&amp;gt; turės būti rūšiuojamas, todėl yra paverčiamas į sąrašą. Taip bus galima naudoti visas sąrašų funkcijas.  Toliau raktai yra surūšiuojami eilutėje &amp;lt;code&amp;gt;raktai.sort()&amp;lt;/code&amp;gt;.  &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; yra naudojamas pereiti per visus raktus.  Pažymiai yra saugomi kaip sąrašas žodyno viduje, todėl priskyrimas &amp;lt;code&amp;gt;pažymiai = mokiniai[x]&amp;lt;/code&amp;gt; duoda &amp;lt;code&amp;gt;pažymiai&amp;lt;/code&amp;gt; sąrašą, kuris yra saugomas su &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; raktu.  Funkcija &amp;lt;code&amp;gt;spausdink_pažymius&amp;lt;/code&amp;gt; tiesiog spausdina sąrašą ir yra aprašyta keliomis eilutėmis žemiau.&lt;br /&gt;
&lt;br /&gt;
Tolimesnės programos eilutės įgyvendina įvairius meniu pasirinkimus.  Eilutė &amp;lt;code&amp;gt;mokiniai[vardas] = [0] * len(max_taškai)&amp;lt;/code&amp;gt; prideda mokinį į žodyną: &amp;lt;code&amp;gt;vardas&amp;lt;/code&amp;gt; yra naujas raktas.  Komanda &amp;lt;code&amp;gt;[0] * len(max_taškai)&amp;lt;/code&amp;gt; tiesiog sukuria žodyno elementą – 0-ių sąrašą, kuris yra tokio pat ilgio kaip ir &amp;lt;code&amp;gt;max_taškai&amp;lt;/code&amp;gt; sąrašas, kuriame vėliau bus sukelti pažymiai.  &lt;br /&gt;
&lt;br /&gt;
Pašalinti mokinį pasirinkimas tiesiog ištrina mokinį, panašiai kaip ir telefonų knygutės pavyzdyje.  &lt;br /&gt;
Įrašyti mokinį pasirinkimas yra šiek tiek sudėtingesnis.  Pažymiai yra  gaunami komandinėje eilutėje &lt;br /&gt;
&amp;lt;code&amp;gt;pažymiai = mokiniai[vardas]&amp;lt;/code&amp;gt;, ji gauna nuorodą į mokinio &amp;lt;code&amp;gt;vardas&amp;lt;/code&amp;gt; pažymius.  Tada pažymys yra  įrašomas komanda &amp;lt;code&amp;gt;pažymiai[kuris] = pažymys&amp;lt;/code&amp;gt;.  Tu gali pastebėti, kad &amp;lt;code&amp;gt;pažymiai&amp;lt;/code&amp;gt; niekada negrąžinami į mokinių žodyną (tokios komandos niekada nerašome:  &amp;lt;code&amp;gt;mokiniai[vardas] = pažymiai&amp;lt;/code&amp;gt;).  Pakeisto pažymių sąrašo į žodyną grąžinti nereikia todėl,kad komanda &amp;lt;code&amp;gt;pažymiai[kuris] = pažymys&amp;lt;/code&amp;gt; mes gauname ne realų sąrašą, o nuorodą į tą sąrašą, tada  &amp;lt;code&amp;gt;pažymiai&amp;lt;/code&amp;gt; iš tiesų yra tik kitas &amp;lt;code&amp;gt;mokiniai[vardas]&amp;lt;/code&amp;gt; pavadinimas. Dėl to, keičiant &amp;lt;code&amp;gt;pažymiai&amp;lt;/code&amp;gt; keičiasi ir &amp;lt;code&amp;gt;mokiniai[vardas]&amp;lt;/code&amp;gt;.  &lt;br /&gt;
&lt;br /&gt;
Žodynai turi nesudėtingą metodą susieti raktus su reikšmėmis. Tai gali būti naudojama norint lengvai sekti duomenis, pridedamus prie įvairių raktų.&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Loginiai reiškiniai |next=Modulių naudojimas}}&lt;br /&gt;
{{BookCat}}&lt;/div&gt;</summary>
		<author><name>Juratevalat</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/%C5%BDodynai&amp;diff=3847</id>
		<title>Python Vadovėlis/Žodynai</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/%C5%BDodynai&amp;diff=3847"/>
		<updated>2022-02-08T12:49:33Z</updated>

		<summary type="html">&lt;p&gt;Juratevalat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Šis skyrius yra apie žodynus. Žodynai turi raktus ir reikšmes. Raktai naudojami reikšmėms rasti. Štai žodyno pavyzdys:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def spausdink_meniu():&lt;br /&gt;
    print('1. Spausdink telefonų numerius')&lt;br /&gt;
    print('2. Pridėk telefono numerį')&lt;br /&gt;
    print('3. Pašalink telefono numerį')&lt;br /&gt;
    print('4. Ieškok telefono numerio')&lt;br /&gt;
    print('5. Išeik')&lt;br /&gt;
    print()&lt;br /&gt;
&lt;br /&gt;
numeriai = {}&lt;br /&gt;
meniu_pasirinkimas = 0&lt;br /&gt;
spausdink_meniu ()&lt;br /&gt;
while meniu_pasirinkimas != 5:&lt;br /&gt;
    meniu_pasirinkimas = int(input(&amp;quot;Įvesk skaičių (1-5): &amp;quot;))&lt;br /&gt;
    if meniu_pasirinkimas == 1:&lt;br /&gt;
        print(&amp;quot;Telefono numeriai: &amp;quot;)&lt;br /&gt;
        for x in numeriai.keys():&lt;br /&gt;
            print(&amp;quot;Vardas: &amp;quot;, x, &amp;quot;\tTelefono numeris:&amp;quot;, numeriai[x])&lt;br /&gt;
        print()&lt;br /&gt;
    elif meniu_pasirinkimas == 2:&lt;br /&gt;
        print(&amp;quot;Pridėk vardą ir telefono numerį&amp;quot;)&lt;br /&gt;
        vardas = input(&amp;quot;Vardas: &amp;quot;)&lt;br /&gt;
        numeris = input(&amp;quot;Telefono numeris: &amp;quot;)&lt;br /&gt;
        numeriai[vardas] = numeris &lt;br /&gt;
    elif meniu_pasirinkimas == 3:&lt;br /&gt;
        print(&amp;quot;Pašalink vardą ir telefono numerį&amp;quot;)&lt;br /&gt;
        vardas = input(&amp;quot;Vardas: &amp;quot;)&lt;br /&gt;
        if vardas in numeriai:&lt;br /&gt;
            del numeriai[vardas]&lt;br /&gt;
        else:&lt;br /&gt;
            print(vardas, &amp;quot; nebuvo rastas&amp;quot;)&lt;br /&gt;
    elif meniu_pasirinkimas == 4:&lt;br /&gt;
        print(&amp;quot;Ieškok telefono numerio&amp;quot;)&lt;br /&gt;
        vardas = input(&amp;quot;Vardas: &amp;quot;)&lt;br /&gt;
        if vardas in numeriai:&lt;br /&gt;
            print(&amp;quot;Telefono numeris yra &amp;quot;, numeriai[vardas])&lt;br /&gt;
        else:&lt;br /&gt;
            print(vardas, &amp;quot; nebuvo rastas&amp;quot;)&lt;br /&gt;
    elif meniu_pasirinkimas  != 5:&lt;br /&gt;
        print_menu()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O čia - mano išvestis:&lt;br /&gt;
&lt;br /&gt;
 1. Spausdink telefonų numerius&lt;br /&gt;
 2. Pridėk telefono numerį&lt;br /&gt;
 3. Pašalink telefono numerį&lt;br /&gt;
 4. Ieškok telefono numerio&lt;br /&gt;
 5. Išeik&lt;br /&gt;
 &lt;br /&gt;
 Įvesk skaičių (1-5): '''2'''&lt;br /&gt;
 Pridėk vardą ir telefono numerį&lt;br /&gt;
 Vardas: '''Benas'''&lt;br /&gt;
 Telefono numeris: '''869935951'''&lt;br /&gt;
 Įvesk skaičių (1-5): '''2'''&lt;br /&gt;
 Pridėk vardą ir telefono numerį&lt;br /&gt;
 Vardas: '''Liepa'''&lt;br /&gt;
 Telefono numeris: '''869935952'''&lt;br /&gt;
 Įvesk skaičių (1-5): '''2'''&lt;br /&gt;
 Pridėk vardą ir telefono numerį&lt;br /&gt;
 Vardas: '''Markas'''&lt;br /&gt;
 Telefono numeris: '''869935957'''&lt;br /&gt;
 Įvesk skaičių (1-5): '''1'''&lt;br /&gt;
 Telefono numeriai:&lt;br /&gt;
 Vardas: Benas         Telefono numeris: 869935951&lt;br /&gt;
 Vardas: Liepa         Telefono numeris: 869935952&lt;br /&gt;
 Vardas: Markas        Telefono numeris: 869935957&lt;br /&gt;
 &lt;br /&gt;
 Įvesk skaičių (1-5): '''4'''&lt;br /&gt;
 Ieškok telefono numerio&lt;br /&gt;
 Vardas: '''Benas'''&lt;br /&gt;
 Telefono numeris yra 869935951&lt;br /&gt;
 Įvesk skaičių (1-5): '''3'''&lt;br /&gt;
 Pašalink telefono numerį&lt;br /&gt;
 Vardas: '''Markas'''&lt;br /&gt;
 Įvesk skaičių (1-5): '''1'''&lt;br /&gt;
 Telefono numeriai:&lt;br /&gt;
 Vardas: Liepa      Telefono numeris: 869935952&lt;br /&gt;
 Vardas: Benas      Telefono numeris: 869935951&lt;br /&gt;
 &lt;br /&gt;
 Įvesk skaičių (1-5): '''5'''&lt;br /&gt;
&lt;br /&gt;
Ši programa yra panaši į į programą su vardų sąrašu, pateiktą prieš tai buvusiame skyriuje apie sąrašus.  Štai kaip veikia programa.  Pirmiausiai yra aprašoma funkcija &amp;lt;code&amp;gt;spausdink_meniu&amp;lt;/code&amp;gt;.  &amp;lt;code&amp;gt;spausdink_meniu&amp;lt;/code&amp;gt; tiesiog spausdina meniu, kuris vėliau du kartus naudojamas programoje.  Po to, pateikiama keistai atrodanti eilutė &amp;lt;code&amp;gt;numeriai = {}&amp;lt;/code&amp;gt;.  Ši eilutė Python'ui pasako, kad &amp;lt;code&amp;gt;numeriai&amp;lt;/code&amp;gt; yra žodynas.  Kitos kelios eilutės tiesiog padaro taip, kad meniu veiktų.  Vykdydant ciklą:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
for x in numeriai.keys():&lt;br /&gt;
    print(&amp;quot;Vardas: &amp;quot;, x, &amp;quot;\tTelefono numeris:&amp;quot;, numeriai[x])&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
einama per žodyną ir spausdinami žodyne esantys elementai.  Funkcija &amp;lt;code&amp;gt; numeriai.keys()&amp;lt;/code&amp;gt; grąžina žodyno elementų raktų sąrašą, kuris yra vėliau naudojamas &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; cikle.  Sąrašas grąžinamas &amp;lt;code&amp;gt;keys()&amp;lt;/code&amp;gt; metodo pagalba neturi jokio eiliškumo, todėl, jei tu nori, kad jis būtų abėcėlės tvarka, jis turi būti surūšiuotas.  Panašiai kaip sąrašai, komanda &amp;lt;code&amp;gt;numeriai[x]&amp;lt;/code&amp;gt; naudojam norint pasiekti konkretų žodyno elementą.  Šiuo atveju &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; yra tekstinė eilutė.  Toliau, komanda &amp;lt;code&amp;gt;numeriai[vardas] = telefonas&amp;lt;/code&amp;gt; prideda vardą ir telefono numerį į žodyną.  Jei &amp;lt;code&amp;gt;vardas&amp;lt;/code&amp;gt; jau būtų buvęs žodyne, &amp;lt;code&amp;gt;telefonas&amp;lt;/code&amp;gt; pakeistų prieš tai buvusią reikšmę.  Toliau sąlyginis sakinys&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
if vardas in numeriai:&lt;br /&gt;
    del numeriai[vardas]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
tikrina, ar vardas yra žodyne, ir jei yra, jį pašalina.  Komanda &amp;lt;code&amp;gt;vardas in numeriai&amp;lt;/code&amp;gt; grąžina loginę reikšmę &amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt;, jei &amp;lt;code&amp;gt;vardas&amp;lt;/code&amp;gt; yra &amp;lt;code&amp;gt;numeriai&amp;lt;/code&amp;gt; žodyne, bet kitu atveju grąžina &amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt;.  Komanda &amp;lt;code&amp;gt;del numeriai[vardas]&amp;lt;/code&amp;gt; pašalina raktą &amp;lt;code&amp;gt;vardas&amp;lt;/code&amp;gt; ir su tuo raktu susietą reikšmę. Sąlyginis sakinys&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
if vardas in numeriai:&lt;br /&gt;
    print(&amp;quot;Telefono numeris yra &amp;quot;, numeriai[vardas])&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
patikrina, ar žodynas turi tam tikrą raktą ir jei žodynas turi tą raktą, išspausdina su juo susietą numerį.  Galiausiai, jei meniu pasirinkimas negalioja, pagrindinis meniu yra atspausdinamas, kad tu galėtum juo pasigrožėti.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- \label{firstgrades}--&amp;gt;&lt;br /&gt;
Apibendrinimas: žodynai turi raktus ir reikšmes.  Raktu gali būti tekstinė eilutė arba&lt;br /&gt;
skaičius.  Raktai nurodo reikšmes.  Reikšmės gali būti bet kokio tipo kintamieji&lt;br /&gt;
(įskaitant sąrašus ar net žodynus (žinoma, tuose žodynuose ar sąrašuose&lt;br /&gt;
gali būti patys žodynai ar sąrašai (baisu, ane? :-)&lt;br /&gt;
))).  Štai yra pavyzdys, kai naudojamas sąrašas žodyne:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
max_taškai = [25, 25, 50, 25, 100]&lt;br /&gt;
užduotys = ['nd sk 1', 'nd sk 2', 'viktorina   ', 'nd sk 3', 'testas']&lt;br /&gt;
mokiniai = {'#Max': max_taškai}&lt;br /&gt;
&lt;br /&gt;
def spausdink_meniu():&lt;br /&gt;
    print(&amp;quot;1. Pridėk mokinį&amp;quot;)&lt;br /&gt;
    print(&amp;quot;2. Pašalink mokinį&amp;quot;)&lt;br /&gt;
    print(&amp;quot;3. Spausdink pažymius&amp;quot;)&lt;br /&gt;
    print(&amp;quot;4. Įrašyk pažymį&amp;quot;)&lt;br /&gt;
    print(&amp;quot;5. Spausdink meniu&amp;quot;)&lt;br /&gt;
    print(&amp;quot;6. Išeik&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
def spausdink_visus_pažymius():&lt;br /&gt;
    print('\t', end=' ')&lt;br /&gt;
    for i in range(len(užduotys)):&lt;br /&gt;
        print(užduotys[i], '\t', end=' ')&lt;br /&gt;
    print()&lt;br /&gt;
    raktai = list(mokiniai.keys())&lt;br /&gt;
    raktai.sort()&lt;br /&gt;
    for x in raktai:&lt;br /&gt;
        print(x, '\t', end=' ')&lt;br /&gt;
        pažymiai = mokiniai[x]&lt;br /&gt;
        spausdink_pažymius(pažymiai)&lt;br /&gt;
&lt;br /&gt;
def spausdink_pažymius(pažymiai):&lt;br /&gt;
    for i in range(len(pažymiai)):&lt;br /&gt;
        print(pažymiai[i], '\t', end=' ')&lt;br /&gt;
    print()&lt;br /&gt;
&lt;br /&gt;
spausdink_meniu()&lt;br /&gt;
meniu_pasirinkimas = 0&lt;br /&gt;
while meniu_pasirinkimas != 6:&lt;br /&gt;
    print()&lt;br /&gt;
    meniu_pasirinkimas = int(input(&amp;quot;Meniu pasirinkimas (1-6): &amp;quot;))&lt;br /&gt;
    if meniu_pasirinkimas == 1:&lt;br /&gt;
        name = input(&amp;quot;Pridėk mokinį: &amp;quot;)&lt;br /&gt;
        mokiniai[vardas] = [0] * len(max_taškai)&lt;br /&gt;
    elif meniu_pasirinkimas == 2:&lt;br /&gt;
        vardas = input(&amp;quot;Pašalink mokinį: &amp;quot;)&lt;br /&gt;
        if vardas in mokiniai:&lt;br /&gt;
            del mokiniai[vardas]&lt;br /&gt;
        else:&lt;br /&gt;
            print(&amp;quot;Vardas: &amp;quot;, vardas, &amp;quot; nebuvo rastas&amp;quot;)&lt;br /&gt;
    elif meniu_pasirinkimas == 3:&lt;br /&gt;
        spausdink_visus_pažymius()&lt;br /&gt;
    elif meniu_pasirinkimas == 4:&lt;br /&gt;
        print(&amp;quot;Įrašyk pažymį&amp;quot;)&lt;br /&gt;
        vardas = input(&amp;quot;Mokinys: &amp;quot;)&lt;br /&gt;
        if vardas in mokiniai:&lt;br /&gt;
            pažymiai = mokiniai[vardas]&lt;br /&gt;
            print(&amp;quot;Įrašyk mokinio pažymį&amp;quot;)&lt;br /&gt;
            print(&amp;quot;Įrašyk 0 (nulį), kad išeitum&amp;quot;)&lt;br /&gt;
            for i in range(len(užduotys)):&lt;br /&gt;
                print(i + 1, užduotys[i], '\t', end=' ')&lt;br /&gt;
            print()&lt;br /&gt;
            spausdink_pažymius(pažymiai)&lt;br /&gt;
            kuris = 1234&lt;br /&gt;
            while kuris != -1:&lt;br /&gt;
                kuris = int(input(&amp;quot;Pakeisk kuris pažymį: &amp;quot;))&lt;br /&gt;
                kuris -= 1    #tas pats kaip ir: kuris = kuris - 1&lt;br /&gt;
                if 0 &amp;lt;= kuris &amp;lt; len(pažymiai):&lt;br /&gt;
                    pažymys = int(input(&amp;quot;Pažymys: &amp;quot;))&lt;br /&gt;
                    pažymiai[kuris] = pažymys&lt;br /&gt;
                elif kuris != -1:&lt;br /&gt;
                    print(&amp;quot;Klaidingas pažymys&amp;quot;)&lt;br /&gt;
        else:&lt;br /&gt;
            print(&amp;quot;Mokinys nerastas&amp;quot;)&lt;br /&gt;
    elif meniu_pasirinkimas != 6:&lt;br /&gt;
        spausdink_meniu()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O štai čia yra išvestis:&lt;br /&gt;
&lt;br /&gt;
 1. Pridėk mokinį&lt;br /&gt;
 2. Pašalink mokinį&lt;br /&gt;
 3. Spausdink pažymius&lt;br /&gt;
 4. Įrašyk pažymį&lt;br /&gt;
 5. Spausdink meniu&lt;br /&gt;
 6. Išeik&lt;br /&gt;
 &lt;br /&gt;
 Meniu pasirinkimas (1-6): '''3'''&lt;br /&gt;
        nd sk 1         nd sk 2       viktorina       nd sk 3            testas &lt;br /&gt;
 #Max    25              25              50              25              100 &lt;br /&gt;
 &lt;br /&gt;
 Meniu pasirinkimas (1-6): '''5'''&lt;br /&gt;
 1. Pridėk mokinį&lt;br /&gt;
 2. Pašalink mokinį&lt;br /&gt;
 3. Spausdink pažymius&lt;br /&gt;
 4. Įrašyk pažymį&lt;br /&gt;
 5. Spausdink meniu&lt;br /&gt;
 6. Išeik&lt;br /&gt;
 &lt;br /&gt;
 Meniu pasirinkimas (1-6): '''1'''&lt;br /&gt;
 Pridėk mokinį: '''Markas'''&lt;br /&gt;
 &lt;br /&gt;
 Meniu pasirinkimas (1-6): '''4'''&lt;br /&gt;
 Įrašyk pažymį&lt;br /&gt;
 Mokinys: '''Markas'''&lt;br /&gt;
 Įrašyk mokinio pažymį&lt;br /&gt;
 Įrašyk 0 (nulį), kad išeitum&lt;br /&gt;
 1   nd sk 1     2   nd sk 2     3   viktorina        4   nd sk 3     5   testas &lt;br /&gt;
 0               0               0               0               0 &lt;br /&gt;
 Pakeisk kuris pažymį: '''1'''&lt;br /&gt;
 Pažymys: '''25'''&lt;br /&gt;
 Pakeisk kuris pažymį: '''2'''&lt;br /&gt;
 Pažymys: '''24'''&lt;br /&gt;
 Pakeisk kuris pažymį: '''3'''&lt;br /&gt;
 Pažymys: '''45'''&lt;br /&gt;
 Pakeisk kuris pažymį: '''4'''&lt;br /&gt;
 Pažymys: '''23'''&lt;br /&gt;
 Pakeisk kuris pažymį: '''5'''&lt;br /&gt;
 Pažymys: '''95'''&lt;br /&gt;
 Pakeisk kuris pažymį: '''0'''&lt;br /&gt;
 &lt;br /&gt;
 Meniu pasirinkimas (1-6): '''3'''&lt;br /&gt;
           nd sk 1         nd sk 2         viktorina       nd sk 3          testas&lt;br /&gt;
 #Max        25              25              50              25              100&lt;br /&gt;
 Markas      25              24              45              23              95 &lt;br /&gt;
 &lt;br /&gt;
 Meniu pasirinkimas (1-6): '''6'''&lt;br /&gt;
&lt;br /&gt;
Štai kaip veikia programa.  Iš esmės, kintamasis &amp;lt;code&amp;gt;mokiniai&amp;lt;/code&amp;gt; yra žodynas, kurio raktai yra mokinių vardai, o reikšmės – jų pažymiai.  Pirmosios dvi eilutės tik sukuria du sąrašus.&lt;br /&gt;
Kita eilutė &amp;lt;code&amp;gt;mokiniai = {'#Max': max_taškai}&amp;lt;/code&amp;gt; sukuria naują&lt;br /&gt;
žodyną su raktu {&amp;lt;code&amp;gt;#Max&amp;lt;/code&amp;gt;}, o reikšmė yra &amp;lt;code&amp;gt;[25, 25, 50, 25, 100]&amp;lt;/code&amp;gt; (nes &amp;lt;code&amp;gt;max_taškai&amp;lt;/code&amp;gt; ir buvo tai, kai priskyrimas buvo padarytas) (aš naudoju raktą &amp;lt;code&amp;gt;#Max&amp;lt;/code&amp;gt;, nes &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; yra surūšiuotas prieš bet kokias abėcėlės raides).  Toliau, &amp;lt;code&amp;gt;spausdink_meniu&amp;lt;/code&amp;gt; yra apibrėžtas.  Po to, &amp;lt;code&amp;gt;spausdink_visus_pažymius&amp;lt;/code&amp;gt; funkcija yra apibrėžta žemiau esančiose &lt;br /&gt;
eilutėse:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def spausdink_visus_pažymius():&lt;br /&gt;
    print('\t',end=&amp;quot; &amp;quot;)&lt;br /&gt;
    for i in range(len(užduotys)):&lt;br /&gt;
        print(užduotys[i], '\t',end=&amp;quot; &amp;quot;)&lt;br /&gt;
    print()&lt;br /&gt;
    raktai = list(mokiniai.keys())&lt;br /&gt;
    keys.sort()&lt;br /&gt;
    for x in raktai:&lt;br /&gt;
        print(x, '\t',end=' ')&lt;br /&gt;
        pažymiai = mokiniai[x]&lt;br /&gt;
        spausdink_pažymius(pažymiai)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Atkreipk dėmesį, į tai, kaip pirmieji raktai yra išimami iš &amp;lt;code&amp;gt;mokiniai&amp;lt;/code&amp;gt; žodyno su &amp;lt;code&amp;gt;raktai&amp;lt;/code&amp;gt; funkcija eilutėje &amp;lt;code&amp;gt;raktai = list(mokiniai.keys())&amp;lt;/code&amp;gt;.  &amp;lt;code&amp;gt;raktai&amp;lt;/code&amp;gt; yra iteruojamasis ir yra paverčiamas į sąrašą, tam kad būtų galima naudoti visas sąrašų funkcijas.  Toliau raktai yra surūšiuojami eilutėje &amp;lt;code&amp;gt;raktai.sort()&amp;lt;/code&amp;gt;.  &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; yra naudojamas pereiti per visus raktus.  Pažymiai yra saugomi kaip sąrašas žodyno viduje, todėl priskyrimas &amp;lt;code&amp;gt;pažymiai = mokiniai[x]&amp;lt;/code&amp;gt; duoda &amp;lt;code&amp;gt;pažymiai&amp;lt;/code&amp;gt; sąrašą, kuris yra saugomas &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; rakte.  Funkcija &amp;lt;code&amp;gt;spausdink_pažymius&amp;lt;/code&amp;gt; tiesiog spausdina sąrašą ir yra apibrėžta keliomis eilutėmis žemiau.&lt;br /&gt;
&lt;br /&gt;
Tolimesnės programos eilutės įgyvendina įvairius meniu pasirinkimus.  Eilutė &amp;lt;code&amp;gt;mokiniai[vardas] = [0] * len(max_taškai)&amp;lt;/code&amp;gt; prideda mokinį prie savo vardo rakto.  Žymėjimas &amp;lt;code&amp;gt;[0] * len(max_taškai)&amp;lt;/code&amp;gt; tiesiog sukuria sąrašą 0-ių, kuris yra tokio pat ilgio kaip ir &amp;lt;code&amp;gt;max_taškai&amp;lt;/code&amp;gt; sąrašas.  &lt;br /&gt;
&lt;br /&gt;
Pašalinti mokinį pasirinkimas tiesiog ištrina mokinį, panašiai kaip ir telefonų knygutės pavyzdyje.  Įrašyti mokinį pasirinkimas yra šiek tiek sudėtingesnis.  Pažymiai yra  gaunami eilutėje &amp;lt;code&amp;gt;pažymiai = mokiniai[vardas]&amp;lt;/code&amp;gt;, ji gauna nuorodą į mokinio &amp;lt;code&amp;gt;vardas&amp;lt;/code&amp;gt; pažymius.  Tada pažymys yra  įrašomas eilutėje &amp;lt;code&amp;gt;pažymiai[kuris] = pažymys&amp;lt;/code&amp;gt;.  Tu gali pastebėti, kad &amp;lt;code&amp;gt;pažymiai&amp;lt;/code&amp;gt; niekada negrąžinami į mokinių žodyną (kaip ir ne  &amp;lt;code&amp;gt;mokiniai[vardas] = pažymiai&amp;lt;/code&amp;gt;).  Trūkstamo teiginio priežastis yra ta, kad &amp;lt;code&amp;gt;pažymiai&amp;lt;/code&amp;gt; iš tiesų yra kitas pavadinimas skirtas &amp;lt;code&amp;gt;mokiniai[vardas]&amp;lt;/code&amp;gt; ir dėl to keičiant &amp;lt;code&amp;gt;pažymiai&amp;lt;/code&amp;gt; keičiasi ir &amp;lt;code&amp;gt;mokiniai[vardas]&amp;lt;/code&amp;gt;.  &lt;br /&gt;
&lt;br /&gt;
Žodynai suteikia lengvą metodą susieti raktus su reikšmėmis. Tai gali būti naudojama norint lengvai sekti duomenis, pridedamus prie įvairių raktų.&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Loginiai reiškiniai |next=Modulių naudojimas}}&lt;br /&gt;
{{BookCat}}&lt;/div&gt;</summary>
		<author><name>Juratevalat</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Loginiai_rei%C5%A1kiniai&amp;diff=3846</id>
		<title>Python Vadovėlis/Loginiai reiškiniai</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Loginiai_rei%C5%A1kiniai&amp;diff=3846"/>
		<updated>2022-02-07T19:25:01Z</updated>

		<summary type="html">&lt;p&gt;Juratevalat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Šiame skyriuje padėsiu tau išsiaiškinti, kas yra loginiai reiškiniai. Sugalvojau nedidelį programos pavyzdį, kurio tau įvedinėti nebūtina: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
a = 6&lt;br /&gt;
b = 7&lt;br /&gt;
c = 42&lt;br /&gt;
print(1, a == 6)&lt;br /&gt;
print(2, a == 7)&lt;br /&gt;
print(3, a == 6 and b == 7)&lt;br /&gt;
print(4, a == 7 and b == 7)&lt;br /&gt;
print(5, not a == 7 and b == 7)&lt;br /&gt;
print(6, a == 7 or b == 7)&lt;br /&gt;
print(7, a == 7 or b == 6)&lt;br /&gt;
print(8, not (a == 7 and b == 6))&lt;br /&gt;
print(9, not a == 7 and b == 6)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Šios programos išvestis yra:&lt;br /&gt;
&lt;br /&gt;
 1 True&lt;br /&gt;
 2 False&lt;br /&gt;
 3 True&lt;br /&gt;
 4 False&lt;br /&gt;
 5 True&lt;br /&gt;
 6 True&lt;br /&gt;
 7 False&lt;br /&gt;
 8 True&lt;br /&gt;
 9 False&lt;br /&gt;
&lt;br /&gt;
Galvoje, turbūt, jau sukasi mintis: kas čia ką tik įvyko? Paaiškinsiu, kaip veikia kiekviena eilutė, kad mintys susidėliotų į savas vietas. Mano programoje gausu &amp;lt;code&amp;gt;print&amp;lt;/code&amp;gt; sakinių, iš kurių kiekvienas išspausdina skaičių ir loginę reikšmę. Skaičius man padeda suprasti, kurio &amp;lt;code&amp;gt;print&amp;lt;/code&amp;gt; sakinio rezultatas tai yra. Atkreipk dėmesį, kad kiekvienoje išvesties eilutėje yra žodis &amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt; arba &amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt;, o Python'e kiekviena loginė reikšmė &amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt; gali būti užrašoma skaičiumi 0, o &amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt; 1.&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;!-- Pavyzdžiui: --&amp;gt;&lt;br /&gt;
&amp;lt;!-- &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt; --&amp;gt;&lt;br /&gt;
&amp;lt;!-- &amp;gt;&amp;gt;&amp;gt; if 1: --&amp;gt;&lt;br /&gt;
&amp;lt;!-- ...     print &amp;quot;True&amp;quot; --&amp;gt;&lt;br /&gt;
&amp;lt;!-- ... else: --&amp;gt;&lt;br /&gt;
&amp;lt;!-- ...     print &amp;quot;False&amp;quot; --&amp;gt;&lt;br /&gt;
&amp;lt;!-- ...  --&amp;gt;&lt;br /&gt;
&amp;lt;!-- True --&amp;gt;&lt;br /&gt;
&amp;lt;!-- &amp;gt;&amp;gt;&amp;gt; if 0: --&amp;gt;&lt;br /&gt;
&amp;lt;!-- ...     print &amp;quot;True&amp;quot; --&amp;gt;&lt;br /&gt;
&amp;lt;!-- ... else: --&amp;gt;&lt;br /&gt;
&amp;lt;!-- ...     print &amp;quot;False&amp;quot; --&amp;gt;&lt;br /&gt;
&amp;lt;!-- ...  --&amp;gt;&lt;br /&gt;
&amp;lt;!-- False --&amp;gt;&lt;br /&gt;
&amp;lt;!-- &amp;lt;/syntaxhighlight&amp;gt; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Eilučių:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(1, a == 6)&lt;br /&gt;
print(2, a == 7)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
rezultatas atitinkamai yra &amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt;, kadangi pirmasis reiškinys yra teisingas, o antrasis yra klaidingas. Trečioji eilutė: &amp;lt;code&amp;gt;print(3, a == 6 and b == 7)&amp;lt;/code&amp;gt; - šiek tiek skiriasi nuo prieš tai buvusių - joje yra naudojamas operatorius &amp;lt;code&amp;gt;and&amp;lt;/code&amp;gt;. Loginis operatorius &amp;lt;code&amp;gt;and&amp;lt;/code&amp;gt; grąžina rezultatą &amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt; tik tada, kai reiškiniai iš abiejų &amp;lt;code&amp;gt;and&amp;lt;/code&amp;gt; pusių yra teisingi, kitu atveju visas reiškinys bus klaidingas ir grąžins &amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt;. Ketvirtoje eilutėje: print(4, a == 7 and b == 7) tik vienas iš reiškinių yra teisingas, dėl to eilutės rezultatas yra &amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt;. Operatoriaus &amp;lt;code&amp;gt;and&amp;lt;/code&amp;gt; galimi rezultatai gali būti apibrėžti tokia lentele:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Reiškinys&lt;br /&gt;
!Rezultatas&lt;br /&gt;
|-  &lt;br /&gt;
|True &amp;lt;code&amp;gt;and&amp;lt;/code&amp;gt; True &lt;br /&gt;
|True &lt;br /&gt;
|-&lt;br /&gt;
|True &amp;lt;code&amp;gt;and&amp;lt;/code&amp;gt; False &lt;br /&gt;
|False &lt;br /&gt;
|-&lt;br /&gt;
|False &amp;lt;code&amp;gt;and&amp;lt;/code&amp;gt; True &lt;br /&gt;
|False&lt;br /&gt;
|-&lt;br /&gt;
|False &amp;lt;code&amp;gt;and&amp;lt;/code&amp;gt; False &lt;br /&gt;
|False&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Atkreipk dėmesį, jei pirmas reiškinys yra klaidingas, tai Python’as nebetikrins antrojo, kadangi jis žino, jog visas reiškinys yra klaidingas. Parašyk šias eilutes ir paleisk programą: &amp;lt;code&amp;gt;False and print(&amp;quot;Labas&amp;quot;)&amp;lt;/code&amp;gt; ir palygink rezultatą su šios eilutės &amp;lt;code&amp;gt;True and print(&amp;quot;Labas&amp;quot;)&amp;lt;/code&amp;gt; rezultatu. Techniškai tai yra vadinama [[w:Short-circuit evaluation|short-circuit evaluation]].&lt;br /&gt;
Penktoje eilutėje, &amp;lt;code&amp;gt;print(5, not a == 7 and b == 7)&amp;lt;/code&amp;gt;, yra naudojamas &amp;lt;code&amp;gt;not&amp;lt;/code&amp;gt; operatorius. &amp;lt;code&amp;gt;not&amp;lt;/code&amp;gt; suteikia priešingą reikšmę reiškiniui (reiškinys taip pat galėtų būti užrašomas taip: &amp;lt;code&amp;gt; print(5, a != 7 and b == 7)&amp;lt;/code&amp;gt;). Štai lentelė apibrėžianti operatoriaus &amp;lt;code&amp;gt;not&amp;lt;/code&amp;gt; rezultatus:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Reiškinys&lt;br /&gt;
!Rezultatas&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;not&amp;lt;/code&amp;gt; True &lt;br /&gt;
|False &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;not&amp;lt;/code&amp;gt; False &lt;br /&gt;
|True&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Dvi toliau pateiktos eilutės: &amp;lt;code&amp;gt;print(6, a == 7 or b == 7)&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;print(7, a == 7 or b == 6)&amp;lt;/code&amp;gt; naudoja operatorių &amp;lt;code&amp;gt;or&amp;lt;/code&amp;gt;. Pastarasis operatorius grąžina &amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt; jei pirmasis reiškinys yra teisingas arba, jei antrasis reiškinys yra teisingas, arba, jei abu reiškiniai yra teisingi. Jei nei vienas iš reiškinių nėra teisingas, tuomet yra grąžinamas False. Štai lentelė apibrėžianti operatoriaus &amp;lt;code&amp;gt;or&amp;lt;/code&amp;gt; rezultatus:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Reiškinys&lt;br /&gt;
!Rezultatas&lt;br /&gt;
|-  &lt;br /&gt;
|True &amp;lt;code&amp;gt;or&amp;lt;/code&amp;gt; True &lt;br /&gt;
| True&lt;br /&gt;
|-&lt;br /&gt;
|True &amp;lt;code&amp;gt;or&amp;lt;/code&amp;gt; False &lt;br /&gt;
|True&lt;br /&gt;
|-&lt;br /&gt;
|False &amp;lt;code&amp;gt;or&amp;lt;/code&amp;gt; True &lt;br /&gt;
|True  &lt;br /&gt;
|-&lt;br /&gt;
|False &amp;lt;code&amp;gt;or&amp;lt;/code&amp;gt; False &lt;br /&gt;
| False &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Turėk omeny, jei pirmasis reiškinys yra teisingas Python’as nebetikrins antrojo, kadangi jis žino, jog visas reiškinys bus teisingas. Kaip jau minėjau anksčiau, naudojant operatorių &amp;lt;code&amp;gt;or&amp;lt;/code&amp;gt;, jei bent vienas iš reiškinių yra teisingas, tuomet viso reiškinio galutinis rezultatas bus teisingas. Pirmoji dalis yra teisinga, todėl antroji dalis gali būti klaidinga arba teisinga, tačiau visa išraiška vis dar teisinga.&lt;br /&gt;
&lt;br /&gt;
Aštuntoje: &amp;lt;code&amp;gt;print(8, not (a == 7 and b == 6))&amp;lt;/code&amp;gt; ir devintoje: &amp;lt;code&amp;gt;print(9, not a == 7 and b == 6)&amp;lt;/code&amp;gt; eilutėse yra atvaizduojamas reiškinių grupavimo pavyzdys. Reiškinius Python’e galima sugrupuoti naudojant skliaustelius. Sugrupavę reiškinius, mes priverčiame Python’ą iš pradžių įvertinti reiškinius skliaustuose ir tik tada likusias reiškinio dalis. Atkreipk dėmesį, kad skliausteliai pakeitė reiškinį iš neteisingo į teisingą. Taip nutiko dėl to, kad operatorius &amp;lt;code&amp;gt;not&amp;lt;/code&amp;gt; buvo pritaikytas reiškiniui skliausteliuose, vietoj to, kad būtų pritaikytas tik &amp;lt;code&amp;gt;a == 7&amp;lt;/code&amp;gt; daliai. &lt;br /&gt;
Parodysiu pavyzdį, kaip rašant kodą galima pritaikyti loginius operatorius:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
sąrašas = [&amp;quot;Gyvenimas&amp;quot;, &amp;quot;Visata&amp;quot;, &amp;quot;Viskas&amp;quot;, &amp;quot;Benas&amp;quot;, &amp;quot;Liepa&amp;quot;, &amp;quot;Gyvenimas&amp;quot;, &amp;quot;Liepa&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
# kuriama sąrašo kopija. Peržiūrėk skyrių Daugiau apie sąrašus, kuriame sužinosi ką reiškia [:].&lt;br /&gt;
kopija = sąrašas[:]&lt;br /&gt;
# surūšiuoti sąrašą&lt;br /&gt;
kopija.sort()&lt;br /&gt;
ankstesnis = kopija[0]&lt;br /&gt;
del kopija[0]&lt;br /&gt;
&lt;br /&gt;
kiekis = 0&lt;br /&gt;
&lt;br /&gt;
# sąraše surask vienodus elementus&lt;br /&gt;
while kiekis &amp;lt; len(kopija) and kopija[kiekis] != ankstesnis:&lt;br /&gt;
    ankstesnis = kopija[kiekis]&lt;br /&gt;
    kiekis = kiekis + 1&lt;br /&gt;
&lt;br /&gt;
# Jei nėra atitikmens tuomet kiekis negali būti &amp;lt; len&lt;br /&gt;
# kadangi ciklas kol bus vykdomas tol, kol kiekis &amp;lt; len&lt;br /&gt;
# ir nėra rastas atitikmuo&lt;br /&gt;
&lt;br /&gt;
if kiekis &amp;lt; len(kopija):&lt;br /&gt;
    print(&amp;quot;Pirmasis atitikmuo:&amp;quot;, ankstesnis)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Šios programos rezultatas:&lt;br /&gt;
Pirmasis atitikmuo: Gyvenimas&lt;br /&gt;
&lt;br /&gt;
Programa ieško vienodų elementų, tikrindama šią sąlygą: &amp;lt;code&amp;gt; while kiekis &amp;lt; len(kopija) and kopija[kiekis] nėra lygus ankstesnis &amp;lt;/code&amp;gt;. Kai &amp;lt;code&amp;gt;kiekis&amp;lt;/code&amp;gt; yra didesnis už paskutinio &amp;lt;code&amp;gt;kopija&amp;lt;/code&amp;gt; sąrašo elemento indeksą arba, kai atsiranda sutampantis elementas, operatorius &amp;lt;code&amp;gt;and&amp;lt;/code&amp;gt; nebėra tiesa, todėl ciklas pasibaigia. &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; sakinys patikrina ar ciklas &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; pasibaigė dėl to, kad buvo rastas sutampantis elementas.&lt;br /&gt;
&lt;br /&gt;
Šioje programoje yra panaudotas dar vienas &amp;lt;code&amp;gt;and&amp;lt;/code&amp;gt; operatoriaus „triukas“. Jei dar kartą pažiūrėsi į operatoriaus &amp;lt;code&amp;gt;and&amp;lt;/code&amp;gt; lentelę pamatysi, jog trečioje eilutėje yra netiesa ir netiesa. Jei &amp;lt;code&amp;gt;kiekis &amp;gt;= len(kopija)&amp;lt;/code&amp;gt; (kitais žodžiais, jei &amp;lt;code&amp;gt;kiekis &amp;lt; len(kopija)&amp;lt;/code&amp;gt; yra &amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt;), tada kodo dalis &amp;lt;code&amp;gt;kopija[kiekis]&amp;lt;/code&amp;gt; nebus tikrinama. Taip yra todėl, kad Python’as žino, jei pirmasis teiginys yra klaidingas, tai abu jie nebegali būti teisingi. Šis „short circuit“  triukas yra naudingas tuomet, kai antrasis &amp;lt;code&amp;gt;and&amp;lt;/code&amp;gt; operatoriaus reiškinys gali sukelti klaidą. Aš panaudojau pirmąjį reiškinį (&amp;lt;code&amp;gt;kiekis &amp;lt; len(kopija)&amp;lt;/code&amp;gt;), kad patikrinčiau ar kintamasis &amp;lt;code&amp;gt;kiekis&amp;lt;/code&amp;gt; yra validus sąrašo &amp;lt;code&amp;gt;kopija&amp;lt;/code&amp;gt; indeksas. Jei manimi netiki, tuomet ištrink iš sąrašo elementus „Liepa“ ir „Gyvenimas“, sukeisk vietomis sąlygas &amp;lt;code&amp;gt;kiekis &amp;lt; len(kopija) and kopija[kiekis] != ankstesnis&amp;lt;/code&amp;gt; (rašyk: &amp;lt;code&amp;gt;kopija[kiekis] != ankstesnis and kiekis &amp;lt; len(kopija)&amp;lt;/code&amp;gt;) ir patikrink ar programa vis dar veikia, kaip turėtų. &lt;br /&gt;
&lt;br /&gt;
Loginiai operatoriai gali būti naudojami, kai mes norime patikrinti dvi arba daugiau skirtingų sąlygų vienu metu.&lt;br /&gt;
&lt;br /&gt;
=== Pastaba apie loginius operatorius ===&lt;br /&gt;
Dažna pradedančiųjų programuotojų klaida yra neteisingas supratimas, kaip veikia loginiai operatoriai ir kaip juos „skaito“ Python'o interpretatorius. Pavyzdžiui: vos tik sužinojus apie operatorius &amp;lt;code&amp;gt;and&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;or&amp;lt;/code&amp;gt;, galima pagalvoti, kad išraiška &amp;lt;code&amp;gt;x == ('a' or 'b')&amp;lt;/code&amp;gt; patikrins, ar kintamasis &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; yra lygus &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;  arba kintamasis &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; lygus &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt;, tačiau taip nėra. Norint suprasti, apie ką kalbu, pradėk interaktyvią sesiją su interpretatoriumi ir įvesk šias išraiškas:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; 'a' == ('a' or 'b')&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; 'b' == ('a' or 'b')&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; 'a' == ('a' and 'b')&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; 'b' == ('a' and 'b')&lt;br /&gt;
&lt;br /&gt;
Štai yra rezultatai, kurie nėra intuityvūs:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt;''' 'a' == ('a' or 'b')'''&lt;br /&gt;
 True&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt;''' 'b' == ('a' or 'b')'''&lt;br /&gt;
 False&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt;''' 'a' == ('a' and 'b')'''&lt;br /&gt;
 False &lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt;''' 'b' == ('a' and 'b')'''&lt;br /&gt;
 True&lt;br /&gt;
&lt;br /&gt;
Šiuo momentu gali pasirodyti, jog operatoriai &amp;lt;code&amp;gt;and&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;or&amp;lt;/code&amp;gt; veikia klaidingai. Neatrodo logiška, jog pirmuose reiškiniuose &amp;lt;code&amp;gt;'a'&amp;lt;/code&amp;gt;  yra lygu &amp;lt;code&amp;gt;'a'&amp;lt;/code&amp;gt;  arba &amp;lt;code&amp;gt;'b'&amp;lt;/code&amp;gt;, tačiau &amp;lt;code&amp;gt;'b'&amp;lt;/code&amp;gt; nėra lygu &amp;lt;code&amp;gt;'a'&amp;lt;/code&amp;gt; arba &amp;lt;code&amp;gt;'b'&amp;lt;/code&amp;gt;. Taip pat yra ir su paskutiniu reiškiniu - jis neatrodo teisingas, nes &amp;lt;code&amp;gt;'b'&amp;lt;/code&amp;gt; yra lygus &amp;lt;code&amp;gt;'a'&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;'b'&amp;lt;/code&amp;gt;. Išsiaiškinus, kaip veikia Python’o interpretatorius pasidaro aišku, kodėl gavome būtent tokius rezultatus.&lt;br /&gt;
&lt;br /&gt;
Kai Python’o interpretatorius „pamato“ reiškinį, kuriame yra naudojamas &amp;lt;code&amp;gt;or&amp;lt;/code&amp;gt;, jis paima pirmąjį teiginį ir patikrina ar jo rezultatas yra &amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt;. Jei pirmasis teiginys yra &amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt;, tuomet Python’as grąžina to teiginio rezultatą, netikrindamas antrojo. Kaip jau minėjau anksčiau, naudojant operatorių &amp;lt;code&amp;gt;or&amp;lt;/code&amp;gt; užtenka patikrinti ar pirmasis teiginys yra teisingas, nes tada mes jau žinome, kad visas reiškinys yra teisingas ir programai nebereikia papildomai tikrinti antrojo. Iš kitos pusės, jei pirmasis teiginys grąžina &amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt;, tada Python’as turi patikrinti ir antrojo teiginio rezultatą bei grąžinti jo reikšmę. Antrasis teiginys nusako visos išraiškos rezultatą, kadangi pirmoji pusė buvo klaidinga. Šis interpretatoriaus „tingus“ įvertinimas vadinamas &amp;quot;short circuiting&amp;quot; ir yra įprastas būdas įvertinti logines išraiškas daugelyje programavimo kalbų.&lt;br /&gt;
&lt;br /&gt;
Panašiai veikia ir operatorius &amp;lt;code&amp;gt;and&amp;lt;/code&amp;gt;: Python’as naudoja, &amp;quot;short circuit&amp;quot; techniką, kad pagreitintų išraiškos įvertinimą. Jei pirmasis teiginys yra klaidingas, tada visas reiškinys yra klaidingas. Kitu atveju, jei pirmasis teiginys yra teisingas, tada Python’as patikrina antrąjį ir grąžina galutinę reikšmę.&lt;br /&gt;
&lt;br /&gt;
Reiktų atkreiptį dėmesį į vieną niuansą: ne tik loginių išraiškų rezultatai gali būti apibrėžiami &amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt; arba &amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt; reikšmėmis. Norėdami patikrinti bet kurio objekto &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; loginę reikšmę, galite naudoti funkciją &amp;lt;code&amp;gt;bool(x)&amp;lt;/code&amp;gt;.  Žemiau yra pateikiama lentelė, kurioje yra pavyzdžiai, kokiems objektams Python’as priskiria &amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt; arba &amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt;:  &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!True !!False&lt;br /&gt;
|-&lt;br /&gt;
|True ||False&lt;br /&gt;
|-&lt;br /&gt;
|1 ||0&lt;br /&gt;
|-&lt;br /&gt;
|Skaičiai kitokie nei nulis ||Tekstinė eilutė 'None'&lt;br /&gt;
|-&lt;br /&gt;
|Ne tuščios tekstinės eilutės ||Tuščios tekstinės eilutės&lt;br /&gt;
|-&lt;br /&gt;
|Sąrašai (lists) turintys elementų ||Sąrašai (lists) neturintys elementų&lt;br /&gt;
|-&lt;br /&gt;
|Žodynai (dictionaries) turintys elementų ||Žodynai (dictionaries) neturintys elementų&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Dabar galime suprasti gluminančius rezultatus, kuriuos gavome, kai anksčiau išbandėme logines išraiškas. Pažiūrėkime, ką Python'o interpretatorius „mato“, eidamas per šį kodą:&lt;br /&gt;
&lt;br /&gt;
'''Pirmasis atvejis:'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt;''' 'a' == ('a' or 'b')'''  # Iš pradžių žiūrėk į reiškinį skliaustuose: &amp;quot;('a' or 'b')&amp;quot;&lt;br /&gt;
                            # 'a' yra netuščia teksto eilutė, todėl reiškinio rezultatas yra True&lt;br /&gt;
                            # Grąžink tą pirmą reikšmę: 'a'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt;''' 'a' == 'a' '''          # teksto eilutė 'a' yra lygi teksto eilutei 'a', todėl reiškinio rezultatas yra True&lt;br /&gt;
 True&lt;br /&gt;
&lt;br /&gt;
'''Antrasis atvejis:'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt;''' 'b' == ('a' or 'b')'''  # Iš pradžių žiūrėk į reiškinį skliaustuose: &amp;quot;('a' or 'b')&amp;quot;&lt;br /&gt;
                            # 'a' yra netuščia teksto eilutė, todėl reiškinio rezultatas yra True&lt;br /&gt;
                            # Grąžink tą pirmą reikšmę: 'a'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt;''' 'b' == 'a' '''          # teksto eilutė 'b' nėra lygi teksto eilutei 'a', todėl reiškinio rezultatas yra False&lt;br /&gt;
 False &lt;br /&gt;
&lt;br /&gt;
'''Trečiasis atvejis:'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt;''' 'a' == ('a' and 'b')''' # Iš pradžių žiūrėk į reiškinį skliaustuose: &amp;quot;('a' and 'b')&amp;quot;&lt;br /&gt;
                            # 'a' yra netuščia teksto eilutė, todėl reiškinio rezultatas yra True, patikrinkime antrąją reikšmę&lt;br /&gt;
                            # 'b' yra netuščia teksto eilutė, todėl antrojo reiškinio rezultatas yra True&lt;br /&gt;
                            # Grąžink antrąją reikšmę kaip viso reiškinio rezultatą: 'b'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt;''' 'a' == 'b' '''          # teksto eilutė 'a' nėra lygi teksto eilutei 'b', todėl reiškinio rezultatas yra False&lt;br /&gt;
 False&lt;br /&gt;
&lt;br /&gt;
'''Ketvirtasis atvejis:'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt;''' 'b' == ('a' and 'b')''' # Iš pradžių žiūrėk į reiškinį skliaustuose:&lt;br /&gt;
                            # 'a' yra netuščia teksto eilutė, todėl reiškinio rezultatas yra True, patikrinkime antrąją reikšmę&lt;br /&gt;
                            # 'b' yra netuščia teksto eilutė, todėl antrojo reiškinio rezultatas yra True&lt;br /&gt;
                            # Grąžink antrąją reikšmę kaip viso reiškinio rezultatą: 'b'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt;''' 'b' == 'b' '''          # teksto eilutė 'b' yra lygi teksto eilutei 'b', todėl reiškinio rezultatas yra True&lt;br /&gt;
 True &lt;br /&gt;
&lt;br /&gt;
Taigi, Python’as tikrai teisingai įvertino duotuosius reiškinius, kurių rezultatai iš pradžių neatrodė akivaizdūs. Kaip minėjau anksčiau, svarbu atpažinti, kokį rezultatą tavo loginė išraiška grąžins ir kodėl.&lt;br /&gt;
&lt;br /&gt;
Grįžtant prie pradinių reiškinių, štai kaip juos turėtum aprašyti, kad jie grąžintų reikšmes, kurių tikiesi:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt;''' 'a' == 'a' or 'a' == 'b' '''&lt;br /&gt;
 True&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt;''' 'b' == 'a' or 'b' == 'b' '''&lt;br /&gt;
 True&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt;''' 'a' == 'a' and 'a' == 'b' '''&lt;br /&gt;
 False&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt;''' 'b' == 'a' and 'b' == 'b' '''&lt;br /&gt;
 False&lt;br /&gt;
&lt;br /&gt;
Įvertinus šiuos reiškinius yra gaunamos logines reikšmes &amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt; arba &amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt;, o ne teksto eilutės, kad galėtume gauti teisingus palyginimo rezultatus.&lt;br /&gt;
&lt;br /&gt;
=== Pavyzdžiai ===&lt;br /&gt;
'''slaptazodis1.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
## Ši programa prašo vartotojo prisijungimo vardo ir slaptažodžio.&lt;br /&gt;
# Kai vartotojas juos įveda, programa įvertina ar jis gali prisijungti.&lt;br /&gt;
&lt;br /&gt;
vardas = input(&amp;quot;Koks tavo vardas? &amp;quot;)&lt;br /&gt;
slaptažodis = input(&amp;quot;Koks tavo slaptažodis? &amp;quot;)&lt;br /&gt;
if vardas == &amp;quot;Benas&amp;quot; and slaptažodis == &amp;quot;Penktadienis&amp;quot;:&lt;br /&gt;
    print(&amp;quot;Sveikas, Benai!&amp;quot;)&lt;br /&gt;
elif vardas == &amp;quot;Jonas&amp;quot; and slaptažodis == &amp;quot;Kietas&amp;quot;:&lt;br /&gt;
    print(&amp;quot;Sveikas, Jonai!&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Aš tavęs nepažįstu.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pavyzdiniai rezultatai:&lt;br /&gt;
&lt;br /&gt;
Koks tavo vardas? '''Benas'''&lt;br /&gt;
&lt;br /&gt;
Koks tavo slaptažodis? '''Penktadienis'''&lt;br /&gt;
&lt;br /&gt;
Sveikas, Benai!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Koks tavo vardas? '''Andrius'''&lt;br /&gt;
&lt;br /&gt;
Koks tavo slaptažodis? '''Pinigai'''&lt;br /&gt;
&lt;br /&gt;
Aš tavęs nepažįstu.&lt;br /&gt;
&lt;br /&gt;
=== Užduotys ===&lt;br /&gt;
Parašyk programą, kurioje vartotojas turi atspėti tavo vardą, tačiau jie turės tik 3 spėjimus tai padaryti iki kol programa bus uždaryta.&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;
print(&amp;quot;Pabandyk atspėti mano vardą!&amp;quot;)&lt;br /&gt;
kiekis = 1&lt;br /&gt;
vardas = &amp;quot;gilbertas&amp;quot;&lt;br /&gt;
spėjimas = input(&amp;quot;Koks mano vardas? &amp;quot;)&lt;br /&gt;
while kiekis &amp;lt; 3 and spėjimas.lower() != vardas:    # .lower visas didžiąsias raides teksto eilutėje pakeičia į mažąsias, todėl net jei vartotojas įves Gilbertas, tai vis tiek bus teisingas atsakymas&lt;br /&gt;
    print(&amp;quot;Tu neteisus!&amp;quot;)&lt;br /&gt;
    spėjimas = input(&amp;quot;Koks mano vardas? &amp;quot;)&lt;br /&gt;
    kiekis = kiekis + 1&lt;br /&gt;
&lt;br /&gt;
if spėjimas.lower() != vardas:&lt;br /&gt;
    print(&amp;quot;Tu neteisus!&amp;quot;) # ši žinutė nėra atspausdinama trečiąjį bandymą, todėl mes tai padarome dabar&lt;br /&gt;
    print(&amp;quot;Tu nebegali spėti.&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Taip! Mano vardas yra&amp;quot;, vardas + &amp;quot;!&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Ciklai For |next=Žodynai}}&lt;br /&gt;
{{BookCat}}&lt;/div&gt;</summary>
		<author><name>Juratevalat</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Loginiai_rei%C5%A1kiniai&amp;diff=3845</id>
		<title>Python Vadovėlis/Loginiai reiškiniai</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Loginiai_rei%C5%A1kiniai&amp;diff=3845"/>
		<updated>2022-02-07T19:06:07Z</updated>

		<summary type="html">&lt;p&gt;Juratevalat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Šiame skyriuje padėsiu tau išsiaiškinti, kas yra loginiai reiškiniai. Sugalvojau nedidelį programos pavyzdį, kurio tau įvedinėti nebūtina: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
a = 6&lt;br /&gt;
b = 7&lt;br /&gt;
c = 42&lt;br /&gt;
print(1, a == 6)&lt;br /&gt;
print(2, a == 7)&lt;br /&gt;
print(3, a == 6 and b == 7)&lt;br /&gt;
print(4, a == 7 and b == 7)&lt;br /&gt;
print(5, not a == 7 and b == 7)&lt;br /&gt;
print(6, a == 7 or b == 7)&lt;br /&gt;
print(7, a == 7 or b == 6)&lt;br /&gt;
print(8, not (a == 7 and b == 6))&lt;br /&gt;
print(9, not a == 7 and b == 6)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Šios programos išvestis yra:&lt;br /&gt;
&lt;br /&gt;
 1 True&lt;br /&gt;
 2 False&lt;br /&gt;
 3 True&lt;br /&gt;
 4 False&lt;br /&gt;
 5 True&lt;br /&gt;
 6 True&lt;br /&gt;
 7 False&lt;br /&gt;
 8 True&lt;br /&gt;
 9 False&lt;br /&gt;
&lt;br /&gt;
Galvoje, turbūt, jau sukasi mintis: kas čia ką tik įvyko? Paaiškinsiu, kaip veikia kiekviena eilutė, kad mintys susidėliotų į savas vietas. Mano programoje gausu &amp;lt;code&amp;gt;print&amp;lt;/code&amp;gt; sakinių, iš kurių kiekvienas išspausdina skaičių ir loginę reikšmę. Skaičius man padeda suprasti, kurio &amp;lt;code&amp;gt;print&amp;lt;/code&amp;gt; sakinio rezultatas tai yra. Atkreipk dėmesį, kad kiekvienoje išvesties eilutėje yra žodis &amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt; arba &amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt;, o Python'e kiekviena loginė reikšmė &amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt; gali būti užrašoma skaičiumi 0, o &amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt; 1.&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;!-- Pavyzdžiui: --&amp;gt;&lt;br /&gt;
&amp;lt;!-- &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt; --&amp;gt;&lt;br /&gt;
&amp;lt;!-- &amp;gt;&amp;gt;&amp;gt; if 1: --&amp;gt;&lt;br /&gt;
&amp;lt;!-- ...     print &amp;quot;True&amp;quot; --&amp;gt;&lt;br /&gt;
&amp;lt;!-- ... else: --&amp;gt;&lt;br /&gt;
&amp;lt;!-- ...     print &amp;quot;False&amp;quot; --&amp;gt;&lt;br /&gt;
&amp;lt;!-- ...  --&amp;gt;&lt;br /&gt;
&amp;lt;!-- True --&amp;gt;&lt;br /&gt;
&amp;lt;!-- &amp;gt;&amp;gt;&amp;gt; if 0: --&amp;gt;&lt;br /&gt;
&amp;lt;!-- ...     print &amp;quot;True&amp;quot; --&amp;gt;&lt;br /&gt;
&amp;lt;!-- ... else: --&amp;gt;&lt;br /&gt;
&amp;lt;!-- ...     print &amp;quot;False&amp;quot; --&amp;gt;&lt;br /&gt;
&amp;lt;!-- ...  --&amp;gt;&lt;br /&gt;
&amp;lt;!-- False --&amp;gt;&lt;br /&gt;
&amp;lt;!-- &amp;lt;/syntaxhighlight&amp;gt; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Eilučių:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(1, a == 6)&lt;br /&gt;
print(2, a == 7)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
rezultatas atitinkamai yra &amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt;, kadangi pirmasis reiškinys yra teisingas, o antrasis yra klaidingas. Trečioji eilutė: &amp;lt;code&amp;gt;print(3, a == 6 and b == 7)&amp;lt;/code&amp;gt; - šiek tiek skiriasi nuo prieš tai buvusių - joje yra naudojamas operatorius &amp;lt;code&amp;gt;and&amp;lt;/code&amp;gt;. Loginis operatorius &amp;lt;code&amp;gt;and&amp;lt;/code&amp;gt; grąžina rezultatą &amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt; tik tada, kai reiškiniai iš abiejų &amp;lt;code&amp;gt;and&amp;lt;/code&amp;gt; pusių yra teisingi, kitu atveju visas reiškinys bus klaidingas ir grąžins &amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt;. Ketvirtoje eilutėje: print(4, a == 7 and b == 7) tik vienas iš reiškinių yra teisingas, dėl to eilutės rezultatas yra &amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt;. Operatoriaus &amp;lt;code&amp;gt;and&amp;lt;/code&amp;gt; galimi rezultatai gali būti apibrėžti tokia lentele:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Reiškinys&lt;br /&gt;
!Rezultatas&lt;br /&gt;
|-  &lt;br /&gt;
|True &amp;lt;code&amp;gt;and&amp;lt;/code&amp;gt; True &lt;br /&gt;
|True &lt;br /&gt;
|-&lt;br /&gt;
|True &amp;lt;code&amp;gt;and&amp;lt;/code&amp;gt; False &lt;br /&gt;
|False &lt;br /&gt;
|-&lt;br /&gt;
|False &amp;lt;code&amp;gt;and&amp;lt;/code&amp;gt; True &lt;br /&gt;
|False&lt;br /&gt;
|-&lt;br /&gt;
|False &amp;lt;code&amp;gt;and&amp;lt;/code&amp;gt; False &lt;br /&gt;
|False&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Atkreipk dėmesį, jei pirmas reiškinys yra klaidingas, tai Python’as nebetikrins antrojo, kadangi jis žino, jog visas reiškinys yra klaidingas. Parašyk šias eilutes ir paleisk programą: &amp;lt;code&amp;gt;False and print(&amp;quot;Labas&amp;quot;)&amp;lt;/code&amp;gt; ir palygink rezultatą su šios eilutės &amp;lt;code&amp;gt;True and print(&amp;quot;Labas&amp;quot;)&amp;lt;/code&amp;gt; rezultatu. Techniškai tai yra vadinama [[w:Short-circuit evaluation|short-circuit evaluation]].&lt;br /&gt;
Penktoje eilutėje, &amp;lt;code&amp;gt;print(5, not a == 7 and b == 7)&amp;lt;/code&amp;gt;, yra naudojamas &amp;lt;code&amp;gt;not&amp;lt;/code&amp;gt; operatorius. &amp;lt;code&amp;gt;not&amp;lt;/code&amp;gt; suteikia priešingą reikšmę reiškiniui (reiškinys taip pat galėtų būti užrašomas taip: &amp;lt;code&amp;gt; print(5, a != 7 and b == 7)&amp;lt;/code&amp;gt;). Štai lentelė apibrėžianti operatoriaus &amp;lt;code&amp;gt;not&amp;lt;/code&amp;gt; rezultatus:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Reiškinys&lt;br /&gt;
!Rezultatas&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;not&amp;lt;/code&amp;gt; True &lt;br /&gt;
|False &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;not&amp;lt;/code&amp;gt; False &lt;br /&gt;
|True&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Dvi toliau pateiktos eilutės: &amp;lt;code&amp;gt;print(6, a == 7 or b == 7)&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;print(7, a == 7 or b == 6)&amp;lt;/code&amp;gt; naudoja operatorių &amp;lt;code&amp;gt;or&amp;lt;/code&amp;gt;. Pastarasis operatorius grąžina &amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt; jei pirmasis reiškinys yra teisingas arba, jei antrasis reiškinys yra teisingas, arba, jei abu reiškiniai yra teisingi. Jei nei vienas iš reiškinių nėra teisingas, tuomet yra grąžinamas False. Štai lentelė apibrėžianti operatoriaus &amp;lt;code&amp;gt;or&amp;lt;/code&amp;gt; rezultatus:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Reiškinys&lt;br /&gt;
!Rezultatas&lt;br /&gt;
|-  &lt;br /&gt;
|True &amp;lt;code&amp;gt;or&amp;lt;/code&amp;gt; True &lt;br /&gt;
| True&lt;br /&gt;
|-&lt;br /&gt;
|True &amp;lt;code&amp;gt;or&amp;lt;/code&amp;gt; False &lt;br /&gt;
|True&lt;br /&gt;
|-&lt;br /&gt;
|False &amp;lt;code&amp;gt;or&amp;lt;/code&amp;gt; True &lt;br /&gt;
|True  &lt;br /&gt;
|-&lt;br /&gt;
|False &amp;lt;code&amp;gt;or&amp;lt;/code&amp;gt; False &lt;br /&gt;
| False &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Turėk omeny, jei pirmasis reiškinys yra teisingas Python’as nebetikrins antrojo, kadangi jis žino, jog visas reiškinys bus teisingas. Kaip jau minėjau anksčiau, naudojant operatorių &amp;lt;code&amp;gt;or&amp;lt;/code&amp;gt;, jei bent vienas iš reiškinių yra teisingas, tuomet viso reiškinio galutinis rezultatas bus teisingas. Pirmoji dalis yra teisinga, todėl antroji dalis gali būti klaidinga arba teisinga, tačiau visa išraiška vis dar teisinga.&lt;br /&gt;
&lt;br /&gt;
Aštuntoje: &amp;lt;code&amp;gt;print(8, not (a == 7 and b == 6))&amp;lt;/code&amp;gt; ir devintoje: &amp;lt;code&amp;gt;print(9, not a == 7 and b == 6)&amp;lt;/code&amp;gt; eilutėse yra atvaizduojamas reiškinių grupavimo pavyzdys. Reiškinius Python’e galima sugrupuoti naudojant skliaustelius. Sugrupavę reiškinius, mes priverčiame Python’ą iš pradžių įvertinti reiškinius skliaustuose ir tik tada likusias reiškinio dalis. Atkreipk dėmesį, kad skliausteliai pakeitė reiškinį iš neteisingo į teisingą. Taip nutiko dėl to, kad operatorius &amp;lt;code&amp;gt;not&amp;lt;/code&amp;gt; buvo pritaikytas reiškiniui skliausteliuose, vietoj to, kad būtų pritaikytas tik &amp;lt;code&amp;gt;a == 7&amp;lt;/code&amp;gt; daliai. &lt;br /&gt;
Parodysiu pavyzdį, kaip rašant kodą galima pritaikyti loginius operatorius:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
sąrašas = [&amp;quot;Gyvenimas&amp;quot;, &amp;quot;Visata&amp;quot;, &amp;quot;Viskas&amp;quot;, &amp;quot;Benas&amp;quot;, &amp;quot;Liepa&amp;quot;, &amp;quot;Gyvenimas&amp;quot;, &amp;quot;Liepa&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
# kuriama sąrašo kopija. Peržiūrėk skyrių Daugiau apie sąrašus, kuriame sužinosi ką reiškia [:].&lt;br /&gt;
kopija = sąrašas[:]&lt;br /&gt;
# surūšiuoti sąrašą&lt;br /&gt;
kopija.sort()&lt;br /&gt;
ankstesnis = kopija[0]&lt;br /&gt;
del kopija[0]&lt;br /&gt;
&lt;br /&gt;
kiekis = 0&lt;br /&gt;
&lt;br /&gt;
# sąraše surask vienodus elementus&lt;br /&gt;
while kiekis &amp;lt; len(kopija) and kopija[kiekis] != ankstesnis:&lt;br /&gt;
    ankstesnis = kopija[kiekis]&lt;br /&gt;
    kiekis = kiekis + 1&lt;br /&gt;
&lt;br /&gt;
# Jei nėra atitikmens tuomet kiekis negali būti &amp;lt; len&lt;br /&gt;
# kadangi ciklas kol bus vykdomas tol, kol kiekis &amp;lt; len&lt;br /&gt;
# ir nėra rastas atitikmuo&lt;br /&gt;
&lt;br /&gt;
if kiekis &amp;lt; len(kopija):&lt;br /&gt;
    print(&amp;quot;Pirmasis atitikmuo:&amp;quot;, ankstesnis)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Šios programos rezultatas:&lt;br /&gt;
Pirmasis atitikmuo: Gyvenimas&lt;br /&gt;
&lt;br /&gt;
Programa ieško vienodų elementų, tikrindama šią sąlygą: &amp;lt;code&amp;gt; while kiekis &amp;lt; len(kopija) ir kopija[kiekis] nėra lygus ankstesnis &amp;lt;/code&amp;gt;. Kai &amp;lt;code&amp;gt;kiekis&amp;lt;/code&amp;gt; yra didesnis už paskutinio &amp;lt;code&amp;gt;kopija&amp;lt;/code&amp;gt; sąrašo elemento indeksą arba, kai atsiranda sutampantis elementas, operatorius &amp;lt;code&amp;gt;and&amp;lt;/code&amp;gt; nebėra tiesa, todėl ciklas pasibaigia. &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; sakinys patikrina ar ciklas &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; pasibaigė dėl to, kad buvo rastas sutampantis elementas.&lt;br /&gt;
&lt;br /&gt;
Šioje programoje yra panaudotas dar vienas &amp;lt;code&amp;gt;and&amp;lt;/code&amp;gt; operatoriaus „triukas“. Jei dar kartą pažiūrėsi į operatoriaus &amp;lt;code&amp;gt;and&amp;lt;/code&amp;gt; lentelę pamatysi, jog trečioje eilutėje yra netiesa ir netiesa. Jei &amp;lt;code&amp;gt;kiekis &amp;gt;= len(kopija)&amp;lt;/code&amp;gt; (kitais žodžiais, jei &amp;lt;code&amp;gt;kiekis &amp;lt; len(kopija)&amp;lt;/code&amp;gt; yra &amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt;), tada kodo dalis &amp;lt;code&amp;gt;kopija[kiekis]&amp;lt;/code&amp;gt; nebus tikrinama. Taip yra todėl, kad Python’as žino, jei pirmasis teiginys yra klaidingas, tai abu jie nebegali būti teisingi. Šis „short circuit“  triukas yra naudingas tuomet, kai antrasis &amp;lt;code&amp;gt;and&amp;lt;/code&amp;gt; operatoriaus teiginys gali sukelti klaidą. Aš panaudojau pirmąjį teiginį (&amp;lt;code&amp;gt;kiekis &amp;lt; len(kopija)&amp;lt;/code&amp;gt;), kad patikrinčiau ar kintamasis &amp;lt;code&amp;gt;kiekis&amp;lt;/code&amp;gt; yra validus sąrašo &amp;lt;code&amp;gt;kopija&amp;lt;/code&amp;gt; indeksas. Jei manimi netiki, tuomet ištrink iš sąrašo elementus „Liepa“ ir „Gyvenimas“, sukeisk vietomis sąlygas &amp;lt;code&amp;gt;kiekis &amp;lt; len(kopija) and kopija[kiekis] != ankstesnis&amp;lt;/code&amp;gt; (rašyk: &amp;lt;code&amp;gt;kopija[kiekis] != ankstesnis and kiekis &amp;lt; len(kopija)&amp;lt;/code&amp;gt;) ir patikrink ar programa vis dar veikia, kaip turėtų. &lt;br /&gt;
&lt;br /&gt;
Loginės išraiškos gali būti naudojamos, kai mes norime patikrinti dvi arba daugiau skirtingų sąlygų vienu metu.&lt;br /&gt;
&lt;br /&gt;
=== Pastaba apie loginius operatorius ===&lt;br /&gt;
Dažna pradedančiųjų programuotojų klaida yra neteisingas supratimas, kaip veikia loginiai operatoriai ir kaip juos „skaito“ Python'o interpretatorius. Pavyzdžiui: vos tik sužinojus apie operatorius &amp;lt;code&amp;gt;and&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;or&amp;lt;/code&amp;gt;, galima pagalvoti, kad išraiška &amp;lt;code&amp;gt;x == ('a' or 'b')&amp;lt;/code&amp;gt; patikrins, ar kintamasis &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; yra lygus &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;  arba kintamasis &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; lygus &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt;, tačiau taip nėra. Norint suprasti, apie ką kalbu, pradėk interaktyvią sesiją su interpretatoriumi ir įvesk šias išraiškas:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; 'a' == ('a' or 'b')&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; 'b' == ('a' or 'b')&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; 'a' == ('a' and 'b')&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; 'b' == ('a' and 'b')&lt;br /&gt;
&lt;br /&gt;
Štai yra rezultatai, kurie nėra intuityvūs:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt;''' 'a' == ('a' or 'b')'''&lt;br /&gt;
 True&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt;''' 'b' == ('a' or 'b')'''&lt;br /&gt;
 False&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt;''' 'a' == ('a' and 'b')'''&lt;br /&gt;
 False &lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt;''' 'b' == ('a' and 'b')'''&lt;br /&gt;
 True&lt;br /&gt;
&lt;br /&gt;
Šiuo momentu gali pasirodyti, jog operatoriai &amp;lt;code&amp;gt;and&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;or&amp;lt;/code&amp;gt; veikia klaidingai. Neatrodo logiška, jog pirmuose reiškiniuose &amp;lt;code&amp;gt;'a'&amp;lt;/code&amp;gt;  yra lygu &amp;lt;code&amp;gt;'a'&amp;lt;/code&amp;gt;  arba &amp;lt;code&amp;gt;'b'&amp;lt;/code&amp;gt;, tačiau &amp;lt;code&amp;gt;'b'&amp;lt;/code&amp;gt; nėra lygu &amp;lt;code&amp;gt;'a'&amp;lt;/code&amp;gt; arba &amp;lt;code&amp;gt;'b'&amp;lt;/code&amp;gt;. Taip pat yra ir su paskutiniu reiškiniu - jis neatrodo teisingas, nes &amp;lt;code&amp;gt;'b'&amp;lt;/code&amp;gt; yra lygus &amp;lt;code&amp;gt;'a'&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;'b'&amp;lt;/code&amp;gt;. Išsiaiškinus, kaip veikia Python’o interpretatorius pasidaro aišku, kodėl gavome būtent tokius rezultatus.&lt;br /&gt;
&lt;br /&gt;
Kai Python’o interpretatorius „pamato“ reiškinį, kuriame yra naudojamas &amp;lt;code&amp;gt;or&amp;lt;/code&amp;gt;, jis paima pirmąjį teiginį ir patikrina ar jo rezultatas yra &amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt;. Jei pirmasis teiginys yra &amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt;, tuomet Python’as grąžina to teiginio rezultatą, netikrindamas antrojo. Kaip jau minėjau anksčiau, naudojant operatorių &amp;lt;code&amp;gt;or&amp;lt;/code&amp;gt; užtenka patikrinti ar pirmasis teiginys yra teisingas, nes tada mes jau žinome, kad visas reiškinys yra teisingas ir programai nebereikia papildomai tikrinti antrojo. Iš kitos pusės, jei pirmasis teiginys grąžina &amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt;, tada Python’as turi patikrinti ir antrojo teiginio rezultatą bei grąžinti jo reikšmę. Antrasis teiginys nusako visos išraiškos rezultatą, kadangi pirmoji pusė buvo klaidinga. Šis interpretatoriaus „tingus“ įvertinimas vadinamas &amp;quot;short circuiting&amp;quot; ir yra įprastas būdas įvertinti logines išraiškas daugelyje programavimo kalbų.&lt;br /&gt;
&lt;br /&gt;
Panašiai veikia ir operatorius &amp;lt;code&amp;gt;and&amp;lt;/code&amp;gt;: Python’as naudoja, &amp;quot;short circuit&amp;quot; techniką, kad pagreitintų išraiškos įvertinimą. Jei pirmasis teiginys yra klaidingas, tada visas reiškinys yra klaidingas. Kitu atveju, jei pirmasis teiginys yra teisingas, tada Python’as patikrina antrąjį ir grąžina galutinę reikšmę.&lt;br /&gt;
&lt;br /&gt;
Reiktų atkreiptį dėmesį į vieną niuansą: ne tik loginių išraiškų rezultatai gali būti apibrėžiami &amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt; arba &amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt; reikšmėmis. Norėdami patikrinti bet kurio objekto &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; loginę reikšmę, galite naudoti funkciją &amp;lt;code&amp;gt;bool(x)&amp;lt;/code&amp;gt;.  Žemiau yra pateikiama lentelė, kurioje yra pavyzdžiai, kokiems objektams Python’as priskiria &amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt; arba &amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt;:  &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!True !!False&lt;br /&gt;
|-&lt;br /&gt;
|True ||False&lt;br /&gt;
|-&lt;br /&gt;
|1 ||0&lt;br /&gt;
|-&lt;br /&gt;
|Skaičiai kitokie nei nulis ||Tekstinė eilutė 'None'&lt;br /&gt;
|-&lt;br /&gt;
|Ne tuščios tekstinės eilutės ||Tuščios tekstinės eilutės&lt;br /&gt;
|-&lt;br /&gt;
|Sąrašai (lists) turintys elementų ||Sąrašai (lists) neturintys elementų&lt;br /&gt;
|-&lt;br /&gt;
|Žodynai (dictionaries) turintys elementų ||Žodynai (dictionaries) neturintys elementų&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Dabar galime suprasti gluminančius rezultatus, kuriuos gavome, kai anksčiau išbandėme logines išraiškas. Pažiūrėkime, ką Python'o interpretatorius „mato“, eidamas per šį kodą:&lt;br /&gt;
&lt;br /&gt;
'''Pirmasis atvejis:'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt;''' 'a' == ('a' or 'b')'''  # Iš pradžių žiūrėk į reiškinį skliaustuose: &amp;quot;('a' or 'b')&amp;quot;&lt;br /&gt;
                            # 'a' yra netuščia teksto eilutė, todėl reiškinio rezultatas yra True&lt;br /&gt;
                            # Grąžink tą pirmą reikšmę: 'a'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt;''' 'a' == 'a' '''          # teksto eilutė 'a' yra lygi teksto eilutei 'a', todėl reiškinio rezultatas yra True&lt;br /&gt;
 True&lt;br /&gt;
&lt;br /&gt;
'''Antrasis atvejis:'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt;''' 'b' == ('a' or 'b')'''  # Iš pradžių žiūrėk į reiškinį skliaustuose: &amp;quot;('a' or 'b')&amp;quot;&lt;br /&gt;
                            # 'a' yra netuščia teksto eilutė, todėl reiškinio rezultatas yra True&lt;br /&gt;
                            # Grąžink tą pirmą reikšmę: 'a'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt;''' 'b' == 'a' '''          # teksto eilutė 'b' nėra lygi teksto eilutei 'a', todėl reiškinio rezultatas yra False&lt;br /&gt;
 False &lt;br /&gt;
&lt;br /&gt;
'''Trečiasis atvejis:'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt;''' 'a' == ('a' and 'b')''' # Iš pradžių žiūrėk į reiškinį skliaustuose: &amp;quot;('a' and 'b')&amp;quot;&lt;br /&gt;
                            # 'a' yra netuščia teksto eilutė, todėl reiškinio rezultatas yra True, patikrinkime antrąją reikšmę&lt;br /&gt;
                            # 'b' yra netuščia teksto eilutė, todėl antrojo reiškinio rezultatas yra True&lt;br /&gt;
                            # Grąžink antrąją reikšmę kaip viso reiškinio rezultatą: 'b'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt;''' 'a' == 'b' '''          # teksto eilutė 'a' nėra lygi teksto eilutei 'b', todėl reiškinio rezultatas yra False&lt;br /&gt;
 False&lt;br /&gt;
&lt;br /&gt;
'''Ketvirtasis atvejis:'''&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt;''' 'b' == ('a' and 'b')''' # Iš pradžių žiūrėk į reiškinį skliaustuose:&lt;br /&gt;
                            # 'a' yra netuščia teksto eilutė, todėl reiškinio rezultatas yra True, patikrinkime antrąją reikšmę&lt;br /&gt;
                            # 'b' yra netuščia teksto eilutė, todėl antrojo reiškinio rezultatas yra True&lt;br /&gt;
                            # Grąžink antrąją reikšmę kaip viso reiškinio rezultatą: 'b'&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt;''' 'b' == 'b' '''          # teksto eilutė 'b' yra lygi teksto eilutei 'b', todėl reiškinio rezultatas yra True&lt;br /&gt;
 True &lt;br /&gt;
&lt;br /&gt;
Taigi, Python’as tikrai teisingai įvertino duotuosius reiškinius, kurių rezultatai iš pradžių neatrodė akivaizdūs. Kaip minėjau anksčiau, svarbu atpažinti, kokį rezultatą tavo loginė išraiška grąžins ir kodėl.&lt;br /&gt;
&lt;br /&gt;
Grįžtant prie pradinių reiškinių, štai kaip juos turėtum aprašyti, kad jie grąžintų reikšmes, kurių tikiesi:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt;''' 'a' == 'a' or 'a' == 'b' '''&lt;br /&gt;
 True&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt;''' 'b' == 'a' or 'b' == 'b' '''&lt;br /&gt;
 True&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt;''' 'a' == 'a' and 'a' == 'b' '''&lt;br /&gt;
 False&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt;''' 'b' == 'a' and 'b' == 'b' '''&lt;br /&gt;
 False&lt;br /&gt;
&lt;br /&gt;
Įvertinus šiuos reiškinius yra gaunamos logines reikšmes &amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt; arba &amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt;, o ne teksto eilutės, kad galėtume gauti teisingus palyginimo rezultatus.&lt;br /&gt;
&lt;br /&gt;
=== Pavyzdžiai ===&lt;br /&gt;
'''slaptazodis1.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
## Ši programa prašo vartotojo prisijungimo vardo ir slaptažodžio.&lt;br /&gt;
# Kai vartotojas juos įveda, programa įvertina ar jis gali prisijungti.&lt;br /&gt;
&lt;br /&gt;
vardas = input(&amp;quot;Koks tavo vardas? &amp;quot;)&lt;br /&gt;
slaptažodis = input(&amp;quot;Koks tavo slaptažodis? &amp;quot;)&lt;br /&gt;
if vardas == &amp;quot;Benas&amp;quot; and slaptažodis == &amp;quot;Penktadienis&amp;quot;:&lt;br /&gt;
    print(&amp;quot;Sveikas, Benai!&amp;quot;)&lt;br /&gt;
elif vardas == &amp;quot;Jonas&amp;quot; and slaptažodis == &amp;quot;Kietas&amp;quot;:&lt;br /&gt;
    print(&amp;quot;Sveikas, Jonai!&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Aš tavęs nepažįstu.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pavyzdiniai rezultatai:&lt;br /&gt;
&lt;br /&gt;
Koks tavo vardas? '''Benas'''&lt;br /&gt;
&lt;br /&gt;
Koks tavo slaptažodis? '''Penktadienis'''&lt;br /&gt;
&lt;br /&gt;
Sveikas, Benai!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Koks tavo vardas? '''Andrius'''&lt;br /&gt;
&lt;br /&gt;
Koks tavo slaptažodis? '''Pinigai'''&lt;br /&gt;
&lt;br /&gt;
Aš tavęs nepažįstu.&lt;br /&gt;
&lt;br /&gt;
=== Užduotys ===&lt;br /&gt;
Parašyk programą, kurioje vartotojas turi atspėti tavo vardą, tačiau jie turės tik 3 spėjimus tai padaryti iki kol programa bus uždaryta.&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;
print(&amp;quot;Pabandyk atspėti mano vardą!&amp;quot;)&lt;br /&gt;
kiekis = 1&lt;br /&gt;
vardas = &amp;quot;gilbertas&amp;quot;&lt;br /&gt;
spėjimas = input(&amp;quot;Koks mano vardas? &amp;quot;)&lt;br /&gt;
while kiekis &amp;lt; 3 and spėjimas.lower() != vardas:    # .lower visas didžiąsias raides teksto eilutėje pakeičia į mažąsias, todėl net jei vartotojas įves Gilbertas, tai vis tiek bus teisingas atsakymas&lt;br /&gt;
    print(&amp;quot;Tu neteisus!&amp;quot;)&lt;br /&gt;
    spėjimas = input(&amp;quot;Koks mano vardas? &amp;quot;)&lt;br /&gt;
    kiekis = kiekis + 1&lt;br /&gt;
&lt;br /&gt;
if spėjimas.lower() != vardas:&lt;br /&gt;
    print(&amp;quot;Tu neteisus!&amp;quot;) # ši žinutė nėra atspausdinama trečiąjį bandymą, todėl mes tai padarome dabar&lt;br /&gt;
    print(&amp;quot;Tu nebegali spėti.&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Taip! Mano vardas yra&amp;quot;, vardas + &amp;quot;!&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Ciklai For |next=Žodynai}}&lt;br /&gt;
{{BookCat}}&lt;/div&gt;</summary>
		<author><name>Juratevalat</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Ciklai_For&amp;diff=3844</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=3844"/>
		<updated>2022-02-07T18:59:00Z</updated>

		<summary type="html">&lt;p&gt;Juratevalat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ir štai naujas 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;, kurie nurodo intervalo galus. &amp;lt;code&amp;gt;pradžia&amp;lt;/code&amp;gt; yra pirmasis intervalo skaičius. &amp;lt;code&amp;gt;pabaiga&amp;lt;/code&amp;gt; yra vienu didesnis nei paskutinis intervalo 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, 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; komandų, 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 spausdintų komandų 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 apibrėžia 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 aprašomas &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>Juratevalat</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/S%C4%85ra%C5%A1ai&amp;diff=3843</id>
		<title>Python Vadovėlis/Sąrašai</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/S%C4%85ra%C5%A1ai&amp;diff=3843"/>
		<updated>2022-02-07T18:38:24Z</updated>

		<summary type="html">&lt;p&gt;Juratevalat: /* Daugiau sąrašų funkcijų */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Kintamieji, turintys daugiau nei vieną reikšmę ===&lt;br /&gt;
Tu jau žinai įprastus kintamuosius, kuriuose saugoma viena reikšmė. Tačiau kiti kintamųjų tipai gali turėti daugiau nei vieną reikšmę. Jie vadinami konteineriais (containers), nes juose gali būti daugiau nei vienas objektas. Paprasčiausias tipas vadinamas sąrašu (list). Sąrašo pavyzdys:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
kuris = int(input(&amp;quot;Kuris mėnuo (1-12)? &amp;quot;))&lt;br /&gt;
mėnesiai = [&amp;quot;Sausis&amp;quot;, &amp;quot;Vasaris&amp;quot;, &amp;quot;Kovas&amp;quot;, &amp;quot;Balandis&amp;quot;, &amp;quot;Gegužė&amp;quot;, &amp;quot;Birželis&amp;quot;, &amp;quot;Liepa&amp;quot;,&lt;br /&gt;
          &amp;quot;Rugpjūtis&amp;quot;, &amp;quot;Rugsėjis&amp;quot;, &amp;quot;Spalis&amp;quot;, &amp;quot;Lapkritis&amp;quot;, &amp;quot;Gruodis&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
if 1 &amp;lt;= kuris &amp;lt;= 12:&lt;br /&gt;
    print(&amp;quot;Mėnuo yra &amp;quot;, mėnesiai[kuris - 1])&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pavyzdžio išvestis būtų:&lt;br /&gt;
&lt;br /&gt;
 Kuris mėnuo (1-12)? '''3'''&lt;br /&gt;
 Mėnuo yra Kovas&lt;br /&gt;
&lt;br /&gt;
Šiame pavyzdyje &amp;lt;code&amp;gt;mėnesiai&amp;lt;/code&amp;gt; yra sąrašas. Kintamasis &amp;lt;code&amp;gt;mėnesiai&amp;lt;/code&amp;gt; yra apibrėžtas šia eilute &amp;lt;code&amp;gt;mėnesiai = [&amp;quot;Sausis&amp;quot;, &amp;quot;Vasaris&amp;quot;, &amp;quot;Kovas&amp;quot;, &amp;quot;Balandis&amp;quot;, &amp;quot;Gegužė&amp;quot;, &amp;quot;Birželis&amp;quot;, &amp;quot;Liepa&amp;quot;,&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;&amp;quot;Rugpjūtis&amp;quot;, &amp;quot;Rugsėjis&amp;quot;, &amp;quot;Spalis&amp;quot;, &amp;quot;Lapkritis&amp;quot;, &amp;quot;Gruodis&amp;quot;]&amp;lt;/code&amp;gt; (atkreipk dėmesį, kad viena komanda parašyta per dvi eilutes; paprastai keliant eilutę yra naudojamas simbolis / tačiau šiuo atveju jis nėra būtinas, nes Python'as supranta, kad viskas, kas yra laužtiniuose skliaustuose yra kartu). &amp;lt;code&amp;gt;[&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt; pradeda ir užbaigia sąrašą, o kableliai (&amp;lt;code&amp;gt;,&amp;lt;/code&amp;gt;) atskiria sąrašo elementus. Sąrašas naudojamas šioje dalyje: &amp;lt;code&amp;gt;mėnesiai[kuris - 1]&amp;lt;/code&amp;gt;. Sąrašas susideda iš elementų, kurie sunumeruoti pradedant nuo 0. Kitaip tariant, norint sąraše pasiekti elementą &amp;quot;Sausis&amp;quot;, turėtum rašyti &amp;lt;code&amp;gt;mėnesiai[0]&amp;lt;/code&amp;gt;. Nurodant sąrašui skaičių, tu gauni reikšmę išsaugotą toje sąrašo pozicijoje.&lt;br /&gt;
&lt;br /&gt;
Sąlyginis sakinys &amp;lt;code&amp;gt; if 1 &amp;lt;= kuris &amp;lt;= 12:&amp;lt;/code&amp;gt; tikrina, ar skaičius kintamajame &amp;lt;code&amp;gt;kuris&amp;lt;/code&amp;gt; yra tarp vieno ir dvylikos imtinai (tiek yra mėnesių ir taip jie numeruojami).&lt;br /&gt;
&lt;br /&gt;
Viename sąraše gali būti saugomi ir skirtingų tipų duomenys. Kiekvienas elementas saugo vis kitą reikšmę. Pavyzdžiui, sąrašas sukurtas šiuo kodu: &amp;lt;code&amp;gt;demoSąrašas = [&amp;quot;gyvybė&amp;quot;, 42, &amp;quot;visata&amp;quot;, 6, &amp;quot;ir&amp;quot;, 9]&amp;lt;/code&amp;gt; atrodytų taip:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
!elemento numeris&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;
|demoSąrašas &lt;br /&gt;
|&amp;quot;gyvybė&amp;quot; &lt;br /&gt;
|42 &lt;br /&gt;
|&amp;quot;visata&amp;quot; &lt;br /&gt;
|6 &lt;br /&gt;
|&amp;quot;ir&amp;quot;&lt;br /&gt;
|9&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Kiekvienas elementas pasiekiamas per jo eilės numerį – indeksą, todėl komanda &amp;lt;code&amp;gt;demoSąrašas[0]&amp;lt;/code&amp;gt; pateiktų reikšmę: &amp;lt;code&amp;gt;&amp;quot;gyvybė&amp;quot;&amp;lt;/code&amp;gt;, o komanda &amp;lt;code&amp;gt;demoSąrašas[1]&amp;lt;/code&amp;gt; – reikšmę &amp;lt;code&amp;gt;42&amp;lt;/code&amp;gt; ir taip toliau iki kol &amp;lt;code&amp;gt;demoSąrašas[5]&amp;lt;/code&amp;gt; pateikia reikšmę &amp;lt;code&amp;gt;9&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Daugiau sąrašų funkcijų ===&lt;br /&gt;
Kitas pavyzdys yra skirtas parodyti daugybę kitų dalykų, kuriuos gali padaryti sąrašai (šį kartą nesitikiu, kad viską pats sugebėsi parašyti, bet tikriausiai turėtum šiek tiek pažaisti su sąrašais interaktyviame režime, kol apsiprasi su jais). Pavyzdys:&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]&lt;br /&gt;
print(&amp;quot;demoSąrašas = &amp;quot;, demoSąrašas)&lt;br /&gt;
demoSąrašas.append(&amp;quot;oras&amp;quot;)&lt;br /&gt;
print(&amp;quot;po 'oras' pridėjimo, demoSąrašas atrodo taip:&amp;quot;)&lt;br /&gt;
print(demoSąrašas)&lt;br /&gt;
print(&amp;quot;len(demoSąrašas) =&amp;quot;, len(demoSąrašas))&lt;br /&gt;
print(&amp;quot;demoSąrašas.index(42) =&amp;quot;, demoSąrašas.index(42))&lt;br /&gt;
print(&amp;quot;demoSąrašas[1] =&amp;quot;, demoSąrašas[1])&lt;br /&gt;
&lt;br /&gt;
# o dabar mes pereisime per visą sąrašą &amp;quot;for&amp;quot; ciklu&lt;br /&gt;
for c in range(len(demoSąrašas)):&lt;br /&gt;
    print(&amp;quot;demoSąrašas[&amp;quot;, c, &amp;quot;] =&amp;quot;, demoSąrašas[c])&lt;br /&gt;
&lt;br /&gt;
del demoSąrašas[2]&lt;br /&gt;
print(&amp;quot;Po 'visata' pašalinimo, demoSąrašas atrodo taip:&amp;quot;)&lt;br /&gt;
print(demoSąrašas)&lt;br /&gt;
if &amp;quot;gyvybė&amp;quot; in demoSąrašas:&lt;br /&gt;
    print(&amp;quot;'gyvybė' buvo rasta kintamajame demoSąrašas&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;'gyvybė' nebuvo rasta kintamajame demoSąrašas&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
if &amp;quot;ameba&amp;quot; in demoSąrašas:&lt;br /&gt;
    print(&amp;quot;'ameba' buvo rasta kintamajame demoSąrašas&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
if &amp;quot;ameba&amp;quot; not in demoSąrašas:&lt;br /&gt;
    print(&amp;quot;'ameba' nebuvo rasta kintamajame demoSąrašas&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
kitasSąrašas = [42, 7, 0, 123]&lt;br /&gt;
kitasSąrašas.sort()&lt;br /&gt;
print(&amp;quot;Išrikiuotas kitasSąrašas atrodo taip&amp;quot;, kitasSąrašas)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kodo išvestis būtų tokia:&lt;br /&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]&lt;br /&gt;
 po &amp;quot;oras&amp;quot; pridėjimo, demoSąrašas atrodo taip:&lt;br /&gt;
 [&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;
 len(demoSąrašas) = 7&lt;br /&gt;
 demoSąrašas.index(42) = 1&lt;br /&gt;
 demoSąrašas[1] = 42&lt;br /&gt;
 demoSąrašas[ 0 ] = gyvybė&lt;br /&gt;
 demoSąrašas[ 1 ] = 42&lt;br /&gt;
 demoSąrašas[ 2 ] = visata&lt;br /&gt;
 demoSąrašas[ 3 ] = 6&lt;br /&gt;
 demoSąrašas[ 4 ] = ir&lt;br /&gt;
 demoSąrašas[ 5 ] = 9&lt;br /&gt;
 demoSąrašas[ 6 ] = oras&lt;br /&gt;
 Po 'visata' pašalinimo, demoSąrašas atrodo taip:&lt;br /&gt;
 [&amp;quot;gyvybė&amp;quot;, 42, 6, &amp;quot;ir&amp;quot;, 9, &amp;quot;oras&amp;quot;]&lt;br /&gt;
 &amp;quot;gyvybė&amp;quot; buvo rasta kintamajame demoSąrašas&lt;br /&gt;
 &amp;quot;ameba&amp;quot; nebuvo rasta kintamajame demoSąrašas&lt;br /&gt;
 Išrikiuotas kitasSąrašas atrodo taip [0, 7, 42, 123]&lt;br /&gt;
&lt;br /&gt;
Šiame pavyzdyje naudojama visa krūva naujų funkcijų. Atkreipk dėmesį, kad gali tiesiog atspausdinti (&amp;lt;code&amp;gt;print&amp;lt;/code&amp;gt;) visą sąrašą. Toliau funkcija &amp;lt;code&amp;gt;append&amp;lt;/code&amp;gt; naudojama tam, kad pridėtum naują elementą į sąrašo pabaigą. &amp;lt;code&amp;gt;len&amp;lt;/code&amp;gt; grąžina kiek elementų yra sąraše. Tinkami sąrašo indeksai (skaičiai kuriuos naudojame viduje laužtinių skliaustų &amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt;) yra nuo 0 iki &amp;lt;code&amp;gt;len - 1&amp;lt;/code&amp;gt;. Funkcija &amp;lt;code&amp;gt;index&amp;lt;/code&amp;gt; nurodo, kur sąraše yra pirmoji elemento vieta. Atkreipk dėmesį, kaip &amp;lt;code&amp;gt;demoSąrašas.index(42)&amp;lt;/code&amp;gt; pateikia 1, o paleidus &amp;lt;code&amp;gt;demoSąrašas[1]&amp;lt;/code&amp;gt; grąžina 42. Norint gauti pagalbos dėl visų sąrašo funkcijų, įvykdyk komandą &amp;lt;code&amp;gt; help(list)&amp;lt;/code&amp;gt; interaktyviajame Python'o interpretatoriuje.&lt;br /&gt;
&lt;br /&gt;
Eilutė &amp;lt;code&amp;gt;# o dabar mes pereisime per visą sąrašą &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; ciklu&amp;lt;/code&amp;gt; yra tik priminimas programuotojui (dar vadinamas kaip „komentaras“). Python'as ignoruoja viską, kas parašyta esamoje eilutėje po simbolio &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;. Toliau eilutės:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
for c in range(len(demoSąrašas)):&lt;br /&gt;
    print(&amp;quot;demoSąrašas[&amp;quot;, c, &amp;quot;] =&amp;quot;, demoSąrašas[c])&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
sukuria kintamajį &amp;lt;code&amp;gt;c&amp;lt;/code&amp;gt;, kuris prasideda nuo 0 ir didinamas vienetu, kol pasiekia paskutinį sąrašo indeksą. Tuo tarpu &amp;lt;code&amp;gt;print&amp;lt;/code&amp;gt; komanda išspausdina kiekvieną sąrašo elementą.&lt;br /&gt;
&lt;br /&gt;
Daug geresnis būdas tai padaryti:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
for c, x in enumerate(demoSąrašas):&lt;br /&gt;
    print(&amp;quot;demoSąrašas[&amp;quot;, c, &amp;quot;] =&amp;quot;, x)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Komanda &amp;lt;code&amp;gt;del&amp;lt;/code&amp;gt; gali būti naudojama tam tikram sąrašo elementui pašalinti. Kitos kelios eilutės naudoja &amp;lt;code&amp;gt;in&amp;lt;/code&amp;gt; operatorių, kad patikrintų, ar elementas yra sąraše, ar ne. Funkcija &amp;lt;code&amp;gt;sort&amp;lt;/code&amp;gt; rūšiuoja sąrašą. Tai naudinga, jei tau reikia sąrašo nuo mažiausio iki didžiausio arba abėcėlės tvarka. Atmink, kad tai pakeičia sąrašą. Apibendrinant, su sąrašu yra atliekami šie veiksmai:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!pavyzdys &lt;br /&gt;
!paaiškinimas&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;demoSąrašas[2]&amp;lt;/code&amp;gt; &lt;br /&gt;
|grąžina 2 sąrašo demoSąrašas elementą&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;demoSąrašas[2] = 3&amp;lt;/code&amp;gt; &lt;br /&gt;
|į sąrašo demoSąrašas 2 poziciją (numeruojama nuo 0) įrašo reikšmę 3&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;del demoSąrašas[2]&amp;lt;/code&amp;gt; &lt;br /&gt;
|pašalina sąrašo demoSąrašas elementą, esantį 2 pozicijoje&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;len(demoSąrašas)&amp;lt;/code&amp;gt; &lt;br /&gt;
|grąžina &amp;lt;code&amp;gt;demoSąrašas&amp;lt;/code&amp;gt; sąrašo ilgį, t.y. elementų skaičių&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;quot;reikšmė&amp;quot; in demoSąrašas&amp;lt;/code&amp;gt; &lt;br /&gt;
|yra ''True'' jeigu &amp;lt;tt&amp;gt;&amp;quot;reikšmė&amp;quot;&amp;lt;/tt&amp;gt; yra elementas, priklausantis &amp;lt;code&amp;gt;demoSąrašas&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;quot;reikšmė&amp;quot; not in demoSąrašas&amp;lt;/code&amp;gt; &lt;br /&gt;
|yra ''True'' jeigu &amp;lt;code&amp;gt;&amp;quot;reikšmė&amp;quot;&amp;lt;/code&amp;gt; nėra elementas, priklausantis &amp;lt;code&amp;gt;demoSąrašas&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;kitasSąrašas.sort()&amp;lt;/code&amp;gt; &lt;br /&gt;
|surūšiuoja &amp;lt;code&amp;gt;kitasSąrašas&amp;lt;/code&amp;gt;. Atmink, kad rūšiavimas pavyktų, visi sąrašo elementai turi būti arba skaičiai, arba eilutės (string).&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;demoSąrašas.index(&amp;quot;reikšmė&amp;quot;)&amp;lt;/code&amp;gt; &lt;br /&gt;
|grąžina pirmosios vietos, kurioje atsiranda &amp;lt;code&amp;gt;&amp;quot;reikšmė&amp;quot;&amp;lt;/code&amp;gt;, indeksą&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;demoSąrašas.append(&amp;quot;reikšmė&amp;quot;)&amp;lt;/code&amp;gt; &lt;br /&gt;
|sąrašo pabaigoje prideda elementą &amp;lt;code&amp;gt;&amp;quot;reikšmė&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;demoSąrašas.remove(&amp;quot;reikšmė&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|pašalina pirmą rastą elementą su nurodyta reikšme iš &amp;lt;code&amp;gt;demoSąrašas&amp;lt;/code&amp;gt; (taip pat, kaip &amp;lt;code&amp;gt;del demoSąrašas[demoSąrašas.index(&amp;quot;reikšmė&amp;quot;)]&amp;lt;/code&amp;gt;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Pavyzdžiai, kur praktiškai naudojamos šios funkcijos:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
meniuElementas = 0&lt;br /&gt;
vardųSarašas = []&lt;br /&gt;
while meniuElementas != 9:&lt;br /&gt;
    print(&amp;quot;--------------------&amp;quot;)&lt;br /&gt;
    print(&amp;quot;1. Spausdinti sąrašą&amp;quot;)&lt;br /&gt;
    print(&amp;quot;2. Pridėti vardą prie sąrašo&amp;quot;)&lt;br /&gt;
    print(&amp;quot;3. Pašalinti vardą iš sąrašo&amp;quot;)&lt;br /&gt;
    print(&amp;quot;4. Pakeisti elementą sąraše&amp;quot;)&lt;br /&gt;
    print(&amp;quot;9. Išeiti&amp;quot;)&lt;br /&gt;
    meniuElementas = int(input(&amp;quot;Pasirinkite elementą iš meniu: &amp;quot;))&lt;br /&gt;
    if meniuElementas == 1:&lt;br /&gt;
        dabartinis = 0&lt;br /&gt;
        if len(vardųSarašas) &amp;gt; 0:&lt;br /&gt;
            while dabartinis &amp;lt; len(vardųSarašas):&lt;br /&gt;
                print(dabartinis, &amp;quot;.&amp;quot;, vardųSarašas[dabartinis])&lt;br /&gt;
                dabartinis = dabartinis + 1&lt;br /&gt;
        else:&lt;br /&gt;
            print(&amp;quot;Sąrašas tuščias&amp;quot;)&lt;br /&gt;
    elif meniuElementas == 2:&lt;br /&gt;
        vardas = input(&amp;quot;Įveskite vardą, kurį norite pridėti: &amp;quot;)&lt;br /&gt;
        vardųSarašas.append(vardas)&lt;br /&gt;
    elif meniuElementas == 3:&lt;br /&gt;
        šalinamasVardas = input(&amp;quot;Kokį vardą norėtumėte pašalinti:&amp;quot;)&lt;br /&gt;
        if šalinamasVardas in vardųSarašas:&lt;br /&gt;
            # vardųSarašas.remove(šalinamasVardas) veiktų taip pat gerai&lt;br /&gt;
            elementoIndeksas = vardųSarašas.index(šalinamasVardas)&lt;br /&gt;
            del vardųSarašas[elementoIndeksas]&lt;br /&gt;
            # Aukščiau pateiktas kodas pašalina tik pirmąjį surasta vardą.&lt;br /&gt;
            # Žemiau esantis kodas pašalina visus.&lt;br /&gt;
            # while šalinamasVardas in vardųSarašas:&lt;br /&gt;
            #       elementoIndeksas = vardųSarašas.index(šalinamasVardas)&lt;br /&gt;
            #       del vardųSarašas[elementoIndeksas]&lt;br /&gt;
        else:&lt;br /&gt;
            print(šalinamasVardas, &amp;quot;nerastas&amp;quot;)&lt;br /&gt;
    elif meniuElementas == 4:&lt;br /&gt;
        senasVardas = input(&amp;quot;Kokį vardą norėtumėte pakeisti:&amp;quot;)&lt;br /&gt;
        if senasVardas in vardųSarašas:&lt;br /&gt;
            elementoIndeksas = vardųSarašas.index(senasVardas)&lt;br /&gt;
            naujasVardas = input(&amp;quot;Koks yra naujas vardas: &amp;quot;)&lt;br /&gt;
            vardųSarašas[elementoIndeksas] = naujasVardas&lt;br /&gt;
        else:&lt;br /&gt;
            print(senasVardas, &amp;quot;nerastas&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Iki pasimatymo&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ir čia yra išvesties dalis:&lt;br /&gt;
&lt;br /&gt;
 --------------------&lt;br /&gt;
 1. Spausdinti sąrašą&lt;br /&gt;
 2. Pridėti vardą prie sąrašo&lt;br /&gt;
 3. Pašalinti vardą iš sąrašo&lt;br /&gt;
 4. Pakeisti elementą sąraše&lt;br /&gt;
 9. Išeiti&lt;br /&gt;
 &lt;br /&gt;
 Pasirinkite elementą iš meniu: '''2'''&lt;br /&gt;
 Įveskite vardą, kurį norite pridėti: '''Benas'''&lt;br /&gt;
 &lt;br /&gt;
 Pasirinkite elementą iš meniu: '''2'''&lt;br /&gt;
 Įveskite vardą, kurį norite pridėti: '''Liepa'''&lt;br /&gt;
 &lt;br /&gt;
 Pasirinkite elementą iš meniu: '''1'''&lt;br /&gt;
 0. Benas&lt;br /&gt;
 1. Liepa&lt;br /&gt;
 &lt;br /&gt;
 Pasirinkite elementą iš meniu: '''3'''&lt;br /&gt;
 Kokį vardą norėtumėte pašalinti: '''Benas'''&lt;br /&gt;
 &lt;br /&gt;
 Pasirinkite elementą iš meniu: '''4'''&lt;br /&gt;
 Kokį vardą norėtumėte pakeisti: '''Liepa'''&lt;br /&gt;
 Koks yra naujas vardas: '''Liepa Petraitė'''&lt;br /&gt;
 &lt;br /&gt;
 Pasirinkite elementą iš meniu: '''1'''&lt;br /&gt;
 0. Liepa Petraitė&lt;br /&gt;
 &lt;br /&gt;
 Pasirinkite elementą iš meniu: '''9'''&lt;br /&gt;
 Iki pasimatymo&lt;br /&gt;
&lt;br /&gt;
Tai buvo ilga programa. Panagrinėkime pirminį programos tekstą. Eilutė &amp;lt;code&amp;gt;vardųSarašas = []&amp;lt;/code&amp;gt; sukuria kintamajį &amp;lt;code&amp;gt;vardųSarašas&amp;lt;/code&amp;gt;, tuščia sąrašą, be elementų. Kita svarbi eilutė yra &amp;lt;code&amp;gt;while meniuElementas != 9:&amp;lt;/code&amp;gt;. Ši eilutė pradeda ciklą, leidžiantį šios programos meniu sistemai veikti. Kitos eilutės parodo meniu ir nusprendžia, kurią programos dalį paleisti.&lt;br /&gt;
&lt;br /&gt;
Ši dalis:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
dabartinis = 0&lt;br /&gt;
    if len(vardųSarašas) &amp;gt; 0:&lt;br /&gt;
        while dabartinis &amp;lt; len(vardųSarašas):&lt;br /&gt;
            print(dabartinis, &amp;quot;.&amp;quot;, vardųSarašas[dabartinis])&lt;br /&gt;
            dabartinis = dabartinis + 1&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Sąrašas tuščias&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
eina per sąrašą ir spausdina kiekvieną vardą. &amp;lt;code&amp;gt;len(vardųSarašas)&amp;lt;/code&amp;gt; nurodo, kiek elementų yra sąraše. Jei &amp;lt;code&amp;gt;len&amp;lt;/code&amp;gt; grąžina &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;, tai reiškia sąrašas tuščias.&lt;br /&gt;
&lt;br /&gt;
Toliau po kelių eilučių matysi sakinį &amp;lt;code&amp;gt;vardųSarašas.append(vardas)&amp;lt;/code&amp;gt;. Jis naudoja funkciją &amp;lt;code&amp;gt;append&amp;lt;/code&amp;gt;, kad pridėtų elementą į sąrašo pabaigą. Peršokus dar dvi eilutes, pastebėsi šią kodo dalį:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
elementoIndeksas = vardųSarašas.index(šalinamasVardas)&lt;br /&gt;
del vardųSarašas[elementoIndeksas]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Čia funkcija &amp;lt;code&amp;gt;index&amp;lt;/code&amp;gt; yra naudojama norint rasti indekso reikšmę, kuri vėliau bus naudojama elementui pašalinti. &amp;lt;code&amp;gt;del vardųSarašas[elementoIndeksas]&amp;lt;/code&amp;gt; naudojamas sąrašo elementui pašalinti.   &lt;br /&gt;
&lt;br /&gt;
Kitoje kodo dalyje&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
senasVardas = input(&amp;quot;Kokį vardą norėtumėte pakeisti:&amp;quot;)&lt;br /&gt;
if senasVardas in vardųSarašas:&lt;br /&gt;
    elementoIndeksas = vardųSarašas.index(senasVardas)&lt;br /&gt;
    naujasVardas = input(&amp;quot;Koks yra naujas vardas: &amp;quot;)&lt;br /&gt;
    vardųSarašas[elementoIndeksas] = naujasVardas&lt;br /&gt;
else:&lt;br /&gt;
    print(senasVardas, &amp;quot;nerastas&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
naudojamas &amp;lt;code&amp;gt;index&amp;lt;/code&amp;gt;, kad surastų &amp;lt;code&amp;gt;elementoIndeksas&amp;lt;/code&amp;gt; ir tada įdėtų &amp;lt;code&amp;gt;naujasVardas&amp;lt;/code&amp;gt; ten, kur buvo &amp;lt;code&amp;gt;senasVardas&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Sveikinu, perpratus sąrašus, dabar tu pakankamai žinai kalbą, kad galėtum atlikti bet kokius skaičiavimus, kuriuos gali atlikti kompiuteris (tai techniškai žinoma kaip [[Wikipedia:Turing_completeness|Turing-Completeness]]). Žinoma, vis dar yra daug funkcijų, kurias naudojant tu pasilengvinsi sau gyvenimą.&lt;br /&gt;
&lt;br /&gt;
=== Pavyzdžiai ===&lt;br /&gt;
'''testas.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
## Ši programa atlieka žinių patikrinimą&lt;br /&gt;
&lt;br /&gt;
# Pirmiausia surenkame testo klausimus.&lt;br /&gt;
# Vėliau šią dalį pakeisime, kad būtų naudojama failinė sistema.&lt;br /&gt;
def gauti_klausimus():&lt;br /&gt;
    # atkreipk dėmesį, kad duomenys saugomi kaip sąrašų sąrašas&lt;br /&gt;
    return [[&amp;quot;Kokios spalvos yra dangus giedrą dieną? &amp;quot;, &amp;quot;mėlynas&amp;quot;],&lt;br /&gt;
            [&amp;quot;Koks atsakymas į gyvenimą, visatą ir viską? &amp;quot;, &amp;quot;42&amp;quot;],&lt;br /&gt;
            [&amp;quot;Kas yra keturių raidžių žodis pelės gaudyklei? &amp;quot;, &amp;quot;katė&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
# Ši dalis patikrins vieną klausimą&lt;br /&gt;
# pateikiamas vienas klausimas&lt;br /&gt;
# grąžinama teisinga (True), jei vartotojas įvedė teisingą atsakymą, kitu atveju - klaidinga (False)&lt;br /&gt;
&lt;br /&gt;
def pateik_klausimą(klausimas_ir_atsakymas):&lt;br /&gt;
    # ištraukiame klausimą ir atsakymą iš sąrašo&lt;br /&gt;
    # Ši funkcija priima dviejų elementų sąrašą, klausimą ir atsakymą.  &lt;br /&gt;
    klausimas = klausimas_ir_atsakymas[0]   &lt;br /&gt;
    atsakymas = klausimas_ir_atsakymas[1]&lt;br /&gt;
    # užduodame klausimą vartotojui&lt;br /&gt;
    duotas_atsakymas = input(klausimas)&lt;br /&gt;
    # palyginame vartotojo atsakymą su teisingu atsakymu&lt;br /&gt;
    if atsakymas == duotas_atsakymas:&lt;br /&gt;
        print(&amp;quot;Teisingai&amp;quot;)&lt;br /&gt;
        return True&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Neteisingai. Teisingas atsakymas: &amp;quot;, atsakymas)&lt;br /&gt;
        return False&lt;br /&gt;
&lt;br /&gt;
# Šis kodas apims visus klausimus&lt;br /&gt;
def atlikti_testus(klausimai):&lt;br /&gt;
    if len(klausimai) == 0:&lt;br /&gt;
        print(&amp;quot;Nepateiktas nei vienas klausimas.&amp;quot;)&lt;br /&gt;
        # `return` išeis iš funkcijos&lt;br /&gt;
        return&lt;br /&gt;
    indeksas = 0&lt;br /&gt;
    teisingai = 0&lt;br /&gt;
    while indeksas &amp;lt; len(klausimai):&lt;br /&gt;
        # patikriname klausimą&lt;br /&gt;
        # Atkreipk dėmesį, kad tai yra klausimų ir atsakymų sąrašo ištraukimas iš sąrašų sąrašo.&lt;br /&gt;
        if pateik_klausimą(klausimai[indeksas]): &lt;br /&gt;
            teisingai = teisingai + 1&lt;br /&gt;
        # pareiname prie kito klausimo&lt;br /&gt;
        indeksas = indeksas + 1&lt;br /&gt;
    # atkreipk dėmesį į skaičiavimo tvarką: pirmiausia padaugini, tada padalini&lt;br /&gt;
    print(&amp;quot;Atsakei teisingai į &amp;quot;, teisingai * 100 / len(klausimai),\&lt;br /&gt;
           &amp;quot;% klausimų iš &amp;quot;, len(klausimai))&lt;br /&gt;
&lt;br /&gt;
# dabar paimkime klausimus iš funkcijos gauti_klausimus ir&lt;br /&gt;
# paduokime grąžintą sąrašų sąrašą kaip argumentą funkcijai atlikti_testus.&lt;br /&gt;
&lt;br /&gt;
atlikti_testus(gauti_klausimus())&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reikšmės &amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt; turi reikšmes atitinkamai 1 ir 0. Jie dažnai naudojami loginės sekos patikrinimui, ciklo sąlygoms ir pan. Daugiau apie tai sužinosi šiek tiek vėliau (skyrius [[Vadovėlis/Loginiai reiškiniai|Loginiai reiškiniai]]).&lt;br /&gt;
Atkreipk dėmesį, kad gauti_klausimus() iš esmės yra sąrašas, nors tai techniškai yra funkcija - sąrašų grąžinimas yra vienintelis dalykas, kurį jis daro. &lt;br /&gt;
&lt;br /&gt;
Pavyzdžio išvestis:&lt;br /&gt;
&lt;br /&gt;
 Kokios spalvos yra dangus giedrą dieną? '''žalias'''&lt;br /&gt;
 Neteisingai. Teisingas atsakymas: mėlynas&lt;br /&gt;
 Koks atsakymas į gyvenimą, visatą ir viską? '''42'''&lt;br /&gt;
 Teisingai&lt;br /&gt;
 Kas yra keturių raidžių žodis pelės gaudyklei? '''katė'''&lt;br /&gt;
 Teisingai&lt;br /&gt;
 Atsakei teisingai į 66% klausimų iš 3&lt;br /&gt;
&lt;br /&gt;
=== Pratimai ===&lt;br /&gt;
&lt;br /&gt;
Išplėsk testas.py programą, kad ji turėtų meniu, kuriame būtų galima atlikti testą,&lt;br /&gt;
peržiūrėti klausimų ir atsakymų sąrašą ir pasirinkti išeiti iš programos. Taip pat, pridėk naują klausimą:&lt;br /&gt;
„Kokį triukšmą kelia tikrai pažangi mašina?“ su teisingu atsakymu „ping“.&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;
## Ši programa atlieka žinių patikrinimą&lt;br /&gt;
&lt;br /&gt;
klausimai = [[&amp;quot;Kokios spalvos yra dangus giedrą dieną? &amp;quot;, &amp;quot;mėlynas&amp;quot;],&lt;br /&gt;
             [&amp;quot;Koks atsakymas į gyvenimą, visatą ir viską? &amp;quot;, &amp;quot;42&amp;quot;],&lt;br /&gt;
             [&amp;quot;Kas yra keturių raidžių žodis pelės gaudyklei? &amp;quot;, &amp;quot;katė&amp;quot;],&lt;br /&gt;
             [&amp;quot;Kokį triukšmą kelia tikrai pažangi mašina?&amp;quot;, &amp;quot;ping&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
# Ši dalis patikrins vieną klausimą&lt;br /&gt;
# pateikiamas vienas klausimas&lt;br /&gt;
# grąžinama teisinga (True), jei vartotojas įvedė teisingą atsakymą, kitu atveju - klaidinga (False)&lt;br /&gt;
&lt;br /&gt;
def pateik_klausimą(klausimas_ir_atsakymas):&lt;br /&gt;
    # ištraukiame klausimą ir atsakymą iš sąrašo&lt;br /&gt;
    # Ši funkcija priima dviejų elementų sąrašą, klausimą ir atsakymą.  &lt;br /&gt;
    klausimas = klausimas_ir_atsakymas[0]   &lt;br /&gt;
    atsakymas = klausimas_ir_atsakymas[1]&lt;br /&gt;
    # užduodame klausimą vartotojui&lt;br /&gt;
    duotas_atsakymas = input(klausimas)&lt;br /&gt;
    # palyginame vartotojo atsakymą su teisingu atsakymu&lt;br /&gt;
    if atsakymas == duotas_atsakymas:&lt;br /&gt;
        print(&amp;quot;Teisingai&amp;quot;)&lt;br /&gt;
        return True&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Neteisingai. Teisingas atsakymas: &amp;quot;, atsakymas)&lt;br /&gt;
        return False&lt;br /&gt;
&lt;br /&gt;
# Šis kodas apims visus klausimus&lt;br /&gt;
def atlikti_testus(klausimai):&lt;br /&gt;
    if len(klausimai) == 0:&lt;br /&gt;
        print(&amp;quot;Nepateiktas nei vienas klausimas.&amp;quot;)&lt;br /&gt;
        # `return` išeis iš funkcijos&lt;br /&gt;
        return&lt;br /&gt;
    indeksas = 0&lt;br /&gt;
    teisingai = 0&lt;br /&gt;
    while indeksas &amp;lt; len(klausimai):&lt;br /&gt;
        # patikriname klausimą&lt;br /&gt;
        # Atkreipk dėmesį, kad tai yra klausimų ir atsakymų sąrašo ištraukimas iš sąrašų sąrašo.&lt;br /&gt;
        if pateik_klausimą(klausimai[indeksas]): &lt;br /&gt;
            teisingai = teisingai + 1&lt;br /&gt;
        # pareiname prie kito klausimo&lt;br /&gt;
        indeksas = indeksas + 1&lt;br /&gt;
    # atkreipk dėmesį į skaičiavimo tvarką: pirmiausia padaugini, tada padalini&lt;br /&gt;
    print(&amp;quot;Atsakei teisingai į &amp;quot;, teisingai * 100 / len(klausimai),\&lt;br /&gt;
           &amp;quot;% klausimų iš &amp;quot;, len(klausimai))&lt;br /&gt;
&lt;br /&gt;
#rodomas klausimų ir atsakymų sąrašas&lt;br /&gt;
def rodyk_klausimus():&lt;br /&gt;
    k = 0&lt;br /&gt;
    while k &amp;lt; len(klausimai):&lt;br /&gt;
        a = 0&lt;br /&gt;
        print(&amp;quot;K:&amp;quot; , klausimai[k][a])&lt;br /&gt;
        a = 1&lt;br /&gt;
        print(&amp;quot;A:&amp;quot; , klausimai[k][a])&lt;br /&gt;
        k = k + 1&lt;br /&gt;
&lt;br /&gt;
# dabar apibrėžiu meniu funkciją&lt;br /&gt;
def meniu():&lt;br /&gt;
    print(&amp;quot;-----------------&amp;quot;)&lt;br /&gt;
    print(&amp;quot;Meniu:&amp;quot;)&lt;br /&gt;
    print(&amp;quot;1 - Atlikti testą&amp;quot;)&lt;br /&gt;
    print(&amp;quot;2 - Peržiūrėti klausimų ir atsakymų sąrašą&amp;quot;)&lt;br /&gt;
    print(&amp;quot;3 - Peržiūrėti meniu&amp;quot;)&lt;br /&gt;
    print(&amp;quot;5 - Išeiti&amp;quot;)&lt;br /&gt;
    print(&amp;quot;-----------------&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
pasirinkimas = &amp;quot;3&amp;quot;&lt;br /&gt;
while pasirinkimas != &amp;quot;5&amp;quot;:&lt;br /&gt;
    if pasirinkimas == &amp;quot;1&amp;quot;:&lt;br /&gt;
        atlikti_testus(klausimai)&lt;br /&gt;
    elif pasirinkimas == &amp;quot;2&amp;quot;:&lt;br /&gt;
        rodyk_klausimus()&lt;br /&gt;
    elif pasirinkimas == &amp;quot;3&amp;quot;:&lt;br /&gt;
        meniu()&lt;br /&gt;
    print()&lt;br /&gt;
    pasirinkimas = input(&amp;quot;Pasirinkite savo parinktį iš aukščiau pateikto meniu: &amp;quot;) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Pažangių funkcijų pavyzdys |next=Ciklai For}}&lt;br /&gt;
{{BookCat}}&lt;/div&gt;</summary>
		<author><name>Juratevalat</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/S%C4%85ra%C5%A1ai&amp;diff=3842</id>
		<title>Python Vadovėlis/Sąrašai</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/S%C4%85ra%C5%A1ai&amp;diff=3842"/>
		<updated>2022-02-07T17:20:02Z</updated>

		<summary type="html">&lt;p&gt;Juratevalat: /* Kintamieji, turintys daugiau nei vieną reikšmę */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Kintamieji, turintys daugiau nei vieną reikšmę ===&lt;br /&gt;
Tu jau žinai įprastus kintamuosius, kuriuose saugoma viena reikšmė. Tačiau kiti kintamųjų tipai gali turėti daugiau nei vieną reikšmę. Jie vadinami konteineriais (containers), nes juose gali būti daugiau nei vienas objektas. Paprasčiausias tipas vadinamas sąrašu (list). Sąrašo pavyzdys:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
kuris = int(input(&amp;quot;Kuris mėnuo (1-12)? &amp;quot;))&lt;br /&gt;
mėnesiai = [&amp;quot;Sausis&amp;quot;, &amp;quot;Vasaris&amp;quot;, &amp;quot;Kovas&amp;quot;, &amp;quot;Balandis&amp;quot;, &amp;quot;Gegužė&amp;quot;, &amp;quot;Birželis&amp;quot;, &amp;quot;Liepa&amp;quot;,&lt;br /&gt;
          &amp;quot;Rugpjūtis&amp;quot;, &amp;quot;Rugsėjis&amp;quot;, &amp;quot;Spalis&amp;quot;, &amp;quot;Lapkritis&amp;quot;, &amp;quot;Gruodis&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
if 1 &amp;lt;= kuris &amp;lt;= 12:&lt;br /&gt;
    print(&amp;quot;Mėnuo yra &amp;quot;, mėnesiai[kuris - 1])&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pavyzdžio išvestis būtų:&lt;br /&gt;
&lt;br /&gt;
 Kuris mėnuo (1-12)? '''3'''&lt;br /&gt;
 Mėnuo yra Kovas&lt;br /&gt;
&lt;br /&gt;
Šiame pavyzdyje &amp;lt;code&amp;gt;mėnesiai&amp;lt;/code&amp;gt; yra sąrašas. Kintamasis &amp;lt;code&amp;gt;mėnesiai&amp;lt;/code&amp;gt; yra apibrėžtas šia eilute &amp;lt;code&amp;gt;mėnesiai = [&amp;quot;Sausis&amp;quot;, &amp;quot;Vasaris&amp;quot;, &amp;quot;Kovas&amp;quot;, &amp;quot;Balandis&amp;quot;, &amp;quot;Gegužė&amp;quot;, &amp;quot;Birželis&amp;quot;, &amp;quot;Liepa&amp;quot;,&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;&amp;quot;Rugpjūtis&amp;quot;, &amp;quot;Rugsėjis&amp;quot;, &amp;quot;Spalis&amp;quot;, &amp;quot;Lapkritis&amp;quot;, &amp;quot;Gruodis&amp;quot;]&amp;lt;/code&amp;gt; (atkreipk dėmesį, kad viena komanda parašyta per dvi eilutes; paprastai keliant eilutę yra naudojamas simbolis / tačiau šiuo atveju jis nėra būtinas, nes Python'as supranta, kad viskas, kas yra laužtiniuose skliaustuose yra kartu). &amp;lt;code&amp;gt;[&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt; pradeda ir užbaigia sąrašą, o kableliai (&amp;lt;code&amp;gt;,&amp;lt;/code&amp;gt;) atskiria sąrašo elementus. Sąrašas naudojamas šioje dalyje: &amp;lt;code&amp;gt;mėnesiai[kuris - 1]&amp;lt;/code&amp;gt;. Sąrašas susideda iš elementų, kurie sunumeruoti pradedant nuo 0. Kitaip tariant, norint sąraše pasiekti elementą &amp;quot;Sausis&amp;quot;, turėtum rašyti &amp;lt;code&amp;gt;mėnesiai[0]&amp;lt;/code&amp;gt;. Nurodant sąrašui skaičių, tu gauni reikšmę išsaugotą toje sąrašo pozicijoje.&lt;br /&gt;
&lt;br /&gt;
Sąlyginis sakinys &amp;lt;code&amp;gt; if 1 &amp;lt;= kuris &amp;lt;= 12:&amp;lt;/code&amp;gt; tikrina, ar skaičius kintamajame &amp;lt;code&amp;gt;kuris&amp;lt;/code&amp;gt; yra tarp vieno ir dvylikos imtinai (tiek yra mėnesių ir taip jie numeruojami).&lt;br /&gt;
&lt;br /&gt;
Viename sąraše gali būti saugomi ir skirtingų tipų duomenys. Kiekvienas elementas saugo vis kitą reikšmę. Pavyzdžiui, sąrašas sukurtas šiuo kodu: &amp;lt;code&amp;gt;demoSąrašas = [&amp;quot;gyvybė&amp;quot;, 42, &amp;quot;visata&amp;quot;, 6, &amp;quot;ir&amp;quot;, 9]&amp;lt;/code&amp;gt; atrodytų taip:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
!elemento numeris&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;
|demoSąrašas &lt;br /&gt;
|&amp;quot;gyvybė&amp;quot; &lt;br /&gt;
|42 &lt;br /&gt;
|&amp;quot;visata&amp;quot; &lt;br /&gt;
|6 &lt;br /&gt;
|&amp;quot;ir&amp;quot;&lt;br /&gt;
|9&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Kiekvienas elementas pasiekiamas per jo eilės numerį – indeksą, todėl komanda &amp;lt;code&amp;gt;demoSąrašas[0]&amp;lt;/code&amp;gt; pateiktų reikšmę: &amp;lt;code&amp;gt;&amp;quot;gyvybė&amp;quot;&amp;lt;/code&amp;gt;, o komanda &amp;lt;code&amp;gt;demoSąrašas[1]&amp;lt;/code&amp;gt; – reikšmę &amp;lt;code&amp;gt;42&amp;lt;/code&amp;gt; ir taip toliau iki kol &amp;lt;code&amp;gt;demoSąrašas[5]&amp;lt;/code&amp;gt; pateikia reikšmę &amp;lt;code&amp;gt;9&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Daugiau sąrašų funkcijų ===&lt;br /&gt;
Kitas pavyzdys yra skirtas parodyti daugybę kitų dalykų, kuriuos gali padaryti sąrašai (šį kartą nesitikiu, kad viską susivesi į programą, bet tikriausiai turėtum šiek tiek pažaisti su sąrašais interaktyviame režime, kol apsiprasi su jais). Pavyzdys:&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]&lt;br /&gt;
print(&amp;quot;demoSąrašas = &amp;quot;,demoSąrašas)&lt;br /&gt;
demoSąrašas.append(&amp;quot;oras&amp;quot;)&lt;br /&gt;
print(&amp;quot;po 'oras' pridėjimo, demoSąrašas atrodo taip:&amp;quot;)&lt;br /&gt;
print(demoSąrašas)&lt;br /&gt;
print(&amp;quot;len(demoSąrašas) =&amp;quot;, len(demoSąrašas))&lt;br /&gt;
print(&amp;quot;demoSąrašas.index(42) =&amp;quot;, demoSąrašas.index(42))&lt;br /&gt;
print(&amp;quot;demoSąrašas[1] =&amp;quot;, demoSąrašas[1])&lt;br /&gt;
&lt;br /&gt;
# o dabar mes pereisime per visą sąrašą &amp;quot;for&amp;quot; ciklu&lt;br /&gt;
for c in range(len(demoSąrašas)):&lt;br /&gt;
    print(&amp;quot;demoSąrašas[&amp;quot;, c, &amp;quot;] =&amp;quot;, demoSąrašas[c])&lt;br /&gt;
&lt;br /&gt;
del demoSąrašas[2]&lt;br /&gt;
print(&amp;quot;Po 'visata' pašalinimo, demoSąrašas atrodo taip:&amp;quot;)&lt;br /&gt;
print(demoSąrašas)&lt;br /&gt;
if &amp;quot;gyvybė&amp;quot; in demoSąrašas:&lt;br /&gt;
    print(&amp;quot;'gyvybė' buvo rasta kintamajame demoSąrašas&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;'gyvybė' nebuvo rasta kintamajame demoSąrašas&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
if &amp;quot;ameba&amp;quot; in demoSąrašas:&lt;br /&gt;
    print(&amp;quot;'ameba' buvo rasta kintamajame demoSąrašas&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
if &amp;quot;ameba&amp;quot; not in demoSąrašas:&lt;br /&gt;
    print(&amp;quot;'ameba' nebuvo rasta kintamajame demoSąrašas&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
kitasSąrašas = [42,7,0,123]&lt;br /&gt;
kitasSąrašas.sort()&lt;br /&gt;
print(&amp;quot;Išrikiuotas kitasSąrašas atrodo taip&amp;quot;, kitasSąrašas)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kodo išvestis būtų tokia:&lt;br /&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]&lt;br /&gt;
 po &amp;quot;oras&amp;quot; pridėjimo, demoSąrašas atrodo taip:&lt;br /&gt;
 [&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;
 len(demoSąrašas) = 7&lt;br /&gt;
 demoSąrašas.index(42) = 1&lt;br /&gt;
 demoSąrašas[1] = 42&lt;br /&gt;
 demoSąrašas[ 0 ] = gyvybė&lt;br /&gt;
 demoSąrašas[ 1 ] = 42&lt;br /&gt;
 demoSąrašas[ 2 ] = visata&lt;br /&gt;
 demoSąrašas[ 3 ] = 6&lt;br /&gt;
 demoSąrašas[ 4 ] = ir&lt;br /&gt;
 demoSąrašas[ 5 ] = 9&lt;br /&gt;
 demoSąrašas[ 6 ] = oras&lt;br /&gt;
 Po 'visata' pašalinimo, demoSąrašas atrodo taip:&lt;br /&gt;
 [&amp;quot;gyvybė&amp;quot;, 42, 6, &amp;quot;ir&amp;quot;, 9, &amp;quot;oras&amp;quot;]&lt;br /&gt;
 &amp;quot;gyvybė&amp;quot; buvo rasta kintamajame demoSąrašas&lt;br /&gt;
 &amp;quot;ameba&amp;quot; nebuvo rasta kintamajame demoSąrašas&lt;br /&gt;
 Išrikiuotas kitasSąrašas atrodo taip [0, 7, 42, 123]&lt;br /&gt;
&lt;br /&gt;
Šiame pavyzdyje naudojama visa krūva naujų funkcijų. Atkreipk dėmesį, kad gali tiesiog atspausdinti (&amp;lt;code&amp;gt;print&amp;lt;/code&amp;gt;) visą sąrašą. Toliau funkcija &amp;lt;code&amp;gt;append&amp;lt;/code&amp;gt; naudojama tam, kad pridėtum naują elementą į sąrašo pabaigą. &amp;lt;code&amp;gt;len&amp;lt;/code&amp;gt; grąžina kiek elementų yra sąraše. Tinkami sąrašo indeksai (skaičiai kuriuos naudojame viduje laužtinių skliaustų &amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt;) yra nuo 0 iki &amp;lt;code&amp;gt;len - 1&amp;lt;/code&amp;gt;. Funkcija &amp;lt;code&amp;gt;index&amp;lt;/code&amp;gt; nurodo, kur sąraše yra pirmoji elemento vieta. Atkreipk dėmesį, kaip &amp;lt;code&amp;gt;demoSąrašas.index(42)&amp;lt;/code&amp;gt; pateikia 1, o paleidus &amp;lt;code&amp;gt;demoSąrašas[1]&amp;lt;/code&amp;gt; grąžina 42. Norint gauti pagalbos dėl visų sąrašo funkcijų, įvesk &amp;lt;code&amp;gt; help(list)&amp;lt;/code&amp;gt; interaktyviajame Python'o interpretatoriuje.&lt;br /&gt;
&lt;br /&gt;
Eilutė &amp;lt;code&amp;gt;# o dabar mes pereisime per visą sąrašą &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; ciklu&amp;lt;/code&amp;gt; yra tik priminimas programuotojui (dar vadinamas kaip „komentaras“). Python'as ignoruoja viską, kas parašyta esamoje eilutėje iškarto po simbolio &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;. Toliau eilutės:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
for c in range(len(demoSąrašas)):&lt;br /&gt;
    print(&amp;quot;demoSąrašas[&amp;quot;, c, &amp;quot;] =&amp;quot;, demoSąrašas[c])&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
sukuria kintamajį &amp;lt;code&amp;gt;c&amp;lt;/code&amp;gt;, kuris prasideda nuo 0 ir didinamas, kol pasiekia paskutinį sąrašo indeksą. Tuo tarpu &amp;lt;code&amp;gt;print&amp;lt;/code&amp;gt; teiginys išspausdina kiekvieną sąrašo elementą.&lt;br /&gt;
&lt;br /&gt;
Daug geresnis būdas tai padaryti:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
for c, x in enumerate(demoSąrašas):&lt;br /&gt;
    print(&amp;quot;demoSąrašas[&amp;quot;, c, &amp;quot;] =&amp;quot;, x)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Komanda &amp;lt;code&amp;gt;del&amp;lt;/code&amp;gt; gali būti naudojama tam tikram sąrašo elementui pašalinti. Kitos kelios eilutės naudoja &amp;lt;code&amp;gt;in&amp;lt;/code&amp;gt; operatorių, kad patikrintų, ar elementas yra sąraše, ar ne. Funkcija &amp;lt;code&amp;gt;sort&amp;lt;/code&amp;gt; rūšiuoja sąrašą. Tai naudinga, jei tau reikia sąrašo nuo mažiausio iki didžiausio arba abėcėlės tvarka. Atmink, kad tai pakeičia sąrašą. Apibendrinant, su sąrašu yra atliekami šie veiksmai:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!pavyzdys &lt;br /&gt;
!paaiškinimas&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;demoSąrašas[2]&amp;lt;/code&amp;gt; &lt;br /&gt;
|pasiekia elementą ties indeksu 2&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;demoSąrašas[2] = 3&amp;lt;/code&amp;gt; &lt;br /&gt;
|nustato elementą ties indeksu 2 kaip 3&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;del demoSąrašas[2]&amp;lt;/code&amp;gt; &lt;br /&gt;
|pašalina elementą, esantį 2 indekse&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;len(demoSąrašas)&amp;lt;/code&amp;gt; &lt;br /&gt;
|grąžina &amp;lt;code&amp;gt;demoSąrašas&amp;lt;/code&amp;gt; ilgį&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;quot;reikšmė&amp;quot; in demoSąrašas&amp;lt;/code&amp;gt; &lt;br /&gt;
|yra ''True'' jeigu &amp;lt;tt&amp;gt;&amp;quot;reikšmė&amp;quot;&amp;lt;/tt&amp;gt; yra elementas, priklausantis &amp;lt;code&amp;gt;demoSąrašas&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;quot;reikšmė&amp;quot; not in demoSąrašas&amp;lt;/code&amp;gt; &lt;br /&gt;
|yra ''True'' jeigu &amp;lt;code&amp;gt;&amp;quot;reikšmė&amp;quot;&amp;lt;/code&amp;gt; nėra elementas, priklausantis &amp;lt;code&amp;gt;demoSąrašas&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;kitasSąrašas.sort()&amp;lt;/code&amp;gt; &lt;br /&gt;
|surūšiuoja &amp;lt;code&amp;gt;kitasSąrašas&amp;lt;/code&amp;gt;. Atmink, kad rūšiavimas pavyktų, visi sąrašo elementai turi būti arba skaičiai, arba eilutės (string).&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;demoSąrašas.index(&amp;quot;reikšmė&amp;quot;)&amp;lt;/code&amp;gt; &lt;br /&gt;
|grąžina pirmosios vietos, kurioje atsiranda &amp;lt;code&amp;gt;&amp;quot;reikšmė&amp;quot;&amp;lt;/code&amp;gt;, indeksą&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;demoSąrašas.append(&amp;quot;reikšmė&amp;quot;)&amp;lt;/code&amp;gt; &lt;br /&gt;
|sąrašo pabaigoje prideda elementą &amp;lt;code&amp;gt;&amp;quot;reikšmė&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;demoSąrašas.remove(&amp;quot;reikšmė&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|pašalina pirmą rastą elementą su nurodyta reišme iš &amp;lt;code&amp;gt;demoSąrašas&amp;lt;/code&amp;gt; (taip pat, kaip &amp;lt;code&amp;gt;del demoSąrašas[demoSąrašas.index(&amp;quot;reikšmė&amp;quot;)]&amp;lt;/code&amp;gt;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Šiame kitame pavyzdyje šios funkcijos naudojamos naudingiau:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
meniuElementas = 0&lt;br /&gt;
vardųSarašas = []&lt;br /&gt;
while meniuElementas != 9:&lt;br /&gt;
    print(&amp;quot;--------------------&amp;quot;)&lt;br /&gt;
    print(&amp;quot;1. Spausdinti sąrašą&amp;quot;)&lt;br /&gt;
    print(&amp;quot;2. Pridėti vardą prie sąrašo&amp;quot;)&lt;br /&gt;
    print(&amp;quot;3. Pašalinti vardą iš sąrašo&amp;quot;)&lt;br /&gt;
    print(&amp;quot;4. Pakeisti elementą sąraše&amp;quot;)&lt;br /&gt;
    print(&amp;quot;9. Išeiti&amp;quot;)&lt;br /&gt;
    meniuElementas = int(input(&amp;quot;Pasirinkite elementą iš meniu: &amp;quot;))&lt;br /&gt;
    if meniuElementas == 1:&lt;br /&gt;
        dabartinis = 0&lt;br /&gt;
        if len(vardųSarašas) &amp;gt; 0:&lt;br /&gt;
            while dabartinis &amp;lt; len(vardųSarašas):&lt;br /&gt;
                print(dabartinis, &amp;quot;.&amp;quot;, vardųSarašas[dabartinis])&lt;br /&gt;
                dabartinis = dabartinis + 1&lt;br /&gt;
        else:&lt;br /&gt;
            print(&amp;quot;Sąrašas tuščias&amp;quot;)&lt;br /&gt;
    elif meniuElementas == 2:&lt;br /&gt;
        vardas = input(&amp;quot;Įveskite vardą, kurį norite pridėti: &amp;quot;)&lt;br /&gt;
        vardųSarašas.append(vardas)&lt;br /&gt;
    elif meniuElementas == 3:&lt;br /&gt;
        šalinamasVardas = input(&amp;quot;Kokį vardą norėtumėte pašalinti:&amp;quot;)&lt;br /&gt;
        if šalinamasVardas in vardųSarašas:&lt;br /&gt;
            # vardųSarašas.remove(šalinamasVardas) veiktų taip pat gerai&lt;br /&gt;
            elementoIndeksas = vardųSarašas.index(šalinamasVardas)&lt;br /&gt;
            del vardųSarašas[elementoIndeksas]&lt;br /&gt;
            # Aukščiau pateiktas kodas pašalina tik pirmąjį surasta vardą.&lt;br /&gt;
            # Žemiau esantis kodas pašalina visus.&lt;br /&gt;
            # while šalinamasVardas in vardųSarašas:&lt;br /&gt;
            #       elementoIndeksas = vardųSarašas.index(šalinamasVardas)&lt;br /&gt;
            #       del vardųSarašas[elementoIndeksas]&lt;br /&gt;
        else:&lt;br /&gt;
            print(šalinamasVardas, &amp;quot;nerastas&amp;quot;)&lt;br /&gt;
    elif meniuElementas == 4:&lt;br /&gt;
        senasVardas = input(&amp;quot;Kokį vardą norėtumėte pakeisti:&amp;quot;)&lt;br /&gt;
        if senasVardas in vardųSarašas:&lt;br /&gt;
            elementoIndeksas = vardųSarašas.index(senasVardas)&lt;br /&gt;
            naujasVardas = input(&amp;quot;Koks yra naujas vardas: &amp;quot;)&lt;br /&gt;
            vardųSarašas[elementoIndeksas] = naujasVardas&lt;br /&gt;
        else:&lt;br /&gt;
            print(senasVardas, &amp;quot;nerastas&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Iki pasimatymo&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ir čia yra išvesties dalis:&lt;br /&gt;
&lt;br /&gt;
 --------------------&lt;br /&gt;
 1. Spausdinti sąrašą&lt;br /&gt;
 2. Pridėti vardą prie sąrašo&lt;br /&gt;
 3. Pašalinti vardą iš sąrašo&lt;br /&gt;
 4. Pakeisti elementą sąraše&lt;br /&gt;
 9. Išeiti&lt;br /&gt;
 &lt;br /&gt;
 Pasirinkite elementą iš meniu: '''2'''&lt;br /&gt;
 Įveskite vardą, kurį norite pridėti: '''Benas'''&lt;br /&gt;
 &lt;br /&gt;
 Pasirinkite elementą iš meniu: '''2'''&lt;br /&gt;
 Įveskite vardą, kurį norite pridėti: '''Liepa'''&lt;br /&gt;
 &lt;br /&gt;
 Pasirinkite elementą iš meniu: '''1'''&lt;br /&gt;
 0. Benas&lt;br /&gt;
 1. Liepa&lt;br /&gt;
 &lt;br /&gt;
 Pasirinkite elementą iš meniu: '''3'''&lt;br /&gt;
 Kokį vardą norėtumėte pašalinti: '''Benas'''&lt;br /&gt;
 &lt;br /&gt;
 Pasirinkite elementą iš meniu: '''4'''&lt;br /&gt;
 Kokį vardą norėtumėte pakeisti: '''Liepa'''&lt;br /&gt;
 Koks yra naujas vardas: '''Liepa Petraitė'''&lt;br /&gt;
 &lt;br /&gt;
 Pasirinkite elementą iš meniu: '''1'''&lt;br /&gt;
 0. Liepa Petraitė&lt;br /&gt;
 &lt;br /&gt;
 Pasirinkite elementą iš meniu: '''9'''&lt;br /&gt;
 Iki pasimatymo&lt;br /&gt;
&lt;br /&gt;
Tai buvo ilga programa. Panagrinėkime pirminį programos tekstą. Eilutė &amp;lt;code&amp;gt;vardųSarašas = []&amp;lt;/code&amp;gt; sukuria kintamajį &amp;lt;code&amp;gt;vardųSarašas&amp;lt;/code&amp;gt;, tuščia sąrašą, be elementų. Kita svarbi eilutė yra &amp;lt;code&amp;gt;while meniuElementas != 9:&amp;lt;/code&amp;gt;. Ši eilutė pradeda ciklą, leidžiantį šios programos meniu sistemai veikti. Kitos eilutės parodo meniu ir nusprendžia, kurią programos dalį paleisti.&lt;br /&gt;
&lt;br /&gt;
Ši dalis:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
dabartinis = 0&lt;br /&gt;
    if len(vardųSarašas) &amp;gt; 0:&lt;br /&gt;
        while dabartinis &amp;lt; len(vardųSarašas):&lt;br /&gt;
            print(dabartinis, &amp;quot;.&amp;quot;, vardųSarašas[dabartinis])&lt;br /&gt;
            dabartinis = dabartinis + 1&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Sąrašas tuščias&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
eina per sąrašą ir spausdina kiekvieną vardą. &amp;lt;code&amp;gt;len(vardųSarašas)&amp;lt;/code&amp;gt; nurodo, kiek elementų yra sąraše. Jei &amp;lt;code&amp;gt;len&amp;lt;/code&amp;gt; grąžina &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;,tai reiškia sąrašas tuščias.&lt;br /&gt;
&lt;br /&gt;
Toliau po kelių eilučių matysi teiginį &amp;lt;code&amp;gt;vardųSarašas.append(vardas)&amp;lt;/code&amp;gt;. Jis naudoja funkciją &amp;lt;code&amp;gt;append&amp;lt;/code&amp;gt;, kad pridėtų elementą į sąrašo pabaigą. Peršokus dar dvi eilutes, pastebėsi šią kodo dalį:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
elementoIndeksas = vardųSarašas.index(šalinamasVardas)&lt;br /&gt;
del vardųSarašas[elementoIndeksas]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Čia funkcija &amp;lt;code&amp;gt;index&amp;lt;/code&amp;gt; yra naudojama norint rasti indekso reikšmę, kuri vėliau bus naudojama elementui pašalinti. &amp;lt;code&amp;gt;del vardųSarašas[elementoIndeksas]&amp;lt;/code&amp;gt; naudojamas sąrašo elementui pašalinti.   &lt;br /&gt;
&lt;br /&gt;
Kitoje kodo dalyje&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
senasVardas = input(&amp;quot;Kokį vardą norėtumėte pakeisti:&amp;quot;)&lt;br /&gt;
if senasVardas in vardųSarašas:&lt;br /&gt;
    elementoIndeksas = vardųSarašas.index(senasVardas)&lt;br /&gt;
    naujasVardas = input(&amp;quot;Koks yra naujas vardas: &amp;quot;)&lt;br /&gt;
    vardųSarašas[elementoIndeksas] = naujasVardas&lt;br /&gt;
else:&lt;br /&gt;
    print(senasVardas, &amp;quot;nerastas&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
naudojamas &amp;lt;code&amp;gt;index&amp;lt;/code&amp;gt;, kad surastų &amp;lt;code&amp;gt;elementoIndeksas&amp;lt;/code&amp;gt; ir tada įdėtų &amp;lt;code&amp;gt;naujasVardas&amp;lt;/code&amp;gt; ten, kur buvo &amp;lt;code&amp;gt;senasVardas&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Sveikinu, perpratus sąrašus, dabar tu pakankamai žinai kalbą, kad galėtum atlikti bet kokius skaičiavimus, kuriuos gali atlikti kompiuteris (tai techniškai žinoma kaip [[Wikipedia:Turing_completeness|Turing-Completeness]]). Žinoma, vis dar yra daug funkcijų, kurias naudojant tu pasilengvinsi sau gyvenimą.&lt;br /&gt;
&lt;br /&gt;
=== Pavyzdžiai ===&lt;br /&gt;
'''testas.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
## Ši programa atlieka žinių patikrinimą&lt;br /&gt;
&lt;br /&gt;
# Pirmiausia surenkame testo klausimus.&lt;br /&gt;
# Vėliau šią dalį pakeisime, kad būtų naudojama failinė sistema.&lt;br /&gt;
def gauti_klausimus():&lt;br /&gt;
    # atkreipk dėmesį, kad duomenys saugomi kaip sąrašų sąrašas&lt;br /&gt;
    return [[&amp;quot;Kokios spalvos yra dangus giedrą dieną? &amp;quot;, &amp;quot;mėlynas&amp;quot;],&lt;br /&gt;
            [&amp;quot;Koks atsakymas į gyvenimą, visatą ir viską? &amp;quot;, &amp;quot;42&amp;quot;],&lt;br /&gt;
            [&amp;quot;Kas yra keturių raidžių žodis pelės gaudyklei? &amp;quot;, &amp;quot;katė&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
# Ši dalis patikrins vieną klausimą&lt;br /&gt;
# pateikiamas vienas klausimas&lt;br /&gt;
# grąžinama teisinga (True), jei vartotojas įvedė teisingą atsakymą, kitu atveju - klaidinga (False)&lt;br /&gt;
&lt;br /&gt;
def pateik_klausimą(klausimas_ir_atsakymas):&lt;br /&gt;
    # ištraukiame klausimą ir atsakymą iš sąrašo&lt;br /&gt;
    # Ši funkcija priima dviejų elementų sąrašą, klausimą ir atsakymą.  &lt;br /&gt;
    klausimas = klausimas_ir_atsakymas[0]   &lt;br /&gt;
    atsakymas = klausimas_ir_atsakymas[1]&lt;br /&gt;
    # užduodame klausimą vartotojui&lt;br /&gt;
    duotas_atsakymas = input(klausimas)&lt;br /&gt;
    # palyginame vartotojo atsakymą su teisingu atsakymu&lt;br /&gt;
    if atsakymas == duotas_atsakymas:&lt;br /&gt;
        print(&amp;quot;Teisingai&amp;quot;)&lt;br /&gt;
        return True&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Neteisingai. Teisingas atsakymas: &amp;quot;, atsakymas)&lt;br /&gt;
        return False&lt;br /&gt;
&lt;br /&gt;
# Šis kodas apims visus klausimus&lt;br /&gt;
def atlikti_testus(klausimai):&lt;br /&gt;
    if len(klausimai) == 0:&lt;br /&gt;
        print(&amp;quot;Nepateiktas nei vienas klausimas.&amp;quot;)&lt;br /&gt;
        # `return` išeis iš funkcijos&lt;br /&gt;
        return&lt;br /&gt;
    indeksas = 0&lt;br /&gt;
    teisingai = 0&lt;br /&gt;
    while indeksas &amp;lt; len(klausimai):&lt;br /&gt;
        # patikriname klausimą&lt;br /&gt;
        # Atkreipk dėmesį, kad tai yra klausimų ir atsakymų sąrašo ištraukimas iš sąrašų sąrašo.&lt;br /&gt;
        if pateik_klausimą(klausimai[indeksas]): &lt;br /&gt;
            teisingai = teisingai + 1&lt;br /&gt;
        # pareiname prie kito klausimo&lt;br /&gt;
        indeksas = indeksas + 1&lt;br /&gt;
    # atkreipk dėmesį į skaičiavimo tvarką: pirmiausia padaugini, tada padalini&lt;br /&gt;
    print(&amp;quot;Atsakei teisingai į &amp;quot;, teisingai * 100 / len(klausimai),\&lt;br /&gt;
           &amp;quot;% klausimų iš &amp;quot;, len(klausimai))&lt;br /&gt;
&lt;br /&gt;
# dabar paimkime klausimus iš funkcijos gauti_klausimus ir&lt;br /&gt;
# paduokime grąžintą sąrašų sąrašą kaip argumentą funkcijai atlikti_testus.&lt;br /&gt;
&lt;br /&gt;
atlikti_testus(gauti_klausimus())&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reikšmės &amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt; turi reikšmes atitinkamai 1 ir 0. Jie dažnai naudojami loginės sekos patikrinimui, ciklo sąlygoms ir pan. Daugiau apie tai sužinosi šiek tiek vėliau (skyrius [[Vadovėlis/Loginiai reiškiniai|Loginiai reiškiniai]]).&lt;br /&gt;
Atkreipk dėmesį, kad gauti_klausimus() iš esmės yra sąrašas, nors tai techniškai yra funkcija - sąrašų grąžinimas yra vienintelis dalykas, kurį jis daro. &lt;br /&gt;
&lt;br /&gt;
Pavyzdžio išvestis:&lt;br /&gt;
&lt;br /&gt;
 Kokios spalvos yra dangus giedrą dieną? '''žalias'''&lt;br /&gt;
 Neteisingai. Teisingas atsakymas: mėlynas&lt;br /&gt;
 Koks atsakymas į gyvenimą, visatą ir viską? '''42'''&lt;br /&gt;
 Teisingai&lt;br /&gt;
 Kas yra keturių raidžių žodis pelės gaudyklei? '''katė'''&lt;br /&gt;
 Teisingai&lt;br /&gt;
 Atsakei teisingai į 66% klausimų iš 3&lt;br /&gt;
&lt;br /&gt;
=== Pratimai ===&lt;br /&gt;
&lt;br /&gt;
Išplėsk testas.py programą, kad ji turėtų meniu, kuriame būtų galima atlikti testą,&lt;br /&gt;
peržiūrėti klausimų ir atsakymų sąrašą ir pasirinkti išeiti iš programos. Taip pat, pridėk naują klausimą:&lt;br /&gt;
„Kokį triukšmą kelia tikrai pažangi mašina?“ su teisingu atsakymu „ping“.&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;
## Ši programa atlieka žinių patikrinimą&lt;br /&gt;
&lt;br /&gt;
klausimai = [[&amp;quot;Kokios spalvos yra dangus giedrą dieną? &amp;quot;, &amp;quot;mėlynas&amp;quot;],&lt;br /&gt;
             [&amp;quot;Koks atsakymas į gyvenimą, visatą ir viską? &amp;quot;, &amp;quot;42&amp;quot;],&lt;br /&gt;
             [&amp;quot;Kas yra keturių raidžių žodis pelės gaudyklei? &amp;quot;, &amp;quot;katė&amp;quot;],&lt;br /&gt;
             [&amp;quot;Kokį triukšmą kelia tikrai pažangi mašina?&amp;quot;, &amp;quot;ping&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
# Ši dalis patikrins vieną klausimą&lt;br /&gt;
# pateikiamas vienas klausimas&lt;br /&gt;
# grąžinama teisinga (True), jei vartotojas įvedė teisingą atsakymą, kitu atveju - klaidinga (False)&lt;br /&gt;
&lt;br /&gt;
def pateik_klausimą(klausimas_ir_atsakymas):&lt;br /&gt;
    # ištraukiame klausimą ir atsakymą iš sąrašo&lt;br /&gt;
    # Ši funkcija priima dviejų elementų sąrašą, klausimą ir atsakymą.  &lt;br /&gt;
    klausimas = klausimas_ir_atsakymas[0]   &lt;br /&gt;
    atsakymas = klausimas_ir_atsakymas[1]&lt;br /&gt;
    # užduodame klausimą vartotojui&lt;br /&gt;
    duotas_atsakymas = input(klausimas)&lt;br /&gt;
    # palyginame vartotojo atsakymą su teisingu atsakymu&lt;br /&gt;
    if atsakymas == duotas_atsakymas:&lt;br /&gt;
        print(&amp;quot;Teisingai&amp;quot;)&lt;br /&gt;
        return True&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Neteisingai. Teisingas atsakymas: &amp;quot;, atsakymas)&lt;br /&gt;
        return False&lt;br /&gt;
&lt;br /&gt;
# Šis kodas apims visus klausimus&lt;br /&gt;
def atlikti_testus(klausimai):&lt;br /&gt;
    if len(klausimai) == 0:&lt;br /&gt;
        print(&amp;quot;Nepateiktas nei vienas klausimas.&amp;quot;)&lt;br /&gt;
        # `return` išeis iš funkcijos&lt;br /&gt;
        return&lt;br /&gt;
    indeksas = 0&lt;br /&gt;
    teisingai = 0&lt;br /&gt;
    while indeksas &amp;lt; len(klausimai):&lt;br /&gt;
        # patikriname klausimą&lt;br /&gt;
        # Atkreipk dėmesį, kad tai yra klausimų ir atsakymų sąrašo ištraukimas iš sąrašų sąrašo.&lt;br /&gt;
        if pateik_klausimą(klausimai[indeksas]): &lt;br /&gt;
            teisingai = teisingai + 1&lt;br /&gt;
        # pareiname prie kito klausimo&lt;br /&gt;
        indeksas = indeksas + 1&lt;br /&gt;
    # atkreipk dėmesį į skaičiavimo tvarką: pirmiausia padaugini, tada padalini&lt;br /&gt;
    print(&amp;quot;Atsakei teisingai į &amp;quot;, teisingai * 100 / len(klausimai),\&lt;br /&gt;
           &amp;quot;% klausimų iš &amp;quot;, len(klausimai))&lt;br /&gt;
&lt;br /&gt;
#rodomas klausimų ir atsakymų sąrašas&lt;br /&gt;
def rodyk_klausimus():&lt;br /&gt;
    k = 0&lt;br /&gt;
    while k &amp;lt; len(klausimai):&lt;br /&gt;
        a = 0&lt;br /&gt;
        print(&amp;quot;K:&amp;quot; , klausimai[k][a])&lt;br /&gt;
        a = 1&lt;br /&gt;
        print(&amp;quot;A:&amp;quot; , klausimai[k][a])&lt;br /&gt;
        k = k + 1&lt;br /&gt;
&lt;br /&gt;
# dabar apibrėžiu meniu funkciją&lt;br /&gt;
def meniu():&lt;br /&gt;
    print(&amp;quot;-----------------&amp;quot;)&lt;br /&gt;
    print(&amp;quot;Meniu:&amp;quot;)&lt;br /&gt;
    print(&amp;quot;1 - Atlikti testą&amp;quot;)&lt;br /&gt;
    print(&amp;quot;2 - Peržiūrėti klausimų ir atsakymų sąrašą&amp;quot;)&lt;br /&gt;
    print(&amp;quot;3 - Peržiūrėti meniu&amp;quot;)&lt;br /&gt;
    print(&amp;quot;5 - Išeiti&amp;quot;)&lt;br /&gt;
    print(&amp;quot;-----------------&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
pasirinkimas = &amp;quot;3&amp;quot;&lt;br /&gt;
while pasirinkimas != &amp;quot;5&amp;quot;:&lt;br /&gt;
    if pasirinkimas == &amp;quot;1&amp;quot;:&lt;br /&gt;
        atlikti_testus(klausimai)&lt;br /&gt;
    elif pasirinkimas == &amp;quot;2&amp;quot;:&lt;br /&gt;
        rodyk_klausimus()&lt;br /&gt;
    elif pasirinkimas == &amp;quot;3&amp;quot;:&lt;br /&gt;
        meniu()&lt;br /&gt;
    print()&lt;br /&gt;
    pasirinkimas = input(&amp;quot;Pasirinkite savo parinktį iš aukščiau pateikto meniu: &amp;quot;) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Pažangių funkcijų pavyzdys |next=Ciklai For}}&lt;br /&gt;
{{BookCat}}&lt;/div&gt;</summary>
		<author><name>Juratevalat</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Rekursin%C4%97s_funkcijos&amp;diff=3841</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=3841"/>
		<updated>2022-02-07T17:07:03Z</updated>

		<summary type="html">&lt;p&gt;Juratevalat: &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;
    reikšmė = a + lik&lt;br /&gt;
    return reikšmė&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 (reikia 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 daugybos funkcija:&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;
    reikšmė = a + lik &lt;br /&gt;
    return reikšmė&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
: Ši funkcija paima du parametrus ir grąžina reikšmę. Vėliau šią funkciją galima bus iškviesti.&lt;br /&gt;
; Kas nutinka toliau?  &lt;br /&gt;
: Vykdoma kita eilutė einanti po funkcijos &amp;lt;code&amp;gt;rezultatas = daug(3, 2)&amp;lt;/code&amp;gt;&lt;br /&gt;
; Ką daro ši eilutė?&lt;br /&gt;
: Ši eilutė priskiria funkcijos &amp;lt;code&amp;gt;daug(3, 2)&amp;lt;/code&amp;gt; grąžinamą reikšmę kintamajam &amp;lt;code&amp;gt;rezultatas&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 sąlygos rezultatas 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;
: Dabar kintamajam &amp;lt;code&amp;gt;lik&amp;lt;/code&amp;gt; priskiriam funkcijos &amp;lt;code&amp;gt;daug(3, 0)&amp;lt;/code&amp;gt; reikšmė.&lt;br /&gt;
; Kokia š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 į tą vietą, kur ji buvo iškviesta.&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; grąžina 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 reikšmė yra 0.&lt;br /&gt;
; Kurią eilutę kompiuteris skaito po to?&lt;br /&gt;
: Toliau vykdoma eilutė &amp;lt;code&amp;gt;reikšmė = 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;reikšmė = 3&amp;lt;/code&amp;gt;. &lt;br /&gt;
; Kas nutinka toliau?&lt;br /&gt;
: Vykdoma eilutė &amp;lt;code&amp;gt;return reikšmė&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;reikšmė = a + lik&amp;lt;/code&amp;gt; priskiria kintamajam &amp;lt;code&amp;gt;reikšmė&amp;lt;/code&amp;gt; reikšmę &amp;lt;code&amp;gt;3 + 3&amp;lt;/code&amp;gt; arba 6.  &lt;br /&gt;
; Kas įvyksta toliau?&lt;br /&gt;
: Pradedama vykdyti kita eilutė, kuri grąžina 6 iš funkcijos. Tuomet grįžtame prie eilutės &amp;lt;code&amp;gt;rezultatas = daug(3, 2)&amp;lt;/code&amp;gt;, kur kintamajam &amp;lt;code&amp;gt;rezultatas&amp;lt;/code&amp;gt; dabar priskiriama reikšmė 6 &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;rezultatas&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 pirmo skaičiaus ir pirmo bei vienetu mažesnio už antrąjį sandaugos sumai &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. Kai viskas surašoma vienoje eilutėje, gauname &amp;lt;code&amp;gt;3 + 3 + 0 &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 dar kelis pavyzdžius.&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_skaičiavimas.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def atgalinis_skaičiavimas(n):&lt;br /&gt;
    print(n)&lt;br /&gt;
    if n &amp;gt; 0:&lt;br /&gt;
        return atgalinis_skaičiavimas(n-1)&lt;br /&gt;
&lt;br /&gt;
atgalinis_skaič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=Funkcijų apibrėžimas |next=Sąrašai}}&lt;/div&gt;</summary>
		<author><name>Juratevalat</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Rekursin%C4%97s_funkcijos&amp;diff=3840</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=3840"/>
		<updated>2022-02-07T17:05:10Z</updated>

		<summary type="html">&lt;p&gt;Juratevalat: &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;
    reikšmė = a + lik&lt;br /&gt;
    return reikšmė&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 (reikia 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 daugybos funkcija:&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;
    reikšmė = a + lik &lt;br /&gt;
    return reikšmė&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
: Ši funkcija paima du parametrus ir grąžina reikšmę. Vėliau šią funkciją galima bus iškviesti.&lt;br /&gt;
; Kas nutinka toliau?  &lt;br /&gt;
: Vykdoma kita eilutė einanti po funkcijos &amp;lt;code&amp;gt;rezultatas = daug(3, 2)&amp;lt;/code&amp;gt;&lt;br /&gt;
; Ką daro ši eilutė?&lt;br /&gt;
: Ši eilutė priskiria funkcijos &amp;lt;code&amp;gt;daug(3, 2)&amp;lt;/code&amp;gt; grąžinamą reikšmę kintamajam &amp;lt;code&amp;gt;rezultatas&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 sąlygos rezultatas 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;
: Dabar kintamajam &amp;lt;code&amp;gt;lik&amp;lt;/code&amp;gt; priskiriam funkcijos &amp;lt;code&amp;gt;daug(3, 0)&amp;lt;/code&amp;gt; reikšmė.&lt;br /&gt;
; Kokia š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 į tą vietą, kur ji buvo iškviesta.&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; grąžina 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 reikšmė yra 0.&lt;br /&gt;
; Kurią eilutę kompiuteris skaito po to?&lt;br /&gt;
: Toliau vykdoma eilutė &amp;lt;code&amp;gt;reikšmė = 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;reikšmė = 3&amp;lt;/code&amp;gt;. &lt;br /&gt;
; Kas nutinka toliau?&lt;br /&gt;
: Vykdoma eilutė &amp;lt;code&amp;gt;return reikšmė&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;reikšmė = a + lik&amp;lt;/code&amp;gt; priskiria kintamajam &amp;lt;code&amp;gt;reikšmė&amp;lt;/code&amp;gt; reikšmę &amp;lt;code&amp;gt;3 + 3&amp;lt;/code&amp;gt; arba 6.  &lt;br /&gt;
; Kas įvyksta toliau?&lt;br /&gt;
: Pradedama vykdyti kita eilutė, kuri grąžina 6 iš funkcijos. Tuomet grįžtame prie eilutės &amp;lt;code&amp;gt;rezultatas = daug(3, 2)&amp;lt;/code&amp;gt;, kur kintamajam &amp;lt;code&amp;gt;rezultatas&amp;lt;/code&amp;gt; dabar priskiriama reikšmė 6 &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;rezultatas&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 pirmo skaičiaus ir pirmo bei vienetu mažesnio už antrąjį sandaugos sumai &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. Kai viskas surašoma vienoje eilutėje, gauname &amp;lt;code&amp;gt;3 + 3 + 0 &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=Funkcijų apibrėžimas |next=Sąrašai}}&lt;/div&gt;</summary>
		<author><name>Juratevalat</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Rekursin%C4%97s_funkcijos&amp;diff=3839</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=3839"/>
		<updated>2022-02-07T17:04:39Z</updated>

		<summary type="html">&lt;p&gt;Juratevalat: &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;
    reikšmė = a + lik&lt;br /&gt;
    return reikšmė&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 (reikia 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 daugybos funkcija:&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;
    reikšmė = a + lik &lt;br /&gt;
    return reikšmė&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
: Ši funkcija paima du parametrus ir grąžina reikšmę. Vėliau šią funkciją galima bus iškviesti.&lt;br /&gt;
; Kas nutinka toliau?  &lt;br /&gt;
: Vykdoma kita eilutė einanti po funkcijos &amp;lt;code&amp;gt;rezultatas = daug(3, 2)&amp;lt;/code&amp;gt;&lt;br /&gt;
; Ką daro ši eilutė?&lt;br /&gt;
: Ši eilutė priskiria funkcijos &amp;lt;code&amp;gt;daug(3, 2)&amp;lt;/code&amp;gt; grąžinamą reikšmę kintamajam &amp;lt;code&amp;gt;rezultatas&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 sąlygos rezultatas 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;
: Dabar kintamajam &amp;lt;code&amp;gt;lik&amp;lt;/code&amp;gt; priskiriam funkcijos &amp;lt;code&amp;gt;daug(3, 0)&amp;lt;/code&amp;gt; reikšmė.&lt;br /&gt;
; Kokia š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 į tą vietą, kur ji buvo iškviesta.&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; grąžina 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 reikšmė yra 0.&lt;br /&gt;
; Kurią eilutę kompiuteris skaito po to?&lt;br /&gt;
: Toliau vykdoma eilutė &amp;lt;code&amp;gt;reikšmė = 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;reikšmė = 3&amp;lt;/code&amp;gt;. &lt;br /&gt;
; Kas nutinka toliau?&lt;br /&gt;
: Vykdoma eilutė &amp;lt;code&amp;gt;return reikšmė&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;reikšmė = a + lik&amp;lt;/code&amp;gt; priskiria kintamajam &amp;lt;code&amp;gt;reikšmė&amp;lt;/code&amp;gt; reikšmę &amp;lt;code&amp;gt;3 + 3&amp;lt;/code&amp;gt; arba 6.  &lt;br /&gt;
; Kas įvyksta toliau?&lt;br /&gt;
: Pradedama vykdyti kita eilutė, kuri grąžina 6 iš funkcijos. Tuomet grįžtame prie eilutės &amp;lt;code&amp;gt;rezultatas = daug(3, 2)&amp;lt;/code&amp;gt;, kur kintamajam &amp;lt;code&amp;gt;rezultatas&amp;lt;/code&amp;gt; dabar priskiriama reikšmė 6 &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;rezultatas&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 pirmo skaičiaus ir pirmo bei vienetu mažesnio už antrąjį sandaugos sumai &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. Kai viskas surašoma vienoje eilutėje, gauname &amp;lt;code&amp;gt;3 + 3 + 0 &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=Funkcijų apibrėžimas |next=Sąrašai}}&lt;/div&gt;</summary>
		<author><name>Juratevalat</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Rekursin%C4%97s_funkcijos&amp;diff=3838</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=3838"/>
		<updated>2022-02-07T15:26:07Z</updated>

		<summary type="html">&lt;p&gt;Juratevalat: &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;
    reikšmė = a + lik&lt;br /&gt;
    return reikšmė&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 (reikia 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 daugybos funkcija:&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;
    reikšmė = a + lik &lt;br /&gt;
    return reikšmė&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
: Ši funkcija paima du parametrus ir grąžina reikšmę. Vėliau šią funkciją galima bus iškviesti.&lt;br /&gt;
; Kas nutinka toliau?  &lt;br /&gt;
: Vykdoma kita eilutė einanti po funkcijos &amp;lt;code&amp;gt;rezultatas = daug(3, 2)&amp;lt;/code&amp;gt;&lt;br /&gt;
; Ką daro ši eilutė?&lt;br /&gt;
: Ši eilutė priskiria funkcijos &amp;lt;code&amp;gt;daug(3, 2)&amp;lt;/code&amp;gt; grąžinamą reikšmę kintamajam &amp;lt;code&amp;gt;rezultatas&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 sąlygos rezultatas 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;
: Dabar kintamajam &amp;lt;code&amp;gt;lik&amp;lt;/code&amp;gt; priskiriam funkcijos &amp;lt;code&amp;gt;daug(3, 0)&amp;lt;/code&amp;gt; reikšmė.&lt;br /&gt;
; Kokia š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 į tą vietą, kur ji buvo iškviesta.&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; grąžina 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 reikšmė yra 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 reikšmė&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;reikšmė = a + lik&amp;lt;/code&amp;gt; nustato &amp;lt;code&amp;gt;reikšmė&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;rezultatas = daug(3, 2)&amp;lt;/code&amp;gt;, kuriai dabar galima priskirti reikšmę 6 kintamajam &amp;lt;code&amp;gt;rezultatas&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;rezultatas&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=Funkcijų apibrėžimas |next=Sąrašai}}&lt;/div&gt;</summary>
		<author><name>Juratevalat</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Rekursin%C4%97s_funkcijos&amp;diff=3837</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=3837"/>
		<updated>2022-02-07T15:18:36Z</updated>

		<summary type="html">&lt;p&gt;Juratevalat: &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 (reikia 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 daugybos funkcija:&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;
: Ši funkcija paima du parametrus ir grąžina reikšmę. Vėliau šią funkciją galima bus iškviesti.&lt;br /&gt;
; Kas nutinka toliau?  &lt;br /&gt;
: Vykdoma kita eilutė einanti po funkcijos &amp;lt;code&amp;gt;rezultatas = daug(3, 2)&amp;lt;/code&amp;gt;&lt;br /&gt;
; Ką daro ši eilutė?&lt;br /&gt;
: Ši eilutė priskiria funkcijos &amp;lt;code&amp;gt;daug(3, 2)&amp;lt;/code&amp;gt; grąžinamą reikšmę kintamajam &amp;lt;code&amp;gt;rezultatas&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 sąlygos rezultatas 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;
: Dabar kintamajam &amp;lt;code&amp;gt;lik&amp;lt;/code&amp;gt; priskiriam funkcijos &amp;lt;code&amp;gt;daug(3, 0)&amp;lt;/code&amp;gt; reikšmė.&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; grąžina 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;rezultatas = daug(3, 2)&amp;lt;/code&amp;gt;, kuriai dabar galima priskirti reikšmę 6 kintamajam &amp;lt;code&amp;gt;rezultatas&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;rezultatas&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=Funkcijų apibrėžimas |next=Sąrašai}}&lt;/div&gt;</summary>
		<author><name>Juratevalat</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=3836</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=3836"/>
		<updated>2022-02-07T14:19:17Z</updated>

		<summary type="html">&lt;p&gt;Juratevalat: /* 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 neatrodo, 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'as 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 naujai parašomos funkcijos 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 nurodoma, kai funkcija yra iškviečiama. Vėliau eina dvitaškis &amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt;, po kurio esančios komandos yra vykdomos, kai iškviečiama vykdyti ši funkcija. Funkcijos komandos atitrauktos nuo krašto. Jos tęsiasi 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; komanda grąžina reikšmę į tą pačią vietą, kur buvo iškviesta funkcija. Mūsų pavyzdinėje programoje funkcija &amp;lt;code&amp;gt;absoliuti_reikšmė&amp;lt;/code&amp;gt; buvo iškviesta du kartus &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; sąlygos reiškinyje. pabandykime patyrinėti dar kelias 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 taip pat gali būti naudojamos vykdant užduotis, kurios negrąžina reikšmių. Štai keli pavyzdžiai, kuriuose skirtingai aprašomos funkcijos:&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_mano_vardas(&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. Matome ir dar kelis svarbius dalykus, kuriuos gali padaryti naudojant funkcijas. Taip pat atkreipk dėmesį, kad ne kiekviena funkcija grąžina reikšmę – 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 jis egzistuoja tik funkcijos viduje. Taip pat, turėjai pastebėti, kad 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 priklausantys 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 lokalūs 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;funkcija()&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, kai kviečiama funkcija &amp;lt;code&amp;gt;funkcija(15)&amp;lt;/code&amp;gt;, globalus &amp;lt;code&amp;gt; b_var&amp;lt;/code&amp;gt; yra 15. Taigi &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 funkcijos visuja, jai pasibaigus dingo. Tad komanda &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;, t. y. globaliojo kintamojo &amp;lt;code&amp;gt;a_var&amp;lt;/code&amp;gt; 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;. Pasibaigus funkcijai, visi lokalūs kintamieji ištrinami. Jeigu nori, ką nors gauti iš funkcijos, turėsi naudoti komandą &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; reikšmė išlieka nepakitusi, nes tai nėra nei parametras, nei lokalus kintamasis – jis niekada nerodomas kairėje lygybės pusėje. Kai funkcijos viduje kreipiamasi į globalų kintamąjį, tai jis naudoja reikšmę, įgytą 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;pasirinkimas: &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, taip, kad būtų parašytos atskiros kvadrato, stačiakampio ir apskritimo ploto funkcijos ((&amp;lt;code&amp;gt;3.14 * spindulys**2&amp;lt;/code&amp;gt;). Taip pat šioje programoje turėtų būti sukurtas toks pasirinkimų meniu:&lt;br /&gt;
&lt;br /&gt;
  Pasirinkimai:&lt;br /&gt;
   s = skaičiuoti kvadrato plotą.&lt;br /&gt;
   c = skaičiuoti apskritimo plotą.&lt;br /&gt;
   r = skaičiuoti stačiakampio plotą.&lt;br /&gt;
   q = išeiti.&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;
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šyk savo 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;
&lt;br /&gt;
{{navigation |previous=Derinimas |next=Pažangių funkcijų pavyzdys}}&lt;/div&gt;</summary>
		<author><name>Juratevalat</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=3835</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=3835"/>
		<updated>2022-02-07T14:18:02Z</updated>

		<summary type="html">&lt;p&gt;Juratevalat: /* 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 neatrodo, 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'as 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 naujai parašomos funkcijos 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 nurodoma, kai funkcija yra iškviečiama. Vėliau eina dvitaškis &amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt;, po kurio esančios komandos yra vykdomos, kai iškviečiama vykdyti ši funkcija. Funkcijos komandos atitrauktos nuo krašto. Jos tęsiasi 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; komanda grąžina reikšmę į tą pačią vietą, kur buvo iškviesta funkcija. Mūsų pavyzdinėje programoje funkcija &amp;lt;code&amp;gt;absoliuti_reikšmė&amp;lt;/code&amp;gt; buvo iškviesta du kartus &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; sąlygos reiškinyje. pabandykime patyrinėti dar kelias 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 taip pat gali būti naudojamos vykdant užduotis, kurios negrąžina reikšmių. Štai keli pavyzdžiai, kuriuose skirtingai aprašomos funkcijos:&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_mano_vardas(&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. Matome ir dar kelis svarbius dalykus, kuriuos gali padaryti naudojant funkcijas. Taip pat atkreipk dėmesį, kad ne kiekviena funkcija grąžina reikšmę – 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 jis egzistuoja tik funkcijos viduje. Taip pat, turėjai pastebėti, kad 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 priklausantys 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 lokalūs 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;funkcija()&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, kai kviečiama funkcija &amp;lt;code&amp;gt;funkcija(15)&amp;lt;/code&amp;gt;, globalus &amp;lt;code&amp;gt; b_var&amp;lt;/code&amp;gt; yra 15. Taigi &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 funkcijos visuja, jai pasibaigus dingo. Tad komanda &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;, t. y. globaliojo kintamojo &amp;lt;code&amp;gt;a_var&amp;lt;/code&amp;gt; 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;. Pasibaigus funkcijai, visi lokalūs kintamieji ištrinami. Jeigu nori, ką nors gauti iš funkcijos, turėsi naudoti komandą &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; reikšmė išlieka nepakitusi, nes tai nėra nei parametras, nei lokalus kintamasis – jis niekada nerodomas kairėje lygybės pusėje. Kai funkcijos viduje kreipiamasi į globalų kintamąjį, tai jis naudoja reikšmę, įgytą 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;pasirinkimas: &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, taip, kad būtų parašytos atskiros kvadrato, stačiakampio ir apskritimo ploto funkcijos ((&amp;lt;code&amp;gt;3.14 * spindulys**2&amp;lt;/code&amp;gt;). Taip pat šioje programoje turėtų būti sukurtas toks pasirinkimų meniu:&lt;br /&gt;
Pasirinkimai:&lt;br /&gt;
   s = skaičiuoti kvadrato plotą.&lt;br /&gt;
   c = skaičiuoti apskritimo plotą.&lt;br /&gt;
   r = skaičiuoti stačiakampio plotą.&lt;br /&gt;
   q = išeiti.&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;
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šyk savo 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;
&lt;br /&gt;
{{navigation |previous=Derinimas |next=Pažangių funkcijų pavyzdys}}&lt;/div&gt;</summary>
		<author><name>Juratevalat</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=3834</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=3834"/>
		<updated>2022-02-07T14:17:17Z</updated>

		<summary type="html">&lt;p&gt;Juratevalat: /* 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 neatrodo, 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'as 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 naujai parašomos funkcijos 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 nurodoma, kai funkcija yra iškviečiama. Vėliau eina dvitaškis &amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt;, po kurio esančios komandos yra vykdomos, kai iškviečiama vykdyti ši funkcija. Funkcijos komandos atitrauktos nuo krašto. Jos tęsiasi 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; komanda grąžina reikšmę į tą pačią vietą, kur buvo iškviesta funkcija. Mūsų pavyzdinėje programoje funkcija &amp;lt;code&amp;gt;absoliuti_reikšmė&amp;lt;/code&amp;gt; buvo iškviesta du kartus &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; sąlygos reiškinyje. pabandykime patyrinėti dar kelias 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 taip pat gali būti naudojamos vykdant užduotis, kurios negrąžina reikšmių. Štai keli pavyzdžiai, kuriuose skirtingai aprašomos funkcijos:&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_mano_vardas(&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. Matome ir dar kelis svarbius dalykus, kuriuos gali padaryti naudojant funkcijas. Taip pat atkreipk dėmesį, kad ne kiekviena funkcija grąžina reikšmę – 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 jis egzistuoja tik funkcijos viduje. Taip pat, turėjai pastebėti, kad 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 priklausantys 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 lokalūs 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;funkcija()&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, kai kviečiama funkcija &amp;lt;code&amp;gt;funkcija(15)&amp;lt;/code&amp;gt;, globalus &amp;lt;code&amp;gt; b_var&amp;lt;/code&amp;gt; yra 15. Taigi &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 funkcijos visuja, jai pasibaigus dingo. Tad komanda &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;, t. y. globaliojo kintamojo &amp;lt;code&amp;gt;a_var&amp;lt;/code&amp;gt; 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;. Pasibaigus funkcijai, visi lokalūs kintamieji ištrinami. Jeigu nori, ką nors gauti iš funkcijos, turėsi naudoti komandą &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; reikšmė išlieka nepakitusi, nes tai nėra nei parametras, nei lokalus kintamasis – jis niekada nerodomas kairėje lygybės pusėje. Kai funkcijos viduje kreipiamasi į globalų kintamąjį, tai jis naudoja reikšmę, įgytą 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;pasirinkimas: &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, taip, kad būtų parašytos atskiros kvadrato, stačiakampio ir apskritimo ploto funkcijos ((&amp;lt;code&amp;gt;3.14 * spindulys**2&amp;lt;/code&amp;gt;). Taip pat šioje programoje turėtų būti sukurtas toks pasirinkimų meniu:&lt;br /&gt;
Pasirinkimai:&lt;br /&gt;
   s = skaičiuoti kvadrato plotą.&lt;br /&gt;
   c = skaičiuoti apskritimo plotą.&lt;br /&gt;
   r = skaičiuoti stačiakampio plotą.&lt;br /&gt;
   q = išeiti.&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;
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šyk savo 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;
&lt;br /&gt;
{{navigation |previous=Derinimas |next=Pažangių funkcijų pavyzdys}}&lt;/div&gt;</summary>
		<author><name>Juratevalat</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=3833</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=3833"/>
		<updated>2022-02-07T14:14:14Z</updated>

		<summary type="html">&lt;p&gt;Juratevalat: /* 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 neatrodo, 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'as 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 naujai parašomos funkcijos 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 nurodoma, kai funkcija yra iškviečiama. Vėliau eina dvitaškis &amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt;, po kurio esančios komandos yra vykdomos, kai iškviečiama vykdyti ši funkcija. Funkcijos komandos atitrauktos nuo krašto. Jos tęsiasi 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; komanda grąžina reikšmę į tą pačią vietą, kur buvo iškviesta funkcija. Mūsų pavyzdinėje programoje funkcija &amp;lt;code&amp;gt;absoliuti_reikšmė&amp;lt;/code&amp;gt; buvo iškviesta du kartus &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; sąlygos reiškinyje. pabandykime patyrinėti dar kelias 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 taip pat gali būti naudojamos vykdant užduotis, kurios negrąžina reikšmių. Štai keli pavyzdžiai, kuriuose skirtingai aprašomos funkcijos:&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_mano_vardas(&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. Matome ir dar kelis svarbius dalykus, kuriuos gali padaryti naudojant funkcijas. Taip pat atkreipk dėmesį, kad ne kiekviena funkcija grąžina reikšmę – 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 jis egzistuoja tik funkcijos viduje. Taip pat, turėjai pastebėti, kad 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 priklausantys 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 lokalūs 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;funkcija()&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, kai kviečiama funkcija &amp;lt;code&amp;gt;funkcija(15)&amp;lt;/code&amp;gt;, globalus &amp;lt;code&amp;gt; b_var&amp;lt;/code&amp;gt; yra 15. Taigi &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 funkcijos visuja, jai pasibaigus dingo. Tad komanda &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;, t. y. globaliojo kintamojo &amp;lt;code&amp;gt;a_var&amp;lt;/code&amp;gt; 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;. Pasibaigus funkcijai, visi lokalūs kintamieji ištrinami. Jeigu nori, ką nors gauti iš funkcijos, turėsi naudoti komandą &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; reikšmė išlieka nepakitusi, nes tai nėra nei parametras, nei lokalus kintamasis – jis niekada nerodomas kairėje lygybės pusėje. Kai funkcijos viduje kreipiamasi į globalų kintamąjį, tai jis naudoja reikšmę, įgytą 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;pasirinkimas: &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;
{| 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;
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šyk savo 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;
&lt;br /&gt;
{{navigation |previous=Derinimas |next=Pažangių funkcijų pavyzdys}}&lt;/div&gt;</summary>
		<author><name>Juratevalat</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=3832</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=3832"/>
		<updated>2022-02-07T14:02:03Z</updated>

		<summary type="html">&lt;p&gt;Juratevalat: /* 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 neatrodo, 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'as 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 naujai parašomos funkcijos 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 nurodoma, kai funkcija yra iškviečiama. Vėliau eina dvitaškis &amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt;, po kurio esančios komandos yra vykdomos, kai iškviečiama vykdyti ši funkcija. Funkcijos komandos atitrauktos nuo krašto. Jos tęsiasi 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; komanda grąžina reikšmę į tą pačią vietą, kur buvo iškviesta funkcija. Mūsų pavyzdinėje programoje funkcija &amp;lt;code&amp;gt;absoliuti_reikšmė&amp;lt;/code&amp;gt; buvo iškviesta du kartus &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; sąlygos reiškinyje. pabandykime patyrinėti dar kelias 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 taip pat gali būti naudojamos vykdant užduotis, kurios negrąžina reikšmių. Štai keli pavyzdžiai, kuriuose skirtingai aprašomos funkcijos:&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_mano_vardas(&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. Matome ir dar kelis svarbius dalykus, kuriuos gali padaryti naudojant funkcijas. Taip pat atkreipk dėmesį, kad ne kiekviena funkcija grąžina reikšmę – 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 jis egzistuoja tik funkcijos viduje. Taip pat, turėjai pastebėti, kad 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 priklausantys 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 lokalūs 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;funkcija()&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; _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;pasirinkimas: &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;
{| 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;
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šyk savo 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;
&lt;br /&gt;
{{navigation |previous=Derinimas |next=Pažangių funkcijų pavyzdys}}&lt;/div&gt;</summary>
		<author><name>Juratevalat</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=3831</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=3831"/>
		<updated>2022-02-04T08:28:48Z</updated>

		<summary type="html">&lt;p&gt;Juratevalat: /* 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 neatrodo, 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'as 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 naujai parašomos funkcijos 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 nurodoma, kai funkcija yra iškviečiama. Vėliau eina dvitaškis &amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt;, po kurio esančios komandos yra vykdomos, kai iškviečiama vykdyti ši funkcija. Funkcijos komandos atitrauktos nuo krašto. Jos tęsiasi 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; komanda grąžina reikšmę į tą pačią vietą, kur buvo iškviesta funkcija. Mūsų pavyzdinėje programoje funkcija &amp;lt;code&amp;gt;absoliuti_reikšmė&amp;lt;/code&amp;gt; buvo iškviesta du kartus &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; sąlygos reiškinyje. Na, o dabar galime patys 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 taip pat gali būti naudojamos vykdant užduotis, kurios negrąžina reikšmių. Štai keli pavyzdžiai, kuriuose skirtingai aprašomos funkcijos:&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_mano_vardas(&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. Matome ir dar kelis svarbius dalykus, kuriuos gali padaryti naudojant funkcijas. Taip pat atkreipk dėmesį, kad ne kiekviena funkcija grąžina reikšmę – 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 jis egzistuoja tik funkcijos viduje. Taip pat, turėjai pastebėti, kad 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 priklausantys 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 lokalūs 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;funkcija()&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; _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;pasirinkimas: &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;
{| 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;
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šyk savo 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;
&lt;br /&gt;
{{navigation |previous=Derinimas |next=Pažangių funkcijų pavyzdys}}&lt;/div&gt;</summary>
		<author><name>Juratevalat</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Derinimas&amp;diff=3830</id>
		<title>Python Vadovėlis/Derinimas</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Derinimas&amp;diff=3830"/>
		<updated>2022-02-01T16:13:47Z</updated>

		<summary type="html">&lt;p&gt;Juratevalat: /* Ką daro programa? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Kas yra derinimas? ===&lt;br /&gt;
:„Kai tik pradėjome programuoti, mūsų nuostabai, supratome, kad nėra taip lengva kurti teisingai veikiančias programas, kaip manėme iš pradžių. Derinimas turėjo būti atrastas. Atsimenu tą akimirką, kai supratau, kad didelė mano gyvenimo dalis bus skirta klaidų ieškojimui savo sukurtose programose.“ &amp;amp;mdash; ''Maurice Wilkes atranda derinimą'', 1949&lt;br /&gt;
&lt;br /&gt;
Jei jau bandei parašyti kelias programas, turbūt pastebėjai, kad kartais programa daro ką nors, ko neturėtų daryti. Tai yra tikrai dažna situacija. Derinimas tai yra procesas, kuomet bandoma suprasti, ką kompiuteris daro ir kaip jį priversti daryti tai, ką norėtum, kad jis darytų. Tai gali būti sudėtinga. Vieną kartą aš praleidau beveik savaitę ieškodamas ir taisydamas klaidą, kurią sukėlė kitas žmogus, kode parašęs &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; vietoje &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Ši dalis bus abstraktesnė, nei prieš tai buvusios dalys.&lt;br /&gt;
&lt;br /&gt;
=== Ką turėtų daryti programa? ===&lt;br /&gt;
&lt;br /&gt;
Pirmas dalykas, ką reikia padaryti (kad ir kaip akivaizdžiai tai skamba), tai suprasti, ką turėtų daryti teisingai veikianti programa. Sugalvok kelis tikrinimo scenarijus ir pažiūrėk, kas nutiks. Tarkime, kad aš noriu sukurti programą, kuri suskaičiuoja stačiakampio perimetrą (visų kraštinių sumą). Turiu tokius tikrinimo scenarijus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!aukštis !! plotis !!perimetras&lt;br /&gt;
|-&lt;br /&gt;
|3 ||4 ||14&lt;br /&gt;
|--&lt;br /&gt;
|2 ||3 ||10&lt;br /&gt;
|-&lt;br /&gt;
|4 ||4 ||16&lt;br /&gt;
|-&lt;br /&gt;
|2 ||2 ||8&lt;br /&gt;
|-&lt;br /&gt;
|5 ||1 ||12&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Dabar galiu vykdyti savo programą su visais tikrinimo scenarijais ir pamatyti, ar programa daro tai, ko tikiuosi. Jei ne, turiu suprasti, ką iš tiesų daro kompiuteris.&lt;br /&gt;
&lt;br /&gt;
Dažniausiai, dalis tikrinimo scenarijų veikia, dalis - ne. Jei toks yra ir tavo atvejis, turėtum bandyti suprasti, ką veikiantys scenarijai turi bendro. &lt;br /&gt;
Pavyzdžiui, apačioje yra perimetro programos išvestis (kodas bus pateiktas kiek vėliau):&lt;br /&gt;
&lt;br /&gt;
 Aukštis: '''3'''&lt;br /&gt;
 Plotis: '''4'''&lt;br /&gt;
 Perimetras = 15&lt;br /&gt;
&lt;br /&gt;
 Aukštis: '''2'''&lt;br /&gt;
 Plotis: '''3'''&lt;br /&gt;
 Perimetras = 11&lt;br /&gt;
&lt;br /&gt;
 Aukštis: '''4'''&lt;br /&gt;
 Plotis: '''4'''&lt;br /&gt;
 Perimetras = 16&lt;br /&gt;
&lt;br /&gt;
 Aukštis: '''2'''&lt;br /&gt;
 Plotis: '''2'''&lt;br /&gt;
 Perimetras = 8&lt;br /&gt;
&lt;br /&gt;
 Aukštis: '''5'''&lt;br /&gt;
 Plotis: '''1'''&lt;br /&gt;
 Perimetras = 8&lt;br /&gt;
&lt;br /&gt;
Gali pastebėti, kad programa neveikė su pirmomis dvejomis įvestimis, veikė su sekančiomis dvejomis ir vėl neveikė su paskutine. Pabandyk sugalvoti, kas yra bendro tarp veikiančių scenarijų. Kai supranti, kokia yra programos problema, atrasti jos priežastį yra daug lengviau. Jei reikia, savo programoms gali sugalvoti ir daugiau tikrinimo scenarijų.&lt;br /&gt;
&lt;br /&gt;
=== Ką daro programa? ===&lt;br /&gt;
&lt;br /&gt;
Kitas dalykas, ką reikia padaryti, tai peržiūrėti pirminį programos tekstą. Tai vienas iš svarbiausių dalykų programavime. Pagrindinis būdas, kaip tai daroma - tai kodo peržiūros.&lt;br /&gt;
&lt;br /&gt;
Kodo peržiūra prasideda pirma eilute ir tęsiasi iki programos galo. &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; ciklai ir &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; sakiniai reiškia, kad kai kurios eilutės gali būti nekviečiamos niekada, o kai kurios - vykdomos keletą kartų. Kiekvienoje eilutėje turi suprasti, ką daro Python'as.&lt;br /&gt;
&lt;br /&gt;
Pradėkime su paprasta parametro programa. Šios programos nerašyk. Tau reikės ją tik skaityti, ne vykdyti. Programos pirminis tekstas:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
aukstis = int(input(&amp;quot;Aukštis: &amp;quot;))&lt;br /&gt;
plotis = int(input(&amp;quot;Plotis: &amp;quot;))&lt;br /&gt;
print(&amp;quot;perimetras =&amp;quot;, plotis + aukstis + plotis + plotis)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; ''Klausimas:'' Kuri eilutė vykdoma pirma?&lt;br /&gt;
: ''Atsakymas:'' Pirmoji kodo eilutė visada yra vykdoma pirma. Šiuo atveju tai: &amp;lt;code&amp;gt;aukstis = int(input(&amp;quot;Aukštis: &amp;quot;))&amp;lt;/code&amp;gt;&lt;br /&gt;
; Ką daro ši eilutė?&lt;br /&gt;
: Spausdina &amp;lt;code&amp;gt;Aukštis: &amp;lt;/code&amp;gt;, laukia, kol naudotojas įves teksto eilutę ir ją konvertuoja į sveikąjį kintamąjį &amp;lt;code&amp;gt;aukstis&amp;lt;/code&amp;gt;.&lt;br /&gt;
; Kuri eilutė vykdoma po to?&lt;br /&gt;
: Bendrai, tai yra kita eilutė, kuri yra &amp;lt;code&amp;gt;plotis = int(input(&amp;quot;Plotis: &amp;quot;))&amp;lt;/code&amp;gt;&lt;br /&gt;
; Ką daro ši eilutė?&lt;br /&gt;
: Spausdina &amp;lt;code&amp;gt;Plotis: &amp;lt;/code&amp;gt;, laukia, kol naudotojas įves teksto eilutę ir ją konvertuoja į sveikąjį kintamąjį &amp;lt;code&amp;gt;plotis&amp;lt;/code&amp;gt;.&lt;br /&gt;
; Kuri eilutė vykdoma po to?&lt;br /&gt;
: Kai kita eilutė nėra daugiau ar mažiau įtraukta, nei esama eilutė, ji ir yra vykdoma. Šiuo atveju tai: &amp;lt;code&amp;gt;print(&amp;quot;perimetras =&amp;quot;, plotis + aukstis + plotis + plotis)&amp;lt;/code&amp;gt; (Taip pat gali būti kviečiama funkcija esamoje eilutėje, bet tai bus paaiškinta tolimesniame skyriuje)                                                                       &lt;br /&gt;
; Ką daro ši eilutė?&lt;br /&gt;
: Visų pirma, ji spausdina &amp;lt;code&amp;gt;perimetras = &amp;lt;/code&amp;gt;, o tada - sumą, sudarytą iš kintamųjų &amp;lt;code&amp;gt;plotis&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;aukstis&amp;lt;/code&amp;gt;, kuri užrašoma taip: &amp;lt;code&amp;gt;plotis + aukstis + plotis + plotis&amp;lt;/code&amp;gt;.&lt;br /&gt;
; Ar kodas &amp;lt;code&amp;gt;plotis + aukstis + plotis + plotis&amp;lt;/code&amp;gt; skaičiuoja perimetrą teisingai?&lt;br /&gt;
: Pažiūrėk: stačiakampio perimetras yra apatinė kraštinė (plotis), plius kairė (aukstis), plius viršutinė (plotis), plius dešinė kraštinė (a?). Paskutinis kintamasis turėtų būti dešinės kraštinės ilgis, arba kitaip - aukštis.&lt;br /&gt;
; Ar supranti, kodėl, kai kuriais atvejais, skaičiuojant perimetrą buvo gaunamas teisingas atsakymas?                                                                             &lt;br /&gt;
: Teisingas atsakymas buvo gaunamas kai aukštis ir plotis buvo lygūs.&lt;br /&gt;
&lt;br /&gt;
Kita programa, kurios kodo peržiūrą darysime, tai programa, kuri turėtų ekrane išvesti 5 taškus. Tačiau, programos išvestis yra:&lt;br /&gt;
&lt;br /&gt;
 . . . . &lt;br /&gt;
&lt;br /&gt;
Programa:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
skaicius = 5&lt;br /&gt;
while skaicius &amp;gt; 1:&lt;br /&gt;
    print(&amp;quot;.&amp;quot;, end = &amp;quot; &amp;quot;)&lt;br /&gt;
    skaicius = skaicius - 1&lt;br /&gt;
print()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Šios programos peržiūra bus kiek sudėtingesnė, nes joje yra įtrauktų kodo dalių. Pradėk.&lt;br /&gt;
; Kuri eilutė vykdoma pirma?&lt;br /&gt;
: Pirmoji kodo eilutė: &amp;lt;code&amp;gt;skaicius = 5&amp;lt;/code&amp;gt;&lt;br /&gt;
; Ką ji daro?&lt;br /&gt;
: Priskiria skaičių 5 kintamajam &amp;lt;code&amp;gt;skaicius&amp;lt;/code&amp;gt;.&lt;br /&gt;
; Kuri eilutė vykdoma po to?&lt;br /&gt;
: Kita eilutė yra: &amp;lt;code&amp;gt;while skaicius &amp;gt; 1:&amp;lt;/code&amp;gt;&lt;br /&gt;
; Ką ji daro?&lt;br /&gt;
: Na, &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; sakiniai žiūri į juose esančius reiškinius. Jei jie yra tesingi, vykdomas kitas įtrauktas blokas. Jei klaidingi – įtrauktas blokas yra praleidžiamas.&lt;br /&gt;
; Tai ką ji daro šiuo atveju?&lt;br /&gt;
: Jei &amp;lt;code&amp;gt;skaicius &amp;gt; 1&amp;lt;/code&amp;gt; yra ''teisinga'', bus vykdomos kitos dvi eilutės.&lt;br /&gt;
; Taigi, ar &amp;lt;code&amp;gt;skaicius &amp;gt; 1&amp;lt;/code&amp;gt;?&lt;br /&gt;
: Paskutinė vertė, kuri buvo priskirta &amp;lt;code&amp;gt;skaicius&amp;lt;/code&amp;gt; buvo &amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;5 &amp;gt; 1&amp;lt;/code&amp;gt;, taigi – taip.&lt;br /&gt;
; O kuri eilutė vykdoma po to?&lt;br /&gt;
: Kadangi &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; buvo teisinga, tai kita eilutė yra: &amp;lt;code&amp;gt;print(&amp;quot;.&amp;quot;, end = &amp;quot; &amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
; Ką daro ši eilutė?&lt;br /&gt;
: Spausdina vieną tašką. Kadangi funkcija turi papildomą argumentą &amp;lt;code&amp;gt;end = &amp;quot; &amp;quot;&amp;lt;/code&amp;gt;, toliau spausdinamas tekstas nebus pradedamas naujoje eilutėje.&lt;br /&gt;
; Kuri eilutė vykdoma po to?&lt;br /&gt;
: &amp;lt;code&amp;gt;skaicius = skaicius - 1&amp;lt;/code&amp;gt;, nes tai yra kita eilutė ir nėra jokių įtraukos pasikeitimų.&lt;br /&gt;
; Ką ji daro?&lt;br /&gt;
: Eilutė skaičiuoja &amp;lt;code&amp;gt;skaicius - 1&amp;lt;/code&amp;gt;: iš esamos &amp;lt;code&amp;gt;skaicius&amp;lt;/code&amp;gt; vertės (5) atimamas 1, ir tai tampa nauja kintamojo &amp;lt;code&amp;gt;skaicius&amp;lt;/code&amp;gt; reikšmė. Sutrumpintai, &amp;lt;code&amp;gt;skaicius&amp;lt;/code&amp;gt; vertė yra pakeičiama iš 5 į 4.&lt;br /&gt;
; Kuri eilutė vykdoma po to?&lt;br /&gt;
: Įtraukos lygis keičiasi, todėl turi žiūrėti į tai, kokią valdymo struktūrą turime. Peržiūrėk &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; ciklą, taigi turi grįžti į &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; sąlygą, kuri yra &amp;lt;code&amp;gt;while skaicius &amp;gt; 1:&amp;lt;/code&amp;gt;&lt;br /&gt;
; Ką ji daro?&lt;br /&gt;
: Eilutė žiūri į &amp;lt;code&amp;gt;skaicius&amp;lt;/code&amp;gt; reikšmę, kuri yra 4, ir lygina ją su 1. Kadangi &amp;lt;code&amp;gt;4 &amp;gt; 1&amp;lt;/code&amp;gt;, ciklas tęsiasi.&lt;br /&gt;
; Kuri eilutė vykdoma po to?&lt;br /&gt;
: Kadangi ciklo sąlyga buvo teisinga, kita eilutė yra: &amp;lt;code&amp;gt;print(&amp;quot;.&amp;quot;, end = &amp;quot; &amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
; Ką ji daro?&lt;br /&gt;
: Ekrane išspausdina dar vieną tašką, po jo padėdama tarpą.&lt;br /&gt;
; Kuri eilutė vykdoma po to?&lt;br /&gt;
: Nėra įtraukos pokyčio, todėl: &amp;lt;code&amp;gt;skaicius = skaicius - 1&amp;lt;/code&amp;gt;&lt;br /&gt;
; Ir ką ji daro?&lt;br /&gt;
: Ima dabartinę &amp;lt;code&amp;gt;skaicius&amp;lt;/code&amp;gt; reikšmę (4), atima 1, kas yra lygu 3 ir priskiria 3 kaip naują &amp;lt;code&amp;gt;skaicius&amp;lt;/code&amp;gt; reikšmę.&lt;br /&gt;
; Kuri eilutė vykdoma po to?&lt;br /&gt;
: Kadangi turime įtraukos pokytį dėl ciklo, kita eilutė yra: &amp;lt;code&amp;gt;while skaicius &amp;gt; 1:&amp;lt;/code&amp;gt;&lt;br /&gt;
; Ką ji daro?&lt;br /&gt;
: Palygina dabartinę &amp;lt;code&amp;gt;skaicius&amp;lt;/code&amp;gt; reikšmę (3) su 1. &amp;lt;code&amp;gt;3 &amp;gt; 1&amp;lt;/code&amp;gt;, todėl ciklas tęsiasi.&lt;br /&gt;
; Kuri eilutė vykdoma po to?&lt;br /&gt;
: Kadangi ciklo sąlyga yra teisinga, kita eilutė: &amp;lt;code&amp;gt;print(&amp;quot;.&amp;quot;, end = &amp;quot; &amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
; O ji daro?&lt;br /&gt;
: Trečias taškas yra spausdinamas eilutėje.&lt;br /&gt;
; Kuri eilutė vykdoma po to?&lt;br /&gt;
: Tai: &amp;lt;code&amp;gt;skaicius = skaicius - 1&amp;lt;/code&amp;gt;&lt;br /&gt;
; Ką ji daro?&lt;br /&gt;
: Ima dabartinę &amp;lt;code&amp;gt;skaicius&amp;lt;/code&amp;gt; reikšmę (3), atima 1, kas yra lygu 2 ir priskiria 2 kaip naują &amp;lt;code&amp;gt;skaicius&amp;lt;/code&amp;gt; reikšmę.&lt;br /&gt;
; Kuri eilutė vykdoma po to?&lt;br /&gt;
: Vėl grįžtame į ciklo pradžią: &amp;lt;code&amp;gt;while skaicius &amp;gt; 1:&amp;lt;/code&amp;gt;&lt;br /&gt;
; Ką ji daro?&lt;br /&gt;
: Palygina dabartinę &amp;lt;code&amp;gt;skaicius&amp;lt;/code&amp;gt; reikšmę (2) su 1. &amp;lt;code&amp;gt;2 &amp;gt; 1&amp;lt;/code&amp;gt;, todėl ciklas tęsiasi.&lt;br /&gt;
; Kuri eilutė vykdoma po to?&lt;br /&gt;
: Kadangi ciklas tęsiasi: &amp;lt;code&amp;gt;print(&amp;quot;.&amp;quot;, end = &amp;quot; &amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
; Ką ji daro?&lt;br /&gt;
: Atranda atsakymą gyvenimui, Visatai, ir viskam. Juokauju (turėjau patikrinti, kad dar neužmigai). Eilutė spausdina ketvirtą tašką ekrane.&lt;br /&gt;
; Kuri eilutė vykdoma po to?&lt;br /&gt;
: Tai: &amp;lt;code&amp;gt;skaicius = skaicius - 1&amp;lt;/code&amp;gt;&lt;br /&gt;
; Ką ji daro?&lt;br /&gt;
: Ima dabartinę &amp;lt;code&amp;gt;skaicius&amp;lt;/code&amp;gt; reikšmę (2), atima 1, kas yra lygu 1 ir priskiria 1 kaip naują &amp;lt;code&amp;gt;skaicius&amp;lt;/code&amp;gt; reikšmę.&lt;br /&gt;
; Kuri eilutė vykdoma po to?&lt;br /&gt;
: Atgal į ciklo pradžią: &amp;lt;code&amp;gt;while skaicius &amp;gt; 1:&amp;lt;/code&amp;gt;&lt;br /&gt;
; Ką daro ši eilutė?&lt;br /&gt;
: Ji palygina &amp;lt;code&amp;gt;skaicius&amp;lt;/code&amp;gt; reikšmę (1) to 1. Kadangi &amp;lt;code&amp;gt;1 &amp;gt; 1&amp;lt;/code&amp;gt; yra ''klaidinga'' (vienas nėra daugiau nei vienas), ciklas baigiasi.&lt;br /&gt;
; Kuri eilutė vykdoma po to?&lt;br /&gt;
: Kadangi ciklo sąlyga buvo klaidinga, vykdoma kita eilutė esanti už ciklo. Tai yra: &amp;lt;code&amp;gt;print()&amp;lt;/code&amp;gt;&lt;br /&gt;
; Ką daro ši eilutė?&lt;br /&gt;
: Priverčia teksto žymeklį ekrane peršokti į kitą eilutę.&lt;br /&gt;
; Kodėl programa nespausdina 5 taškų?&lt;br /&gt;
: Ciklas baigiasi vienu tašku per anksti.&lt;br /&gt;
; Kaip tai sutvarkyti?&lt;br /&gt;
: Priversti ciklą baigtis vienu tašku vėliau.&lt;br /&gt;
; Ir kaip tai padaryti?&lt;br /&gt;
: Yra keli būdai. Vienas iš jų yra pakeisti ciklo sąlygą į: &amp;lt;code&amp;gt;while skaicius &amp;gt; 0:&amp;lt;/code&amp;gt;. Kitas būdas pakeisti sąlygą į: &amp;lt;code&amp;gt;skaicius &amp;gt;= 1&amp;lt;/code&amp;gt;. Yra ir daugiau būdų.&lt;br /&gt;
&lt;br /&gt;
=== Kaip turėčiau taisyti savo programą? ===&lt;br /&gt;
&lt;br /&gt;
Tau reikia suprasti, ką programa daro. Tau reikia suprasti, ką programa turėtų daryti. Suprasti, koks skirtumas tarp šių dviejų dalykų. Derinimas - tai įgūdis, kurį norint išmokti, reikia daug praktikos. Jei po valandos nepavyksta išspręsti problemos, pailsėk, pakalbėk su kuo nors apie tai. Po kurio laiko sugrįžk prie problemos ir greičiausiai turėsi naujų minčių, kaip ją įveikti. Sėkmės.&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Pasirinkimai |next=Funkcijų apibrėžimas}}&lt;/div&gt;</summary>
		<author><name>Juratevalat</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Pasirinkimai&amp;diff=3829</id>
		<title>Python Vadovėlis/Pasirinkimai</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Pasirinkimai&amp;diff=3829"/>
		<updated>2022-02-01T15:42:34Z</updated>

		<summary type="html">&lt;p&gt;Juratevalat: /* Pratimai */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== &amp;lt;code&amp;gt;If&amp;lt;/code&amp;gt; sakinys ===&lt;br /&gt;
Aš manau, kad kiekvieną skyrių turėčiau pradėti nuo apšilimo pratimo. Taigi, žemiau turime trumpą programą, kuri apskaičiuoja absoliučią sveikojo skaičiaus reikšmę:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
n = int(input(&amp;quot;Skaičius? &amp;quot;))&lt;br /&gt;
if n &amp;lt; 0:&lt;br /&gt;
   print(&amp;quot;Absoliuti&amp;quot;, n, &amp;quot;reikšmė yra&amp;quot;, -n)&lt;br /&gt;
else:&lt;br /&gt;
   print(&amp;quot;Absoliuti&amp;quot;, n, &amp;quot;reikšmė yra&amp;quot;, n)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Štai rezultatas po dviejų programos vykdymų:&lt;br /&gt;
&lt;br /&gt;
 Skaičius? '''-34'''&lt;br /&gt;
 Absoliuti -34 reikšmė yra 34&lt;br /&gt;
&lt;br /&gt;
 Skaičius? '''1'''&lt;br /&gt;
 Absoliuti 1 reikšmė yra 1&lt;br /&gt;
&lt;br /&gt;
Taigi, ką kompiuteris daro, kai pamato šį kodą? Visų pirma, jis kviečia įvesti skaičių su šiuo sakiniu &amp;lt;code&amp;gt;n = int(input(&amp;quot;Skaičius? &amp;quot;))&amp;lt;/code&amp;gt;. Tada jis skaito eilutę &amp;lt;code&amp;gt;if n &amp;lt; 0:&amp;lt;/code&amp;gt;. Jei &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; yra mažiau už nulį, Python'as vykdo eilutę &amp;lt;code&amp;gt;print(&amp;quot;Absoliuti&amp;quot;, n, &amp;quot;reikšmė yra&amp;quot;, -n)&amp;lt;/code&amp;gt;. Kitu atveju, jis vykdo eilutę &amp;lt;code&amp;gt;print(&amp;quot;Absoliuti&amp;quot;, n, &amp;quot;reikšmė yra&amp;quot;, n)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Kalbant formaliau, Python'as tikrina, ar „reiškinio“ &amp;lt;code&amp;gt;n &amp;lt; 0&amp;lt;/code&amp;gt; reikšmė yra teisinga ar klaidinga. Sakinys &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; yra lydimas įtraukto sakinių „bloko“, kuris vykdomas tik jei reiškinio reikšmė yra teisinga. Pasirinktinai, po &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; sakinio gali būti &amp;lt;code&amp;gt;else&amp;lt;/code&amp;gt; sakinys ir dar vienas įtrauktas sakinių „blokas“. Antrasis sakinių blokas yra vykdomas tik jei reiškinio reikšmė yra klaidinga.&lt;br /&gt;
&lt;br /&gt;
Reiškinys gali turėti įvairių sąlygų. Žemiau yra visų jų lentelė:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Operatorius &lt;br /&gt;
!Funkcija&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt; &lt;br /&gt;
|mažiau nei&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;lt;=&amp;lt;/code&amp;gt; &lt;br /&gt;
|mažiau nei arba lygu&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt; &lt;br /&gt;
|daugiau nei&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;gt;=&amp;lt;/code&amp;gt; &lt;br /&gt;
|daugiau nei arba lygu&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;==&amp;lt;/code&amp;gt; &lt;br /&gt;
|lygu&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;!=&amp;lt;/code&amp;gt; &lt;br /&gt;
|nelygu&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Dar viena sakinio &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; ypatybė yra &amp;lt;code&amp;gt;elif&amp;lt;/code&amp;gt; dalis. Tai &amp;lt;code&amp;gt;else if&amp;lt;/code&amp;gt; sutrumpinimas ir reiškia, kad jei originali &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; sakinio reikšmė yra klaidinga, bet &amp;lt;code&amp;gt;elif&amp;lt;/code&amp;gt; dalis yra teisinga, yra vykdoma &amp;lt;code&amp;gt;elif&amp;lt;/code&amp;gt; kodo dalis. Ir jei nei &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt;, nei &amp;lt;code&amp;gt;elif&amp;lt;/code&amp;gt; reiškiniai nėra tiesa, tada vykdomas &amp;lt;code&amp;gt;else&amp;lt;/code&amp;gt; blokas. Pavyzdžiui:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
a = 0&lt;br /&gt;
while a &amp;lt; 10:&lt;br /&gt;
    a = a + 1&lt;br /&gt;
    if a &amp;gt; 5:&lt;br /&gt;
        print(a, &amp;quot;&amp;gt;&amp;quot;, 5)&lt;br /&gt;
    elif a &amp;lt;= 3:&lt;br /&gt;
        print(a, &amp;quot;&amp;lt;=&amp;quot;, 3)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Nei vienas iš testų nėra teisingas&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ir išvestis:&lt;br /&gt;
&lt;br /&gt;
 1 &amp;lt;= 3&lt;br /&gt;
 2 &amp;lt;= 3&lt;br /&gt;
 3 &amp;lt;= 3&lt;br /&gt;
 Nei vienas iš testų nėra teisingas&lt;br /&gt;
 Nei vienas iš testų nėra teisingas&lt;br /&gt;
 6 &amp;gt; 5&lt;br /&gt;
 7 &amp;gt; 5&lt;br /&gt;
 8 &amp;gt; 5&lt;br /&gt;
 9 &amp;gt; 5&lt;br /&gt;
 10 &amp;gt; 5&lt;br /&gt;
&lt;br /&gt;
Gali pastebėti, kad &amp;lt;code&amp;gt;elif a &amp;lt;= 3&amp;lt;/code&amp;gt; dalis yra tikrinama tik tada, jei &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; reiškinio reikšmė nėra tiesa. Galima rašyti daugiau nei vieną &amp;lt;code&amp;gt;elif&amp;lt;/code&amp;gt; reiškinį, tokiu būdu leidžiant tikrinti kelias sąlygas viename &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; sakinyje.&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 parodo, kaip galima naudoti == operatorių&lt;br /&gt;
# naudojant skaičius&lt;br /&gt;
print(5 == 6)&lt;br /&gt;
# naudojant kintamuosius&lt;br /&gt;
x = 5&lt;br /&gt;
y = 8&lt;br /&gt;
print(x == y)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ir išvestis&lt;br /&gt;
&lt;br /&gt;
 False&lt;br /&gt;
 False&lt;br /&gt;
&lt;br /&gt;
'''daugiau_maziau.py'''&amp;lt;!--\label{firsthighlow}--&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Spėlionių žaidimas daugiau mažiau&lt;br /&gt;
&lt;br /&gt;
# Iš tiesų, čia turėtų būti naudojami pusiau atsitiktiniai skaičiai,&lt;br /&gt;
# pavyzdžiui paskutinis laiko skaitmuo, ar kažkas panašaus. Bet tai&lt;br /&gt;
# palauks iki vėlesnės dalies. (Papildoma užduotis: po Modulių dalies, pakeisk šį kodą,&lt;br /&gt;
# kad būtų naudojami atsitiktiniai skaičiai)&lt;br /&gt;
skaicius = 7&lt;br /&gt;
spejimas = -1&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Atspėk skaičių!&amp;quot;)&lt;br /&gt;
while spejimas != skaicius:&lt;br /&gt;
    spejimas = int(input(&amp;quot;Ar tai yra... &amp;quot;))&lt;br /&gt;
&lt;br /&gt;
    if spejimas == skaicius:&lt;br /&gt;
        print(&amp;quot;Valio! Atspėjai teisingai!&amp;quot;)&lt;br /&gt;
    elif spejimas &amp;lt; skaicius:&lt;br /&gt;
        print(&amp;quot;Skaičius yra didesnis...&amp;quot;)&lt;br /&gt;
    elif spejimas &amp;gt; skaicius:&lt;br /&gt;
        print(&amp;quot;Skaičius yra ne toks didelis.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pavyzdinis vykdymas:&lt;br /&gt;
&lt;br /&gt;
 Atspėk skaičių!&lt;br /&gt;
 Ar tai yra... '''2'''&lt;br /&gt;
 Skaičius yra didesnis...&lt;br /&gt;
 Ar tai yra... '''5'''&lt;br /&gt;
 Skaičius yra didesnis...&lt;br /&gt;
 Ar tai yra... '''10'''&lt;br /&gt;
 Skaičius yra ne toks didelis.&lt;br /&gt;
 Ar tai yra... '''7'''&lt;br /&gt;
 Valio! Atspėjai teisingai!&lt;br /&gt;
&lt;br /&gt;
'''lyginis.py'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Prašo įvesti skaičių.&lt;br /&gt;
# Išveda, ar skaičius yra lyginis, ar ne&lt;br /&gt;
 &lt;br /&gt;
skaicius = float(input(&amp;quot;Pasakyk man skaičių: &amp;quot;))&lt;br /&gt;
if skaicius % 2 == 0:&lt;br /&gt;
    print(int(skaicius), &amp;quot;yra lyginis.&amp;quot;)&lt;br /&gt;
elif skaicius % 2 == 1:&lt;br /&gt;
    print(int(skaicius), &amp;quot;yra nelyginis.&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(skaicius, &amp;quot;yra labai keistas.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pavyzdiniai vykdymai:&lt;br /&gt;
&lt;br /&gt;
 Pasakyk man skaičių: '''3'''&lt;br /&gt;
 3 yra nelyginis.&lt;br /&gt;
&lt;br /&gt;
 Pasakyk man skaičių: '''2'''&lt;br /&gt;
 2 yra lyginis.&lt;br /&gt;
&lt;br /&gt;
 Pasakyk man skaičių: '''3.4895'''&lt;br /&gt;
 3.4895 yra labai keistas.&lt;br /&gt;
&lt;br /&gt;
'''vidurkis1.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Prašo įvesti skaičių iki tol, kol įvedamas 0&lt;br /&gt;
# Išveda visų įvestų skaičių vidurkį&lt;br /&gt;
&lt;br /&gt;
kiekis = 0&lt;br /&gt;
suma = 0.0&lt;br /&gt;
skaicius = 1 # nurodomas tam, kad nebūtų iškart išeinama iš ciklo.&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Įvesk 0, kad sustabdytum ciklą&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
while skaicius != 0:&lt;br /&gt;
    skaicius = float(input(&amp;quot;Įvesk skaičių: &amp;quot;))&lt;br /&gt;
    if skaicius != 0:&lt;br /&gt;
        kiekis = kiekis + 1&lt;br /&gt;
        suma = suma + skaicius &lt;br /&gt;
    if skaicius == 0:&lt;br /&gt;
        print(&amp;quot;Skaičių vidurkis yra:&amp;quot;, suma / kiekis)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pavyzdiniai vykdymai:&lt;br /&gt;
&lt;br /&gt;
 Įvesk 0, kad sustabdytum ciklą&lt;br /&gt;
 Įvesk skaičių: '''3'''&lt;br /&gt;
 Įvesk skaičių: '''5'''&lt;br /&gt;
 Įvesk skaičių: '''0'''&lt;br /&gt;
 Skaičių vidurkis yra: 4.0&lt;br /&gt;
&lt;br /&gt;
 Įvesk 0, kad sustabdytum ciklą&lt;br /&gt;
 Įvesk skaičių: '''1'''&lt;br /&gt;
 Įvesk skaičių: '''4'''&lt;br /&gt;
 Įvesk skaičių: '''3'''&lt;br /&gt;
 Įvesk skaičių: '''0'''&lt;br /&gt;
 Skaičių vidurkis yra: 2.66666666667&lt;br /&gt;
&lt;br /&gt;
'''vidurkis2.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Prašo įvesti skaičių iki tol, kol bus įvestas tam tikras kiekis skaičių&lt;br /&gt;
# Išveda visų įvestų skaičių vidurkį.&lt;br /&gt;
&lt;br /&gt;
# Gali pastebėti, kad naudojame sveikąjį skaičių sekti, kiek skaičių&lt;br /&gt;
# buvo įvesta, bet slankiojo kablelio skaičių, kiekvienam įvestam&lt;br /&gt;
# skaičiui įsiminti&lt;br /&gt;
suma = 0.0&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Ši programa paprašys įvesti kelis skaičius ir suskaičiuos jų vidurkį&amp;quot;)&lt;br /&gt;
kiekis = int(input(&amp;quot;Kelių skaičių vidurkį norėtum suskaičiuoti: &amp;quot;))&lt;br /&gt;
esamasis_kiekis = 0&lt;br /&gt;
&lt;br /&gt;
while esamasis_kiekis &amp;lt; kiekis:&lt;br /&gt;
    esamasis_kiekis = esamasis_kiekis + 1&lt;br /&gt;
    print(&amp;quot;Skaičius&amp;quot;, esamasis_kiekis)&lt;br /&gt;
    skaicius = float(input(&amp;quot;Įvesk skaičių: &amp;quot;))&lt;br /&gt;
    suma = suma + skaicius &lt;br /&gt;
    &lt;br /&gt;
print(&amp;quot;Skaičių vidurkis yra:&amp;quot;, suma / kiekis)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pavyzdiniai vykdymai:&lt;br /&gt;
&lt;br /&gt;
 Ši programa paprašys įvesti kelis skaičius ir suskaičiuos jų vidurkį&lt;br /&gt;
 Kelių skaičių vidurkį norėtum suskaičiuoti: '''2'''&lt;br /&gt;
 Skaičius 1&lt;br /&gt;
 Įvesk skaičių: '''3'''&lt;br /&gt;
 Skaičius 2&lt;br /&gt;
 Įvesk skaičių: '''5'''&lt;br /&gt;
 Skaičių vidurkis yra: 4.0&lt;br /&gt;
&lt;br /&gt;
 Ši programa paprašys įvesti kelis skaičius ir suskaičiuos jų vidurkį&lt;br /&gt;
 Kelių skaičių vidurkį norėtum suskaičiuoti: '''3'''&lt;br /&gt;
 Skaičius 1&lt;br /&gt;
 Įvesk skaičių: '''1'''&lt;br /&gt;
 Skaičius 2&lt;br /&gt;
 Įvesk skaičių: '''4'''&lt;br /&gt;
 Skaičius 3&lt;br /&gt;
 Įvesk skaičių: '''3'''&lt;br /&gt;
 Skaičių vidurkis yra: 2.66666666667&lt;br /&gt;
&lt;br /&gt;
=== Pratimai ===&lt;br /&gt;
Parašyk programą, kuri prašo naudotojo įvesti savo vardą. Jei jis įveda tavo vardą, išvesk „Tai puikus vardas“. Jei jie įveda „Jonas Jonaitis“ arba „Petras Petraitis“, išvesk kokį nors juokingą tekstą. Kitu atveju, išvesk „Tavo vardas yra labai gražus“.&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;Tavo vardas: &amp;quot;)&lt;br /&gt;
if vardas == 'Lukas':&lt;br /&gt;
    print(&amp;quot;Tai puikus vardas.&amp;quot;)&lt;br /&gt;
elif vardas == 'Jonas Jonaitis':&lt;br /&gt;
    print(&amp;quot;... juokingas tekstas apie Joną.&amp;quot;)&lt;br /&gt;
elif vardas == 'Petras Petraitis':&lt;br /&gt;
    print(&amp;quot;... juokingas tekstas apie Petrą.&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Tavo vardas yra labai gražus.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Pakeisk aukščiau esančią „daugiau_maziau.py“ programą, kad ji papildomai skaičiuotų, kiek kartų naudotojas įvedė neteisingą skaičių. Jei taip nutiko daugiau, nei tris kartus, programos pabaigoje išvesk „Tai buvo sudėtinga.“, o kitu atveju - „Gerai padirbėjai!“&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;
skaicius = 7&lt;br /&gt;
spejimas = -1&lt;br /&gt;
kiekis = 0&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Atspėk skaičių!&amp;quot;)&lt;br /&gt;
while spejimas != skaicius:&lt;br /&gt;
    spejimas = int(input(&amp;quot;Ar tai yra... &amp;quot;))&lt;br /&gt;
    kiekis = kiekis + 1&lt;br /&gt;
    if spejimas == skaicius:&lt;br /&gt;
        print(&amp;quot;Valio! Atspėjai teisingai!&amp;quot;)&lt;br /&gt;
    elif spejimas &amp;lt; skaicius:&lt;br /&gt;
        print(&amp;quot;Skaičius yra didesnis...&amp;quot;)&lt;br /&gt;
    elif spejimas &amp;gt; skaicius:&lt;br /&gt;
        print(&amp;quot;Skaičius yra ne toks didelis.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
if kiekis &amp;gt; 3:&lt;br /&gt;
    print(&amp;quot;Tai buvo sudėtinga.&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Gerai padirbėjai!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Parašyk programą, kuri prašo įvesti du skaičius. Jei skaičių suma yra didesnė nei 100, išvesk „Tai yra didelis skaičius“.&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;
skaicius1 = float(input(&amp;quot;Pirmas skaičius: &amp;quot;))&lt;br /&gt;
skaicius2 = float(input(&amp;quot;Antras skaičius: &amp;quot;))&lt;br /&gt;
if skaicius1 + skaicius2 &amp;gt; 100:&lt;br /&gt;
    print(&amp;quot;Skaičių suma yra didelis skaičius.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Suskaičiuoti iki 10 |next=Derinimas}}&lt;/div&gt;</summary>
		<author><name>Juratevalat</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Pasirinkimai&amp;diff=3828</id>
		<title>Python Vadovėlis/Pasirinkimai</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Pasirinkimai&amp;diff=3828"/>
		<updated>2022-02-01T15:41:27Z</updated>

		<summary type="html">&lt;p&gt;Juratevalat: /* Pavyzdžiai */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== &amp;lt;code&amp;gt;If&amp;lt;/code&amp;gt; sakinys ===&lt;br /&gt;
Aš manau, kad kiekvieną skyrių turėčiau pradėti nuo apšilimo pratimo. Taigi, žemiau turime trumpą programą, kuri apskaičiuoja absoliučią sveikojo skaičiaus reikšmę:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
n = int(input(&amp;quot;Skaičius? &amp;quot;))&lt;br /&gt;
if n &amp;lt; 0:&lt;br /&gt;
   print(&amp;quot;Absoliuti&amp;quot;, n, &amp;quot;reikšmė yra&amp;quot;, -n)&lt;br /&gt;
else:&lt;br /&gt;
   print(&amp;quot;Absoliuti&amp;quot;, n, &amp;quot;reikšmė yra&amp;quot;, n)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Štai rezultatas po dviejų programos vykdymų:&lt;br /&gt;
&lt;br /&gt;
 Skaičius? '''-34'''&lt;br /&gt;
 Absoliuti -34 reikšmė yra 34&lt;br /&gt;
&lt;br /&gt;
 Skaičius? '''1'''&lt;br /&gt;
 Absoliuti 1 reikšmė yra 1&lt;br /&gt;
&lt;br /&gt;
Taigi, ką kompiuteris daro, kai pamato šį kodą? Visų pirma, jis kviečia įvesti skaičių su šiuo sakiniu &amp;lt;code&amp;gt;n = int(input(&amp;quot;Skaičius? &amp;quot;))&amp;lt;/code&amp;gt;. Tada jis skaito eilutę &amp;lt;code&amp;gt;if n &amp;lt; 0:&amp;lt;/code&amp;gt;. Jei &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; yra mažiau už nulį, Python'as vykdo eilutę &amp;lt;code&amp;gt;print(&amp;quot;Absoliuti&amp;quot;, n, &amp;quot;reikšmė yra&amp;quot;, -n)&amp;lt;/code&amp;gt;. Kitu atveju, jis vykdo eilutę &amp;lt;code&amp;gt;print(&amp;quot;Absoliuti&amp;quot;, n, &amp;quot;reikšmė yra&amp;quot;, n)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Kalbant formaliau, Python'as tikrina, ar „reiškinio“ &amp;lt;code&amp;gt;n &amp;lt; 0&amp;lt;/code&amp;gt; reikšmė yra teisinga ar klaidinga. Sakinys &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; yra lydimas įtraukto sakinių „bloko“, kuris vykdomas tik jei reiškinio reikšmė yra teisinga. Pasirinktinai, po &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; sakinio gali būti &amp;lt;code&amp;gt;else&amp;lt;/code&amp;gt; sakinys ir dar vienas įtrauktas sakinių „blokas“. Antrasis sakinių blokas yra vykdomas tik jei reiškinio reikšmė yra klaidinga.&lt;br /&gt;
&lt;br /&gt;
Reiškinys gali turėti įvairių sąlygų. Žemiau yra visų jų lentelė:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Operatorius &lt;br /&gt;
!Funkcija&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt; &lt;br /&gt;
|mažiau nei&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;lt;=&amp;lt;/code&amp;gt; &lt;br /&gt;
|mažiau nei arba lygu&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt; &lt;br /&gt;
|daugiau nei&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;gt;=&amp;lt;/code&amp;gt; &lt;br /&gt;
|daugiau nei arba lygu&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;==&amp;lt;/code&amp;gt; &lt;br /&gt;
|lygu&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;!=&amp;lt;/code&amp;gt; &lt;br /&gt;
|nelygu&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Dar viena sakinio &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; ypatybė yra &amp;lt;code&amp;gt;elif&amp;lt;/code&amp;gt; dalis. Tai &amp;lt;code&amp;gt;else if&amp;lt;/code&amp;gt; sutrumpinimas ir reiškia, kad jei originali &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; sakinio reikšmė yra klaidinga, bet &amp;lt;code&amp;gt;elif&amp;lt;/code&amp;gt; dalis yra teisinga, yra vykdoma &amp;lt;code&amp;gt;elif&amp;lt;/code&amp;gt; kodo dalis. Ir jei nei &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt;, nei &amp;lt;code&amp;gt;elif&amp;lt;/code&amp;gt; reiškiniai nėra tiesa, tada vykdomas &amp;lt;code&amp;gt;else&amp;lt;/code&amp;gt; blokas. Pavyzdžiui:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
a = 0&lt;br /&gt;
while a &amp;lt; 10:&lt;br /&gt;
    a = a + 1&lt;br /&gt;
    if a &amp;gt; 5:&lt;br /&gt;
        print(a, &amp;quot;&amp;gt;&amp;quot;, 5)&lt;br /&gt;
    elif a &amp;lt;= 3:&lt;br /&gt;
        print(a, &amp;quot;&amp;lt;=&amp;quot;, 3)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Nei vienas iš testų nėra teisingas&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ir išvestis:&lt;br /&gt;
&lt;br /&gt;
 1 &amp;lt;= 3&lt;br /&gt;
 2 &amp;lt;= 3&lt;br /&gt;
 3 &amp;lt;= 3&lt;br /&gt;
 Nei vienas iš testų nėra teisingas&lt;br /&gt;
 Nei vienas iš testų nėra teisingas&lt;br /&gt;
 6 &amp;gt; 5&lt;br /&gt;
 7 &amp;gt; 5&lt;br /&gt;
 8 &amp;gt; 5&lt;br /&gt;
 9 &amp;gt; 5&lt;br /&gt;
 10 &amp;gt; 5&lt;br /&gt;
&lt;br /&gt;
Gali pastebėti, kad &amp;lt;code&amp;gt;elif a &amp;lt;= 3&amp;lt;/code&amp;gt; dalis yra tikrinama tik tada, jei &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; reiškinio reikšmė nėra tiesa. Galima rašyti daugiau nei vieną &amp;lt;code&amp;gt;elif&amp;lt;/code&amp;gt; reiškinį, tokiu būdu leidžiant tikrinti kelias sąlygas viename &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; sakinyje.&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 parodo, kaip galima naudoti == operatorių&lt;br /&gt;
# naudojant skaičius&lt;br /&gt;
print(5 == 6)&lt;br /&gt;
# naudojant kintamuosius&lt;br /&gt;
x = 5&lt;br /&gt;
y = 8&lt;br /&gt;
print(x == y)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ir išvestis&lt;br /&gt;
&lt;br /&gt;
 False&lt;br /&gt;
 False&lt;br /&gt;
&lt;br /&gt;
'''daugiau_maziau.py'''&amp;lt;!--\label{firsthighlow}--&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Spėlionių žaidimas daugiau mažiau&lt;br /&gt;
&lt;br /&gt;
# Iš tiesų, čia turėtų būti naudojami pusiau atsitiktiniai skaičiai,&lt;br /&gt;
# pavyzdžiui paskutinis laiko skaitmuo, ar kažkas panašaus. Bet tai&lt;br /&gt;
# palauks iki vėlesnės dalies. (Papildoma užduotis: po Modulių dalies, pakeisk šį kodą,&lt;br /&gt;
# kad būtų naudojami atsitiktiniai skaičiai)&lt;br /&gt;
skaicius = 7&lt;br /&gt;
spejimas = -1&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Atspėk skaičių!&amp;quot;)&lt;br /&gt;
while spejimas != skaicius:&lt;br /&gt;
    spejimas = int(input(&amp;quot;Ar tai yra... &amp;quot;))&lt;br /&gt;
&lt;br /&gt;
    if spejimas == skaicius:&lt;br /&gt;
        print(&amp;quot;Valio! Atspėjai teisingai!&amp;quot;)&lt;br /&gt;
    elif spejimas &amp;lt; skaicius:&lt;br /&gt;
        print(&amp;quot;Skaičius yra didesnis...&amp;quot;)&lt;br /&gt;
    elif spejimas &amp;gt; skaicius:&lt;br /&gt;
        print(&amp;quot;Skaičius yra ne toks didelis.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pavyzdinis vykdymas:&lt;br /&gt;
&lt;br /&gt;
 Atspėk skaičių!&lt;br /&gt;
 Ar tai yra... '''2'''&lt;br /&gt;
 Skaičius yra didesnis...&lt;br /&gt;
 Ar tai yra... '''5'''&lt;br /&gt;
 Skaičius yra didesnis...&lt;br /&gt;
 Ar tai yra... '''10'''&lt;br /&gt;
 Skaičius yra ne toks didelis.&lt;br /&gt;
 Ar tai yra... '''7'''&lt;br /&gt;
 Valio! Atspėjai teisingai!&lt;br /&gt;
&lt;br /&gt;
'''lyginis.py'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Prašo įvesti skaičių.&lt;br /&gt;
# Išveda, ar skaičius yra lyginis, ar ne&lt;br /&gt;
 &lt;br /&gt;
skaicius = float(input(&amp;quot;Pasakyk man skaičių: &amp;quot;))&lt;br /&gt;
if skaicius % 2 == 0:&lt;br /&gt;
    print(int(skaicius), &amp;quot;yra lyginis.&amp;quot;)&lt;br /&gt;
elif skaicius % 2 == 1:&lt;br /&gt;
    print(int(skaicius), &amp;quot;yra nelyginis.&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(skaicius, &amp;quot;yra labai keistas.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pavyzdiniai vykdymai:&lt;br /&gt;
&lt;br /&gt;
 Pasakyk man skaičių: '''3'''&lt;br /&gt;
 3 yra nelyginis.&lt;br /&gt;
&lt;br /&gt;
 Pasakyk man skaičių: '''2'''&lt;br /&gt;
 2 yra lyginis.&lt;br /&gt;
&lt;br /&gt;
 Pasakyk man skaičių: '''3.4895'''&lt;br /&gt;
 3.4895 yra labai keistas.&lt;br /&gt;
&lt;br /&gt;
'''vidurkis1.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Prašo įvesti skaičių iki tol, kol įvedamas 0&lt;br /&gt;
# Išveda visų įvestų skaičių vidurkį&lt;br /&gt;
&lt;br /&gt;
kiekis = 0&lt;br /&gt;
suma = 0.0&lt;br /&gt;
skaicius = 1 # nurodomas tam, kad nebūtų iškart išeinama iš ciklo.&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Įvesk 0, kad sustabdytum ciklą&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
while skaicius != 0:&lt;br /&gt;
    skaicius = float(input(&amp;quot;Įvesk skaičių: &amp;quot;))&lt;br /&gt;
    if skaicius != 0:&lt;br /&gt;
        kiekis = kiekis + 1&lt;br /&gt;
        suma = suma + skaicius &lt;br /&gt;
    if skaicius == 0:&lt;br /&gt;
        print(&amp;quot;Skaičių vidurkis yra:&amp;quot;, suma / kiekis)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pavyzdiniai vykdymai:&lt;br /&gt;
&lt;br /&gt;
 Įvesk 0, kad sustabdytum ciklą&lt;br /&gt;
 Įvesk skaičių: '''3'''&lt;br /&gt;
 Įvesk skaičių: '''5'''&lt;br /&gt;
 Įvesk skaičių: '''0'''&lt;br /&gt;
 Skaičių vidurkis yra: 4.0&lt;br /&gt;
&lt;br /&gt;
 Įvesk 0, kad sustabdytum ciklą&lt;br /&gt;
 Įvesk skaičių: '''1'''&lt;br /&gt;
 Įvesk skaičių: '''4'''&lt;br /&gt;
 Įvesk skaičių: '''3'''&lt;br /&gt;
 Įvesk skaičių: '''0'''&lt;br /&gt;
 Skaičių vidurkis yra: 2.66666666667&lt;br /&gt;
&lt;br /&gt;
'''vidurkis2.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Prašo įvesti skaičių iki tol, kol bus įvestas tam tikras kiekis skaičių&lt;br /&gt;
# Išveda visų įvestų skaičių vidurkį.&lt;br /&gt;
&lt;br /&gt;
# Gali pastebėti, kad naudojame sveikąjį skaičių sekti, kiek skaičių&lt;br /&gt;
# buvo įvesta, bet slankiojo kablelio skaičių, kiekvienam įvestam&lt;br /&gt;
# skaičiui įsiminti&lt;br /&gt;
suma = 0.0&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Ši programa paprašys įvesti kelis skaičius ir suskaičiuos jų vidurkį&amp;quot;)&lt;br /&gt;
kiekis = int(input(&amp;quot;Kelių skaičių vidurkį norėtum suskaičiuoti: &amp;quot;))&lt;br /&gt;
esamasis_kiekis = 0&lt;br /&gt;
&lt;br /&gt;
while esamasis_kiekis &amp;lt; kiekis:&lt;br /&gt;
    esamasis_kiekis = esamasis_kiekis + 1&lt;br /&gt;
    print(&amp;quot;Skaičius&amp;quot;, esamasis_kiekis)&lt;br /&gt;
    skaicius = float(input(&amp;quot;Įvesk skaičių: &amp;quot;))&lt;br /&gt;
    suma = suma + skaicius &lt;br /&gt;
    &lt;br /&gt;
print(&amp;quot;Skaičių vidurkis yra:&amp;quot;, suma / kiekis)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pavyzdiniai vykdymai:&lt;br /&gt;
&lt;br /&gt;
 Ši programa paprašys įvesti kelis skaičius ir suskaičiuos jų vidurkį&lt;br /&gt;
 Kelių skaičių vidurkį norėtum suskaičiuoti: '''2'''&lt;br /&gt;
 Skaičius 1&lt;br /&gt;
 Įvesk skaičių: '''3'''&lt;br /&gt;
 Skaičius 2&lt;br /&gt;
 Įvesk skaičių: '''5'''&lt;br /&gt;
 Skaičių vidurkis yra: 4.0&lt;br /&gt;
&lt;br /&gt;
 Ši programa paprašys įvesti kelis skaičius ir suskaičiuos jų vidurkį&lt;br /&gt;
 Kelių skaičių vidurkį norėtum suskaičiuoti: '''3'''&lt;br /&gt;
 Skaičius 1&lt;br /&gt;
 Įvesk skaičių: '''1'''&lt;br /&gt;
 Skaičius 2&lt;br /&gt;
 Įvesk skaičių: '''4'''&lt;br /&gt;
 Skaičius 3&lt;br /&gt;
 Įvesk skaičių: '''3'''&lt;br /&gt;
 Skaičių vidurkis yra: 2.66666666667&lt;br /&gt;
&lt;br /&gt;
=== Pratimai ===&lt;br /&gt;
Parašyk programą, kuri prašo naudotojo įvesti savo vardą. Jei jis įveda tavo vardą, išvesk „Tai puikus vardas“. Jei jie įveda &amp;quot;Jonas Jonaitis“ arba „Petras Petraitis“, išvesk kokį nors juokingą tekstą. Kitu atveju, išvesk „Tavo vardas yra labai gražus“.&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;Tavo vardas: &amp;quot;)&lt;br /&gt;
if vardas == 'Lukas':&lt;br /&gt;
    print(&amp;quot;Tai puikus vardas.&amp;quot;)&lt;br /&gt;
elif vardas == 'Jonas Jonaitis':&lt;br /&gt;
    print(&amp;quot;... juokingas tekstas apie Joną.&amp;quot;)&lt;br /&gt;
elif vardas == 'Petras Petraitis':&lt;br /&gt;
    print(&amp;quot;... juokingas tekstas apie Petrą.&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Tavo vardas yra labai gražus.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Pakeisk aukščiau esančią „daugiau_maziau.py“ programą, kad ji papildomai skaičiuotų, kiek kartų naudotojas įvedė neteisingą skaičių. Jei taip nutiko daugiau, nei tris kartus, programos pabaigoje išvesk „Tai buvo sudėtinga.“, o kitu atveju - „Gerai padirbėjai!“&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;
skaicius = 7&lt;br /&gt;
spejimas = -1&lt;br /&gt;
kiekis = 0&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Atspėk skaičių!&amp;quot;)&lt;br /&gt;
while spejimas != skaicius:&lt;br /&gt;
    spejimas = int(input(&amp;quot;Ar tai yra... &amp;quot;))&lt;br /&gt;
    kiekis = kiekis + 1&lt;br /&gt;
    if spejimas == skaicius:&lt;br /&gt;
        print(&amp;quot;Valio! Atspėjai teisingai!&amp;quot;)&lt;br /&gt;
    elif spejimas &amp;lt; skaicius:&lt;br /&gt;
        print(&amp;quot;Skaičius yra didesnis...&amp;quot;)&lt;br /&gt;
    elif spejimas &amp;gt; skaicius:&lt;br /&gt;
        print(&amp;quot;Skaičius yra ne toks didelis.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
if kiekis &amp;gt; 3:&lt;br /&gt;
    print(&amp;quot;Tai buvo sudėtinga.&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Gerai padirbėjai!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Parašyk programą, kuri prašo įvesti du skaičius. Jei skaičių suma yra didesnė nei 100, išvesk „Tai yra didelis skaičius“.&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;
skaicius1 = float(input(&amp;quot;Pirmas skaičius: &amp;quot;))&lt;br /&gt;
skaicius2 = float(input(&amp;quot;Antras skaičius: &amp;quot;))&lt;br /&gt;
if skaicius1 + skaicius2 &amp;gt; 100:&lt;br /&gt;
    print(&amp;quot;Skaičių suma yra didelis skaičius.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Suskaičiuoti iki 10 |next=Derinimas}}&lt;/div&gt;</summary>
		<author><name>Juratevalat</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Pasirinkimai&amp;diff=3827</id>
		<title>Python Vadovėlis/Pasirinkimai</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Pasirinkimai&amp;diff=3827"/>
		<updated>2022-02-01T15:36:48Z</updated>

		<summary type="html">&lt;p&gt;Juratevalat: /* Pavyzdžiai */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== &amp;lt;code&amp;gt;If&amp;lt;/code&amp;gt; sakinys ===&lt;br /&gt;
Aš manau, kad kiekvieną skyrių turėčiau pradėti nuo apšilimo pratimo. Taigi, žemiau turime trumpą programą, kuri apskaičiuoja absoliučią sveikojo skaičiaus reikšmę:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
n = int(input(&amp;quot;Skaičius? &amp;quot;))&lt;br /&gt;
if n &amp;lt; 0:&lt;br /&gt;
   print(&amp;quot;Absoliuti&amp;quot;, n, &amp;quot;reikšmė yra&amp;quot;, -n)&lt;br /&gt;
else:&lt;br /&gt;
   print(&amp;quot;Absoliuti&amp;quot;, n, &amp;quot;reikšmė yra&amp;quot;, n)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Štai rezultatas po dviejų programos vykdymų:&lt;br /&gt;
&lt;br /&gt;
 Skaičius? '''-34'''&lt;br /&gt;
 Absoliuti -34 reikšmė yra 34&lt;br /&gt;
&lt;br /&gt;
 Skaičius? '''1'''&lt;br /&gt;
 Absoliuti 1 reikšmė yra 1&lt;br /&gt;
&lt;br /&gt;
Taigi, ką kompiuteris daro, kai pamato šį kodą? Visų pirma, jis kviečia įvesti skaičių su šiuo sakiniu &amp;lt;code&amp;gt;n = int(input(&amp;quot;Skaičius? &amp;quot;))&amp;lt;/code&amp;gt;. Tada jis skaito eilutę &amp;lt;code&amp;gt;if n &amp;lt; 0:&amp;lt;/code&amp;gt;. Jei &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; yra mažiau už nulį, Python'as vykdo eilutę &amp;lt;code&amp;gt;print(&amp;quot;Absoliuti&amp;quot;, n, &amp;quot;reikšmė yra&amp;quot;, -n)&amp;lt;/code&amp;gt;. Kitu atveju, jis vykdo eilutę &amp;lt;code&amp;gt;print(&amp;quot;Absoliuti&amp;quot;, n, &amp;quot;reikšmė yra&amp;quot;, n)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Kalbant formaliau, Python'as tikrina, ar „reiškinio“ &amp;lt;code&amp;gt;n &amp;lt; 0&amp;lt;/code&amp;gt; reikšmė yra teisinga ar klaidinga. Sakinys &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; yra lydimas įtraukto sakinių „bloko“, kuris vykdomas tik jei reiškinio reikšmė yra teisinga. Pasirinktinai, po &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; sakinio gali būti &amp;lt;code&amp;gt;else&amp;lt;/code&amp;gt; sakinys ir dar vienas įtrauktas sakinių „blokas“. Antrasis sakinių blokas yra vykdomas tik jei reiškinio reikšmė yra klaidinga.&lt;br /&gt;
&lt;br /&gt;
Reiškinys gali turėti įvairių sąlygų. Žemiau yra visų jų lentelė:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Operatorius &lt;br /&gt;
!Funkcija&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt; &lt;br /&gt;
|mažiau nei&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;lt;=&amp;lt;/code&amp;gt; &lt;br /&gt;
|mažiau nei arba lygu&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt; &lt;br /&gt;
|daugiau nei&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;gt;=&amp;lt;/code&amp;gt; &lt;br /&gt;
|daugiau nei arba lygu&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;==&amp;lt;/code&amp;gt; &lt;br /&gt;
|lygu&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;!=&amp;lt;/code&amp;gt; &lt;br /&gt;
|nelygu&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Dar viena sakinio &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; ypatybė yra &amp;lt;code&amp;gt;elif&amp;lt;/code&amp;gt; dalis. Tai &amp;lt;code&amp;gt;else if&amp;lt;/code&amp;gt; sutrumpinimas ir reiškia, kad jei originali &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; sakinio reikšmė yra klaidinga, bet &amp;lt;code&amp;gt;elif&amp;lt;/code&amp;gt; dalis yra teisinga, yra vykdoma &amp;lt;code&amp;gt;elif&amp;lt;/code&amp;gt; kodo dalis. Ir jei nei &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt;, nei &amp;lt;code&amp;gt;elif&amp;lt;/code&amp;gt; reiškiniai nėra tiesa, tada vykdomas &amp;lt;code&amp;gt;else&amp;lt;/code&amp;gt; blokas. Pavyzdžiui:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
a = 0&lt;br /&gt;
while a &amp;lt; 10:&lt;br /&gt;
    a = a + 1&lt;br /&gt;
    if a &amp;gt; 5:&lt;br /&gt;
        print(a, &amp;quot;&amp;gt;&amp;quot;, 5)&lt;br /&gt;
    elif a &amp;lt;= 3:&lt;br /&gt;
        print(a, &amp;quot;&amp;lt;=&amp;quot;, 3)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Nei vienas iš testų nėra teisingas&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ir išvestis:&lt;br /&gt;
&lt;br /&gt;
 1 &amp;lt;= 3&lt;br /&gt;
 2 &amp;lt;= 3&lt;br /&gt;
 3 &amp;lt;= 3&lt;br /&gt;
 Nei vienas iš testų nėra teisingas&lt;br /&gt;
 Nei vienas iš testų nėra teisingas&lt;br /&gt;
 6 &amp;gt; 5&lt;br /&gt;
 7 &amp;gt; 5&lt;br /&gt;
 8 &amp;gt; 5&lt;br /&gt;
 9 &amp;gt; 5&lt;br /&gt;
 10 &amp;gt; 5&lt;br /&gt;
&lt;br /&gt;
Gali pastebėti, kad &amp;lt;code&amp;gt;elif a &amp;lt;= 3&amp;lt;/code&amp;gt; dalis yra tikrinama tik tada, jei &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; reiškinio reikšmė nėra tiesa. Galima rašyti daugiau nei vieną &amp;lt;code&amp;gt;elif&amp;lt;/code&amp;gt; reiškinį, tokiu būdu leidžiant tikrinti kelias sąlygas viename &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; sakinyje.&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 parodo, kaip galima naudoti == operatorių&lt;br /&gt;
# naudojant skaičius&lt;br /&gt;
print(5 == 6)&lt;br /&gt;
# naudojant kintamuosius&lt;br /&gt;
x = 5&lt;br /&gt;
y = 8&lt;br /&gt;
print(x == y)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ir išvestis&lt;br /&gt;
&lt;br /&gt;
 False&lt;br /&gt;
 False&lt;br /&gt;
&lt;br /&gt;
'''daugiau_maziau.py'''&amp;lt;!--\label{firsthighlow}--&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Žaidžia spėlionių žaidimą daugiau mažiau&lt;br /&gt;
&lt;br /&gt;
# Iš tiesų, čia turėtų būti naudojami pusiau atsitiktiniai skaičiai,&lt;br /&gt;
# pavyzdžiui paskutinis laiko skaitmuo, ar kažkas panašaus. Bet tai&lt;br /&gt;
# palauks iki vėlesnės dalies. (Papildoma užduotis: po Modulių dalies, pakeisk šį kodą,&lt;br /&gt;
# kad būtų naudojami atsitiktiniai skaičiai)&lt;br /&gt;
skaicius = 7&lt;br /&gt;
spejimas = -1&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Atspėk skaičių!&amp;quot;)&lt;br /&gt;
while spejimas != skaicius:&lt;br /&gt;
    spejimas = int(input(&amp;quot;Ar tai yra... &amp;quot;))&lt;br /&gt;
&lt;br /&gt;
    if spejimas == skaicius:&lt;br /&gt;
        print(&amp;quot;Valio! Atspėjai teisingai!&amp;quot;)&lt;br /&gt;
    elif spejimas &amp;lt; skaicius:&lt;br /&gt;
        print(&amp;quot;Skaičius yra didesnis...&amp;quot;)&lt;br /&gt;
    elif spejimas &amp;gt; skaicius:&lt;br /&gt;
        print(&amp;quot;Skaičius yra ne toks didelis.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pavyzdinis vykdymas:&lt;br /&gt;
&lt;br /&gt;
 Atspėk skaičių!&lt;br /&gt;
 Ar tai yra... '''2'''&lt;br /&gt;
 Skaičius yra didesnis...&lt;br /&gt;
 Ar tai yra... '''5'''&lt;br /&gt;
 Skaičius yra didesnis...&lt;br /&gt;
 Ar tai yra... '''10'''&lt;br /&gt;
 Skaičius yra ne toks didelis.&lt;br /&gt;
 Ar tai yra... '''7'''&lt;br /&gt;
 Valio! Atspėjai teisingai!&lt;br /&gt;
&lt;br /&gt;
'''lyginis.py'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Prašo įvesti skaičių.&lt;br /&gt;
# Išveda, ar skaičius yra lyginis, ar ne&lt;br /&gt;
 &lt;br /&gt;
skaicius = float(input(&amp;quot;Pasakyk man skaičių: &amp;quot;))&lt;br /&gt;
if skaicius % 2 == 0:&lt;br /&gt;
    print(int(skaicius), &amp;quot;yra lyginis.&amp;quot;)&lt;br /&gt;
elif skaicius % 2 == 1:&lt;br /&gt;
    print(int(skaicius), &amp;quot;yra nelyginis.&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(skaicius, &amp;quot;yra labai keistas.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pavyzdiniai vykdymai:&lt;br /&gt;
&lt;br /&gt;
 Pasakyk man skaičių: '''3'''&lt;br /&gt;
 3 yra nelyginis.&lt;br /&gt;
&lt;br /&gt;
 Pasakyk man skaičių: '''2'''&lt;br /&gt;
 2 yra lyginis.&lt;br /&gt;
&lt;br /&gt;
 Pasakyk man skaičių: '''3.4895'''&lt;br /&gt;
 3.4895 yra labai keistas.&lt;br /&gt;
&lt;br /&gt;
'''vidurkis1.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Prašo įvesti skaičių iki tol, kol įvedamas 0&lt;br /&gt;
# Išveda skaičių vidurkį&lt;br /&gt;
&lt;br /&gt;
kiekis = 0&lt;br /&gt;
suma = 0.0&lt;br /&gt;
skaicius = 1 # nurodomas tam, kad nebūtų iškart išeinama iš ciklo.&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Įvesk 0, kad sustabdytum ciklą&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
while skaicius != 0:&lt;br /&gt;
    skaicius = float(input(&amp;quot;Įvesk skaičių: &amp;quot;))&lt;br /&gt;
    if skaicius != 0:&lt;br /&gt;
        kiekis = kiekis + 1&lt;br /&gt;
        suma = suma + skaicius &lt;br /&gt;
    if skaicius == 0:&lt;br /&gt;
        print(&amp;quot;Skaičių vidurkis yra:&amp;quot;, suma / kiekis)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pavyzdiniai vykdymai:&lt;br /&gt;
&lt;br /&gt;
 Įvesk 0, kad sustabdytum ciklą&lt;br /&gt;
 Įvesk skaičių: '''3'''&lt;br /&gt;
 Įvesk skaičių: '''5'''&lt;br /&gt;
 Įvesk skaičių: '''0'''&lt;br /&gt;
 Skaičių vidurkis yra: 4.0&lt;br /&gt;
&lt;br /&gt;
 Įvesk 0, kad sustabdytum ciklą&lt;br /&gt;
 Įvesk skaičių: '''1'''&lt;br /&gt;
 Įvesk skaičių: '''4'''&lt;br /&gt;
 Įvesk skaičių: '''3'''&lt;br /&gt;
 Įvesk skaičių: '''0'''&lt;br /&gt;
 Skaičių vidurkis yra: 2.66666666667&lt;br /&gt;
&lt;br /&gt;
'''vidurkis2.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Prašo įvesti skaičių iki tol, kol bus įvestas tam tikras kiekis skaičių&lt;br /&gt;
# Išveda skaičių vidurkį.&lt;br /&gt;
&lt;br /&gt;
# Gali pastebėti, kad naudojame sveikąjį skaičių sekti, kiek numerių&lt;br /&gt;
# buvo įvesta, bet slankiojo kablelio skaičių, kiekvienam įvestam&lt;br /&gt;
# skaičiui sekti&lt;br /&gt;
suma = 0.0&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Ši programa paprašys įvesti kelis skaičius ir suskaičiuos jų vidurkį&amp;quot;)&lt;br /&gt;
kiekis = int(input(&amp;quot;Kelių skaičių vidurkį norėtum suskaičiuoti: &amp;quot;))&lt;br /&gt;
esamasis_kiekis = 0&lt;br /&gt;
&lt;br /&gt;
while esamasis_kiekis &amp;lt; kiekis:&lt;br /&gt;
    esamasis_kiekis = esamasis_kiekis + 1&lt;br /&gt;
    print(&amp;quot;Skaičius&amp;quot;, esamasis_kiekis)&lt;br /&gt;
    skaicius = float(input(&amp;quot;Įvesk skaičių: &amp;quot;))&lt;br /&gt;
    suma = suma + skaicius &lt;br /&gt;
    &lt;br /&gt;
print(&amp;quot;Skaičių vidurkis yra:&amp;quot;, suma / kiekis)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pavyzdiniai vykdymai:&lt;br /&gt;
&lt;br /&gt;
 Ši programa paprašys įvesti kelis skaičius ir suskaičiuos jų vidurkį&lt;br /&gt;
 Kelių skaičių vidurkį norėtum suskaičiuoti: '''2'''&lt;br /&gt;
 Skaičius 1&lt;br /&gt;
 Įvesk skaičių: '''3'''&lt;br /&gt;
 Skaičius 2&lt;br /&gt;
 Įvesk skaičių: '''5'''&lt;br /&gt;
 Skaičių vidurkis yra: 4.0&lt;br /&gt;
&lt;br /&gt;
 Ši programa paprašys įvesti kelis skaičius ir suskaičiuos jų vidurkį&lt;br /&gt;
 Kelių skaičių vidurkį norėtum suskaičiuoti: '''3'''&lt;br /&gt;
 Skaičius 1&lt;br /&gt;
 Įvesk skaičių: '''1'''&lt;br /&gt;
 Skaičius 2&lt;br /&gt;
 Įvesk skaičių: '''4'''&lt;br /&gt;
 Skaičius 3&lt;br /&gt;
 Įvesk skaičių: '''3'''&lt;br /&gt;
 Skaičių vidurkis yra: 2.66666666667&lt;br /&gt;
&lt;br /&gt;
=== Pratimai ===&lt;br /&gt;
Parašyk programą, kuri prašo naudotojo įvesti savo vardą. Jei jis įveda tavo vardą, išvesk „Tai puikus vardas“. Jei jie įveda &amp;quot;Jonas Jonaitis“ arba „Petras Petraitis“, išvesk kokį nors juokingą tekstą. Kitu atveju, išvesk „Tavo vardas yra labai gražus“.&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;Tavo vardas: &amp;quot;)&lt;br /&gt;
if vardas == 'Lukas':&lt;br /&gt;
    print(&amp;quot;Tai puikus vardas.&amp;quot;)&lt;br /&gt;
elif vardas == 'Jonas Jonaitis':&lt;br /&gt;
    print(&amp;quot;... juokingas tekstas apie Joną.&amp;quot;)&lt;br /&gt;
elif vardas == 'Petras Petraitis':&lt;br /&gt;
    print(&amp;quot;... juokingas tekstas apie Petrą.&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Tavo vardas yra labai gražus.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Pakeisk aukščiau esančią „daugiau_maziau.py“ programą, kad ji papildomai skaičiuotų, kiek kartų naudotojas įvedė neteisingą skaičių. Jei taip nutiko daugiau, nei tris kartus, programos pabaigoje išvesk „Tai buvo sudėtinga.“, o kitu atveju - „Gerai padirbėjai!“&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;
skaicius = 7&lt;br /&gt;
spejimas = -1&lt;br /&gt;
kiekis = 0&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Atspėk skaičių!&amp;quot;)&lt;br /&gt;
while spejimas != skaicius:&lt;br /&gt;
    spejimas = int(input(&amp;quot;Ar tai yra... &amp;quot;))&lt;br /&gt;
    kiekis = kiekis + 1&lt;br /&gt;
    if spejimas == skaicius:&lt;br /&gt;
        print(&amp;quot;Valio! Atspėjai teisingai!&amp;quot;)&lt;br /&gt;
    elif spejimas &amp;lt; skaicius:&lt;br /&gt;
        print(&amp;quot;Skaičius yra didesnis...&amp;quot;)&lt;br /&gt;
    elif spejimas &amp;gt; skaicius:&lt;br /&gt;
        print(&amp;quot;Skaičius yra ne toks didelis.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
if kiekis &amp;gt; 3:&lt;br /&gt;
    print(&amp;quot;Tai buvo sudėtinga.&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Gerai padirbėjai!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Parašyk programą, kuri prašo įvesti du skaičius. Jei skaičių suma yra didesnė nei 100, išvesk „Tai yra didelis skaičius“.&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;
skaicius1 = float(input(&amp;quot;Pirmas skaičius: &amp;quot;))&lt;br /&gt;
skaicius2 = float(input(&amp;quot;Antras skaičius: &amp;quot;))&lt;br /&gt;
if skaicius1 + skaicius2 &amp;gt; 100:&lt;br /&gt;
    print(&amp;quot;Skaičių suma yra didelis skaičius.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Suskaičiuoti iki 10 |next=Derinimas}}&lt;/div&gt;</summary>
		<author><name>Juratevalat</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Pasirinkimai&amp;diff=3826</id>
		<title>Python Vadovėlis/Pasirinkimai</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Pasirinkimai&amp;diff=3826"/>
		<updated>2022-02-01T15:36:02Z</updated>

		<summary type="html">&lt;p&gt;Juratevalat: /* If sakinys */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== &amp;lt;code&amp;gt;If&amp;lt;/code&amp;gt; sakinys ===&lt;br /&gt;
Aš manau, kad kiekvieną skyrių turėčiau pradėti nuo apšilimo pratimo. Taigi, žemiau turime trumpą programą, kuri apskaičiuoja absoliučią sveikojo skaičiaus reikšmę:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
n = int(input(&amp;quot;Skaičius? &amp;quot;))&lt;br /&gt;
if n &amp;lt; 0:&lt;br /&gt;
   print(&amp;quot;Absoliuti&amp;quot;, n, &amp;quot;reikšmė yra&amp;quot;, -n)&lt;br /&gt;
else:&lt;br /&gt;
   print(&amp;quot;Absoliuti&amp;quot;, n, &amp;quot;reikšmė yra&amp;quot;, n)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Štai rezultatas po dviejų programos vykdymų:&lt;br /&gt;
&lt;br /&gt;
 Skaičius? '''-34'''&lt;br /&gt;
 Absoliuti -34 reikšmė yra 34&lt;br /&gt;
&lt;br /&gt;
 Skaičius? '''1'''&lt;br /&gt;
 Absoliuti 1 reikšmė yra 1&lt;br /&gt;
&lt;br /&gt;
Taigi, ką kompiuteris daro, kai pamato šį kodą? Visų pirma, jis kviečia įvesti skaičių su šiuo sakiniu &amp;lt;code&amp;gt;n = int(input(&amp;quot;Skaičius? &amp;quot;))&amp;lt;/code&amp;gt;. Tada jis skaito eilutę &amp;lt;code&amp;gt;if n &amp;lt; 0:&amp;lt;/code&amp;gt;. Jei &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; yra mažiau už nulį, Python'as vykdo eilutę &amp;lt;code&amp;gt;print(&amp;quot;Absoliuti&amp;quot;, n, &amp;quot;reikšmė yra&amp;quot;, -n)&amp;lt;/code&amp;gt;. Kitu atveju, jis vykdo eilutę &amp;lt;code&amp;gt;print(&amp;quot;Absoliuti&amp;quot;, n, &amp;quot;reikšmė yra&amp;quot;, n)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Kalbant formaliau, Python'as tikrina, ar „reiškinio“ &amp;lt;code&amp;gt;n &amp;lt; 0&amp;lt;/code&amp;gt; reikšmė yra teisinga ar klaidinga. Sakinys &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; yra lydimas įtraukto sakinių „bloko“, kuris vykdomas tik jei reiškinio reikšmė yra teisinga. Pasirinktinai, po &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; sakinio gali būti &amp;lt;code&amp;gt;else&amp;lt;/code&amp;gt; sakinys ir dar vienas įtrauktas sakinių „blokas“. Antrasis sakinių blokas yra vykdomas tik jei reiškinio reikšmė yra klaidinga.&lt;br /&gt;
&lt;br /&gt;
Reiškinys gali turėti įvairių sąlygų. Žemiau yra visų jų lentelė:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Operatorius &lt;br /&gt;
!Funkcija&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt; &lt;br /&gt;
|mažiau nei&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;lt;=&amp;lt;/code&amp;gt; &lt;br /&gt;
|mažiau nei arba lygu&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt; &lt;br /&gt;
|daugiau nei&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;gt;=&amp;lt;/code&amp;gt; &lt;br /&gt;
|daugiau nei arba lygu&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;==&amp;lt;/code&amp;gt; &lt;br /&gt;
|lygu&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;!=&amp;lt;/code&amp;gt; &lt;br /&gt;
|nelygu&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Dar viena sakinio &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; ypatybė yra &amp;lt;code&amp;gt;elif&amp;lt;/code&amp;gt; dalis. Tai &amp;lt;code&amp;gt;else if&amp;lt;/code&amp;gt; sutrumpinimas ir reiškia, kad jei originali &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; sakinio reikšmė yra klaidinga, bet &amp;lt;code&amp;gt;elif&amp;lt;/code&amp;gt; dalis yra teisinga, yra vykdoma &amp;lt;code&amp;gt;elif&amp;lt;/code&amp;gt; kodo dalis. Ir jei nei &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt;, nei &amp;lt;code&amp;gt;elif&amp;lt;/code&amp;gt; reiškiniai nėra tiesa, tada vykdomas &amp;lt;code&amp;gt;else&amp;lt;/code&amp;gt; blokas. Pavyzdžiui:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
a = 0&lt;br /&gt;
while a &amp;lt; 10:&lt;br /&gt;
    a = a + 1&lt;br /&gt;
    if a &amp;gt; 5:&lt;br /&gt;
        print(a, &amp;quot;&amp;gt;&amp;quot;, 5)&lt;br /&gt;
    elif a &amp;lt;= 3:&lt;br /&gt;
        print(a, &amp;quot;&amp;lt;=&amp;quot;, 3)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Nei vienas iš testų nėra teisingas&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ir išvestis:&lt;br /&gt;
&lt;br /&gt;
 1 &amp;lt;= 3&lt;br /&gt;
 2 &amp;lt;= 3&lt;br /&gt;
 3 &amp;lt;= 3&lt;br /&gt;
 Nei vienas iš testų nėra teisingas&lt;br /&gt;
 Nei vienas iš testų nėra teisingas&lt;br /&gt;
 6 &amp;gt; 5&lt;br /&gt;
 7 &amp;gt; 5&lt;br /&gt;
 8 &amp;gt; 5&lt;br /&gt;
 9 &amp;gt; 5&lt;br /&gt;
 10 &amp;gt; 5&lt;br /&gt;
&lt;br /&gt;
Gali pastebėti, kad &amp;lt;code&amp;gt;elif a &amp;lt;= 3&amp;lt;/code&amp;gt; dalis yra tikrinama tik tada, jei &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; reiškinio reikšmė nėra tiesa. Galima rašyti daugiau nei vieną &amp;lt;code&amp;gt;elif&amp;lt;/code&amp;gt; reiškinį, tokiu būdu leidžiant tikrinti kelias sąlygas viename &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; sakinyje.&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 parodo, kaip galima naudoti == operatorių&lt;br /&gt;
# naudojant numerius&lt;br /&gt;
print(5 == 6)&lt;br /&gt;
# naudojant kintamuosius&lt;br /&gt;
x = 5&lt;br /&gt;
y = 8&lt;br /&gt;
print(x == y)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ir išvestis&lt;br /&gt;
&lt;br /&gt;
 False&lt;br /&gt;
 False&lt;br /&gt;
&lt;br /&gt;
'''daugiau_maziau.py'''&amp;lt;!--\label{firsthighlow}--&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Žaidžia spėlionių žaidimą daugiau mažiau&lt;br /&gt;
&lt;br /&gt;
# Iš tiesų, čia turėtų būti naudojami pusiau atsitiktiniai skaičiai,&lt;br /&gt;
# pavyzdžiui paskutinis laiko skaitmuo, ar kažkas panašaus. Bet tai&lt;br /&gt;
# palauks iki vėlesnės dalies. (Papildoma užduotis: po Modulių dalies, pakeisk šį kodą,&lt;br /&gt;
# kad būtų naudojami atsitiktiniai skaičiai)&lt;br /&gt;
skaicius = 7&lt;br /&gt;
spejimas = -1&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Atspėk skaičių!&amp;quot;)&lt;br /&gt;
while spejimas != skaicius:&lt;br /&gt;
    spejimas = int(input(&amp;quot;Ar tai yra... &amp;quot;))&lt;br /&gt;
&lt;br /&gt;
    if spejimas == skaicius:&lt;br /&gt;
        print(&amp;quot;Valio! Atspėjai teisingai!&amp;quot;)&lt;br /&gt;
    elif spejimas &amp;lt; skaicius:&lt;br /&gt;
        print(&amp;quot;Skaičius yra didesnis...&amp;quot;)&lt;br /&gt;
    elif spejimas &amp;gt; skaicius:&lt;br /&gt;
        print(&amp;quot;Skaičius yra ne toks didelis.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pavyzdinis vykdymas:&lt;br /&gt;
&lt;br /&gt;
 Atspėk skaičių!&lt;br /&gt;
 Ar tai yra... '''2'''&lt;br /&gt;
 Skaičius yra didesnis...&lt;br /&gt;
 Ar tai yra... '''5'''&lt;br /&gt;
 Skaičius yra didesnis...&lt;br /&gt;
 Ar tai yra... '''10'''&lt;br /&gt;
 Skaičius yra ne toks didelis.&lt;br /&gt;
 Ar tai yra... '''7'''&lt;br /&gt;
 Valio! Atspėjai teisingai!&lt;br /&gt;
&lt;br /&gt;
'''lyginis.py'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Prašo įvesti skaičių.&lt;br /&gt;
# Išveda, ar skaičius yra lyginis, ar ne&lt;br /&gt;
 &lt;br /&gt;
skaicius = float(input(&amp;quot;Pasakyk man skaičių: &amp;quot;))&lt;br /&gt;
if skaicius % 2 == 0:&lt;br /&gt;
    print(int(skaicius), &amp;quot;yra lyginis.&amp;quot;)&lt;br /&gt;
elif skaicius % 2 == 1:&lt;br /&gt;
    print(int(skaicius), &amp;quot;yra nelyginis.&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(skaicius, &amp;quot;yra labai keistas.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pavyzdiniai vykdymai:&lt;br /&gt;
&lt;br /&gt;
 Pasakyk man skaičių: '''3'''&lt;br /&gt;
 3 yra nelyginis.&lt;br /&gt;
&lt;br /&gt;
 Pasakyk man skaičių: '''2'''&lt;br /&gt;
 2 yra lyginis.&lt;br /&gt;
&lt;br /&gt;
 Pasakyk man skaičių: '''3.4895'''&lt;br /&gt;
 3.4895 yra labai keistas.&lt;br /&gt;
&lt;br /&gt;
'''vidurkis1.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Prašo įvesti skaičių iki tol, kol įvedamas 0&lt;br /&gt;
# Išveda skaičių vidurkį&lt;br /&gt;
&lt;br /&gt;
kiekis = 0&lt;br /&gt;
suma = 0.0&lt;br /&gt;
skaicius = 1 # nurodomas tam, kad nebūtų iškart išeinama iš ciklo.&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Įvesk 0, kad sustabdytum ciklą&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
while skaicius != 0:&lt;br /&gt;
    skaicius = float(input(&amp;quot;Įvesk skaičių: &amp;quot;))&lt;br /&gt;
    if skaicius != 0:&lt;br /&gt;
        kiekis = kiekis + 1&lt;br /&gt;
        suma = suma + skaicius &lt;br /&gt;
    if skaicius == 0:&lt;br /&gt;
        print(&amp;quot;Skaičių vidurkis yra:&amp;quot;, suma / kiekis)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pavyzdiniai vykdymai:&lt;br /&gt;
&lt;br /&gt;
 Įvesk 0, kad sustabdytum ciklą&lt;br /&gt;
 Įvesk skaičių: '''3'''&lt;br /&gt;
 Įvesk skaičių: '''5'''&lt;br /&gt;
 Įvesk skaičių: '''0'''&lt;br /&gt;
 Skaičių vidurkis yra: 4.0&lt;br /&gt;
&lt;br /&gt;
 Įvesk 0, kad sustabdytum ciklą&lt;br /&gt;
 Įvesk skaičių: '''1'''&lt;br /&gt;
 Įvesk skaičių: '''4'''&lt;br /&gt;
 Įvesk skaičių: '''3'''&lt;br /&gt;
 Įvesk skaičių: '''0'''&lt;br /&gt;
 Skaičių vidurkis yra: 2.66666666667&lt;br /&gt;
&lt;br /&gt;
'''vidurkis2.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Prašo įvesti skaičių iki tol, kol bus įvestas tam tikras kiekis skaičių&lt;br /&gt;
# Išveda skaičių vidurkį.&lt;br /&gt;
&lt;br /&gt;
# Gali pastebėti, kad naudojame sveikąjį skaičių sekti, kiek numerių&lt;br /&gt;
# buvo įvesta, bet slankiojo kablelio skaičių, kiekvienam įvestam&lt;br /&gt;
# skaičiui sekti&lt;br /&gt;
suma = 0.0&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Ši programa paprašys įvesti kelis skaičius ir suskaičiuos jų vidurkį&amp;quot;)&lt;br /&gt;
kiekis = int(input(&amp;quot;Kelių skaičių vidurkį norėtum suskaičiuoti: &amp;quot;))&lt;br /&gt;
esamasis_kiekis = 0&lt;br /&gt;
&lt;br /&gt;
while esamasis_kiekis &amp;lt; kiekis:&lt;br /&gt;
    esamasis_kiekis = esamasis_kiekis + 1&lt;br /&gt;
    print(&amp;quot;Skaičius&amp;quot;, esamasis_kiekis)&lt;br /&gt;
    skaicius = float(input(&amp;quot;Įvesk skaičių: &amp;quot;))&lt;br /&gt;
    suma = suma + skaicius &lt;br /&gt;
    &lt;br /&gt;
print(&amp;quot;Skaičių vidurkis yra:&amp;quot;, suma / kiekis)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pavyzdiniai vykdymai:&lt;br /&gt;
&lt;br /&gt;
 Ši programa paprašys įvesti kelis skaičius ir suskaičiuos jų vidurkį&lt;br /&gt;
 Kelių skaičių vidurkį norėtum suskaičiuoti: '''2'''&lt;br /&gt;
 Skaičius 1&lt;br /&gt;
 Įvesk skaičių: '''3'''&lt;br /&gt;
 Skaičius 2&lt;br /&gt;
 Įvesk skaičių: '''5'''&lt;br /&gt;
 Skaičių vidurkis yra: 4.0&lt;br /&gt;
&lt;br /&gt;
 Ši programa paprašys įvesti kelis skaičius ir suskaičiuos jų vidurkį&lt;br /&gt;
 Kelių skaičių vidurkį norėtum suskaičiuoti: '''3'''&lt;br /&gt;
 Skaičius 1&lt;br /&gt;
 Įvesk skaičių: '''1'''&lt;br /&gt;
 Skaičius 2&lt;br /&gt;
 Įvesk skaičių: '''4'''&lt;br /&gt;
 Skaičius 3&lt;br /&gt;
 Įvesk skaičių: '''3'''&lt;br /&gt;
 Skaičių vidurkis yra: 2.66666666667&lt;br /&gt;
&lt;br /&gt;
=== Pratimai ===&lt;br /&gt;
Parašyk programą, kuri prašo naudotojo įvesti savo vardą. Jei jis įveda tavo vardą, išvesk „Tai puikus vardas“. Jei jie įveda &amp;quot;Jonas Jonaitis“ arba „Petras Petraitis“, išvesk kokį nors juokingą tekstą. Kitu atveju, išvesk „Tavo vardas yra labai gražus“.&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;Tavo vardas: &amp;quot;)&lt;br /&gt;
if vardas == 'Lukas':&lt;br /&gt;
    print(&amp;quot;Tai puikus vardas.&amp;quot;)&lt;br /&gt;
elif vardas == 'Jonas Jonaitis':&lt;br /&gt;
    print(&amp;quot;... juokingas tekstas apie Joną.&amp;quot;)&lt;br /&gt;
elif vardas == 'Petras Petraitis':&lt;br /&gt;
    print(&amp;quot;... juokingas tekstas apie Petrą.&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Tavo vardas yra labai gražus.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Pakeisk aukščiau esančią „daugiau_maziau.py“ programą, kad ji papildomai skaičiuotų, kiek kartų naudotojas įvedė neteisingą skaičių. Jei taip nutiko daugiau, nei tris kartus, programos pabaigoje išvesk „Tai buvo sudėtinga.“, o kitu atveju - „Gerai padirbėjai!“&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;
skaicius = 7&lt;br /&gt;
spejimas = -1&lt;br /&gt;
kiekis = 0&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Atspėk skaičių!&amp;quot;)&lt;br /&gt;
while spejimas != skaicius:&lt;br /&gt;
    spejimas = int(input(&amp;quot;Ar tai yra... &amp;quot;))&lt;br /&gt;
    kiekis = kiekis + 1&lt;br /&gt;
    if spejimas == skaicius:&lt;br /&gt;
        print(&amp;quot;Valio! Atspėjai teisingai!&amp;quot;)&lt;br /&gt;
    elif spejimas &amp;lt; skaicius:&lt;br /&gt;
        print(&amp;quot;Skaičius yra didesnis...&amp;quot;)&lt;br /&gt;
    elif spejimas &amp;gt; skaicius:&lt;br /&gt;
        print(&amp;quot;Skaičius yra ne toks didelis.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
if kiekis &amp;gt; 3:&lt;br /&gt;
    print(&amp;quot;Tai buvo sudėtinga.&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Gerai padirbėjai!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Parašyk programą, kuri prašo įvesti du skaičius. Jei skaičių suma yra didesnė nei 100, išvesk „Tai yra didelis skaičius“.&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;
skaicius1 = float(input(&amp;quot;Pirmas skaičius: &amp;quot;))&lt;br /&gt;
skaicius2 = float(input(&amp;quot;Antras skaičius: &amp;quot;))&lt;br /&gt;
if skaicius1 + skaicius2 &amp;gt; 100:&lt;br /&gt;
    print(&amp;quot;Skaičių suma yra didelis skaičius.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Suskaičiuoti iki 10 |next=Derinimas}}&lt;/div&gt;</summary>
		<author><name>Juratevalat</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Suskai%C4%8Diuoti_iki_10&amp;diff=3825</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=3825"/>
		<updated>2022-02-01T15:25:12Z</updated>

		<summary type="html">&lt;p&gt;Juratevalat: /* Fibonačio seka */&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; - lietuviškas atitikmuo būtų ciklas 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>Juratevalat</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Suskai%C4%8Diuoti_iki_10&amp;diff=3824</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=3824"/>
		<updated>2022-02-01T15:17:39Z</updated>

		<summary type="html">&lt;p&gt;Juratevalat: /* 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; - lietuviškas atitikmuo būtų ciklas 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;
                       # 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;pabaiga=&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;
&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>Juratevalat</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Kas_%C4%8Dia_eina%3F&amp;diff=3823</id>
		<title>Python Vadovėlis/Kas čia eina?</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Kas_%C4%8Dia_eina%3F&amp;diff=3823"/>
		<updated>2022-02-01T14:42:06Z</updated>

		<summary type="html">&lt;p&gt;Juratevalat: /* Priskyrimai */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Įvestis ir kintamieji ===&lt;br /&gt;
Jaučiu, kad atėjo laikas tikrai sudėtingai programai. Štai ji:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Stop!&amp;quot;)&lt;br /&gt;
vartotojo_įvestis = input(&amp;quot;Kas čia eina? &amp;quot;)&lt;br /&gt;
print(&amp;quot;Gali praeiti,&amp;quot;,  vartotojo_įvestis )&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kai '''aš''' paleidau programą, štai ką '''mano''' ekranas parodė:&lt;br /&gt;
&lt;br /&gt;
 Stop!&lt;br /&gt;
 Kas čia eina? '''Jonas'''&lt;br /&gt;
 Gali praeiti, Jonas&lt;br /&gt;
&lt;br /&gt;
''Pastaba: Jei paleisi kodą spausdamas &amp;quot;F5&amp;quot;, python shell išves tik tiek:''&lt;br /&gt;
&lt;br /&gt;
 Stop!&lt;br /&gt;
 Kas čia eina?&lt;br /&gt;
&lt;br /&gt;
''Tu turi įvesti savo vardą į python shell ir tada paspausti enter norėdama/s pamatyt likusį tekstą.''&lt;br /&gt;
&lt;br /&gt;
Žinoma, kai tu paleisi programą, tavo ekranas atrodys kitaip dėl &amp;lt;code&amp;gt;input()&amp;lt;/code&amp;gt; užklausos.&lt;br /&gt;
Kai paleidai programą (juk paleidai, tiesa?), tu turėjai surinkti savo vardą ir tada paspausti Enter.&lt;br /&gt;
Programa atspausdino dalį teksto ir tavo vardą. Taip atrodo ''įvesties'' pavyzdys.&lt;br /&gt;
Programa pasiekia tam tikrą kodo tašką ir laukia vartotojo įvesties, kad duomenis galėtų panaudoti tolimesniuose procesuose.&lt;br /&gt;
&lt;br /&gt;
Žinoma, gauti informaciją iš vartotojo pasaulio nieko verta, jei tos informacijos nėra kur padėti. Ir šioje vietoje atsiranda kintamieji.  &lt;br /&gt;
&lt;br /&gt;
Pavyzdinėje programoje &amp;lt;code&amp;gt;vartotojo_įvestis&amp;lt;/code&amp;gt; yra ''kintamasis''. Kintamieji yra kaip dėžės, į kurias galima įdėti norimas informacijos dalis.  &lt;br /&gt;
&lt;br /&gt;
Štai programa, parodanti kintamųjų pavyzdžius:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
a = 123.4&lt;br /&gt;
b23 = 'Šlamštas'&lt;br /&gt;
vardas = &amp;quot;Jonas&amp;quot;&lt;br /&gt;
b = 432&lt;br /&gt;
c = a + b&lt;br /&gt;
print(&amp;quot;a + b yra&amp;quot;, c)&lt;br /&gt;
print(&amp;quot;vardas yra&amp;quot;, vardas)&lt;br /&gt;
print(&amp;quot;Rūšiuotos dalys, Po vidurnakčio ar&amp;quot;, b23)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Štai kokia išvestis:&lt;br /&gt;
&lt;br /&gt;
 a + b yra 555.4&lt;br /&gt;
 vardas yra Jonas&lt;br /&gt;
 Rūšiuotos dalys, Po vidurnakčio ar Šlamštas&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kintamieji laiko duomenis. Viršuje aprašytoje programoje kintamieji yra &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;b23&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;vardas&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;c&amp;lt;/code&amp;gt;. Pagrindiniai du kintamųjų tipai yra ''tekstas'' ir ''skaičius''. Tekstas yra raidžių, skaičių ir kitų simbolių seka. Šiame pavyzdyje &amp;lt;code&amp;gt;b23&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;vardas&amp;lt;/code&amp;gt; yra tekstinio tipo kintamieji. &amp;lt;code&amp;gt;Šlamštas&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Jonas&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;a + b yra&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;vardas yra&amp;lt;/code&amp;gt;, ir &amp;lt;code&amp;gt;Rūšiuotos dalys, Po vidurnakčio ar&amp;lt;/code&amp;gt; šioje programoje yra tiesiog tekstinės reikšmės. Paprastas tekstas yra apsuptas kabučių &amp;lt;code&amp;gt;&amp;quot;&amp;lt;/code&amp;gt; arba &amp;lt;code&amp;gt;'&amp;lt;/code&amp;gt;.  &lt;br /&gt;
&lt;br /&gt;
Kitas kintamojo tipas yra skaičius. Atkreipkite dėmesį, kad kintamieji, kurie naudojami saugoti reikšmes, nenaudoja kabučių (&amp;quot; ir '). Jei norite naudoti realias ''reikšmes'', privalote naudoti kabutes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
reikšmė1 == Oho&lt;br /&gt;
reikšmė2 == &amp;quot;Oho&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Abu pavyzdžiai atrodo vienodai, bet pirmu atveju Python tikrins ar reikšmė, patalpinta kintamajame &amp;lt;code&amp;gt;reikšmė1&amp;lt;/code&amp;gt;, yra tokia pati kaip ''kintamojo'' &amp;lt;code&amp;gt;Oho&amp;lt;/code&amp;gt;. Antrame pavyzdyje Python tikrins ar tekstas (konkrečios raidės &amp;lt;code&amp;gt;O&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;h&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;o&amp;lt;/code&amp;gt;) yra tokios pat kaip ir &amp;lt;code&amp;gt;reikšmė2&amp;lt;/code&amp;gt; (toliau daugiau paaiškinsiu apie tekstą ir &amp;lt;code&amp;gt;==&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
=== Priskyrimai ===&lt;br /&gt;
&lt;br /&gt;
Gerai, dabar mes turime dėžutes, pavadintas kintamaisiais, taip pat informaciją, kuri gali būti kintamajame. Kompiuteris pamatys tokią eilutę &amp;lt;code&amp;gt;vardas = &amp;quot;Jonas&amp;quot;&amp;lt;/code&amp;gt; ir perskaitys ją kaip &amp;quot;Padėk tekstą &amp;lt;code&amp;gt;Jonas&amp;lt;/code&amp;gt; į dėžę (ar kintamąjį) &amp;lt;code&amp;gt;vardas&amp;lt;/code&amp;gt;&amp;quot;. Vėliau, pamatęs sakinį &amp;lt;code&amp;gt;c = a + b&amp;lt;/code&amp;gt; jį perskaitys kaip &amp;quot;padėt sumą &amp;lt;code&amp;gt;a + b&amp;lt;/code&amp;gt; arba &amp;lt;code&amp;gt;123.4 + 432&amp;lt;/code&amp;gt;, kas lygu &amp;lt;code&amp;gt;555.4&amp;lt;/code&amp;gt;, į &amp;lt;code&amp;gt;c&amp;lt;/code&amp;gt;&amp;quot;. Dešinė sakinio pusė ''konvertuosis'' ir rezultatas bus padėtas į kintamajį kairėje pusėje (&amp;lt;code&amp;gt;c&amp;lt;/code&amp;gt;). Tai yra vadinama ''priskyrimu''. Turėtume nemaišyti priskyrimo ir matematinio lygybės ženklo (&amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;). Ką reiškia &amp;lt;code&amp;gt;==&amp;lt;/code&amp;gt; aptarsime vėliau.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
O štai ir kitas kintamųjų naudojimo pavyzdys:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
a = 1&lt;br /&gt;
print(a)&lt;br /&gt;
a = a + 1&lt;br /&gt;
print(a)&lt;br /&gt;
a = a * 2&lt;br /&gt;
print(a)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ir žinoma štai tokį rezultatą gausime:&lt;br /&gt;
&lt;br /&gt;
 1&lt;br /&gt;
 2&lt;br /&gt;
 4&lt;br /&gt;
&lt;br /&gt;
Net jei kintamieji yra abiejose lygybės pusėse (pavyzdžiui šlamštas = šlamštas), kompiuteris vis tiek perskaitys taip: &amp;quot;Pirmiausia surask informaciją, kuri patalpinta ir tada surask, kur ją padėti&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dar viena programa prieš man pabangiant šį skyrių:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
skaičius = float(input(&amp;quot;Įvesk skaičių: &amp;quot;))&lt;br /&gt;
sveikasSkaičius = int(input(&amp;quot;Įvesk sveiką skaičių: &amp;quot;))&lt;br /&gt;
tekstas = input(&amp;quot;Įvesk tekstą: &amp;quot;)&lt;br /&gt;
print(&amp;quot;skaičius =&amp;quot;, skaičius)&lt;br /&gt;
print(&amp;quot;skaičius yra&amp;quot;, type(skaičius))&lt;br /&gt;
print(&amp;quot;skaičius * 2 =&amp;quot;, skaičius * 2)&lt;br /&gt;
print(&amp;quot;sveikas skaičius =&amp;quot;, sveikasSkaičius)&lt;br /&gt;
print(&amp;quot;sveikas skaičius yra&amp;quot;, type(sveikasSkaičius))&lt;br /&gt;
print(&amp;quot;sveikasSkaičius * 2 =&amp;quot;, sveikasSkaičius * 2)&lt;br /&gt;
print(&amp;quot;tekstas =&amp;quot;, tekstas)&lt;br /&gt;
print(&amp;quot;tekstas yra&amp;quot;, type(tekstas))&lt;br /&gt;
print(&amp;quot;tekstas * 2 =&amp;quot;, tekstas * 2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rezultatas:&lt;br /&gt;
&lt;br /&gt;
 Įvesk skaičių: '''12.34'''&lt;br /&gt;
 Įvesk sveiką skaičių: '''-3'''&lt;br /&gt;
 Įvesk tekstą: '''Labas'''&lt;br /&gt;
 skaičius = 12.34&lt;br /&gt;
 skaičius yra &amp;lt;class 'float'&amp;gt;&lt;br /&gt;
 skaičius * 2 = 24.68&lt;br /&gt;
 sveikas skaičius = -3&lt;br /&gt;
 sveikas skaičius yra &amp;lt;class 'int'&amp;gt;&lt;br /&gt;
 sveikasSkaičius * 2 = -6&lt;br /&gt;
 tekstas = Labas&lt;br /&gt;
 tekstas yra &amp;lt;class 'str'&amp;gt;&lt;br /&gt;
 tekstas * 2 = LabasLabas&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Atkreipk dėmesį, kad kintamasis &amp;lt;code&amp;gt;skaičius&amp;lt;/code&amp;gt; buvo sukurtas su &amp;lt;code&amp;gt;float(input())&amp;lt;/code&amp;gt;, išsaugos, o vėliau atspausdins tokį skaičių, koks buvo įvestas – su kableliu. Kintamasis &amp;lt;code&amp;gt;sveikasSkaičius&amp;lt;/code&amp;gt;, kuris buvo sukurtas su &amp;lt;code&amp;gt;int(input())&amp;lt;/code&amp;gt;, grąžina sveiką skaičių – reikšmę be kablelio. Tuo tarpu &amp;lt;code&amp;gt;tekstas&amp;lt;/code&amp;gt;, kuris buvo sukurtas su &amp;lt;code&amp;gt;input()&amp;lt;/code&amp;gt;, grąžino tekstinę eilutę (gali būti aprašoma ir &amp;lt;code&amp;gt;str(input())&amp;lt;/code&amp;gt;). Jei tu nori, kad vartotojas įvestų skaičių su kableliu, naudok &amp;lt;code&amp;gt;float(input())&amp;lt;/code&amp;gt; kintamojo tipą. Jei nori, kad vartotojas įvestų sveiką skaičių, naudok &amp;lt;code&amp;gt;int(input())&amp;lt;/code&amp;gt; (jeigu vartotojas įves skaičių su kabliu – dalį po kabelio programa tiesiog ignoruos), bet jei nori teksto – naudok &amp;lt;code&amp;gt;input()&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Antra pusė programos naudoja &amp;lt;code&amp;gt;type()&amp;lt;/code&amp;gt; funkciją, kuri nusako, kokio tipo kintamasis yra. Skaičius yra &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; arba &amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt; tipo. Tai yra angliškų žodžių ''integer'' (sveikas skaičius) ir ''floating point'' (slankusis kablelis, naudojamas daugiausiai skaičiams su kableliu) trumpiniai. Tekstinė eilutė yra &amp;lt;code&amp;gt;str&amp;lt;/code&amp;gt;, trumpinys ''string'' (tekstinė eilutė). Sveiki skaičiai ir slankusis kablelis gali būti naudojami matematinėms funkcijoms, tekstas – ne. Atkreipk dėmesį, kai Python'as daugina skaičių iš sveiko skaičiaus gaunamas rezultatas, kurio ir galima tikėtis, tačiau jei tekstas padauginamas iš sveiko skaičiaus – sukuriamos kelios teksto kopijos (pavyzdžiui, &amp;lt;code&amp;gt;tekstas * 2 = LabasLabas&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Tos pačios operacijos su teksto tipu daro kitokius dalykus nei su skaičiais. Taip pat, kai kurios operacijos veikia tik su skaičiais ir grąžina klaidą, jei bus bandoma panaudoti tesktą. Štai keletas interaktyvių pavyzdžių:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; print(&amp;quot;Čia&amp;quot; + &amp;quot; &amp;quot; + &amp;quot;yra&amp;quot; + &amp;quot; junginys.&amp;quot;)&lt;br /&gt;
Čia yra junginys.&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; print(&amp;quot;Ha, &amp;quot; * 5)&lt;br /&gt;
Ha, Ha, Ha, Ha, Ha, &lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; print(&amp;quot;Ha, &amp;quot; * 5 + &amp;quot;ha!&amp;quot;)&lt;br /&gt;
Ha, Ha, Ha, Ha, Ha, ha!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; print(3 - 1)&lt;br /&gt;
2&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; print(&amp;quot;3&amp;quot; - &amp;quot;1&amp;quot;)&lt;br /&gt;
Traceback (most recent call last):&lt;br /&gt;
  File &amp;quot;&amp;lt;string&amp;gt;&amp;quot;, line 1, in &amp;lt;module&amp;gt;&lt;br /&gt;
TypeError: unsupported operand type(s) for -: 'str' and 'str'&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Štai sąrašas kelių operacijų su tekstu:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Operacija&lt;br /&gt;
!Symbolis &lt;br /&gt;
!Pavyzdys&lt;br /&gt;
|-&lt;br /&gt;
|Pakartojimas&lt;br /&gt;
|&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; &lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;quot;i&amp;quot; * 5 == &amp;quot;iiiii&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Sujungimas&lt;br /&gt;
|&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; &lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;quot;Hello, &amp;quot; + &amp;quot;World!&amp;quot; == &amp;quot;Hello, World!&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Pavyzdžiai ===&lt;br /&gt;
&lt;br /&gt;
'''Laikas.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# ši programa apskaičiuoja laiko priklausomybę nuo greičio ir atstumo&lt;br /&gt;
print(&amp;quot;Įvesk greitį ir atstumą&amp;quot;)&lt;br /&gt;
greitis = float(input(&amp;quot;Greitis: &amp;quot;))&lt;br /&gt;
atstumas = float(input(&amp;quot;Atstumas: &amp;quot;))&lt;br /&gt;
laikas = (atstumas / greitis)&lt;br /&gt;
print(&amp;quot;Laikas:&amp;quot;, laikas)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rezultatas:&lt;br /&gt;
&lt;br /&gt;
 Įvesk greitį ir atstumą&lt;br /&gt;
 Greitis: '''5'''&lt;br /&gt;
 Atstumas: '''10'''&lt;br /&gt;
 Laikas: 2.0&lt;br /&gt;
&lt;br /&gt;
 Įvesk greitį ir atstumą&lt;br /&gt;
 Greitis: '''3.52'''&lt;br /&gt;
 Atstumas: '''45.6'''&lt;br /&gt;
 Laikas: 12.9545454545&lt;br /&gt;
&lt;br /&gt;
'''Plotas.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Ši programa apskaičiuoja stačiakampio perimetrą ir plotą &lt;br /&gt;
print(&amp;quot;Įveskite stačiakampio informaciją&amp;quot;)&lt;br /&gt;
ilgis = float(input(&amp;quot;Ilgis: &amp;quot;))&lt;br /&gt;
plotis = float(input(&amp;quot;Plotis: &amp;quot;))&lt;br /&gt;
perimetras = (2 * ilgis + 2 * plotis) &lt;br /&gt;
print(&amp;quot;Plotas:&amp;quot;, ilgis * plotis)&lt;br /&gt;
print(&amp;quot;Perimetras:&amp;quot;, perimetras)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pavyzdžio rezultatas:&lt;br /&gt;
&lt;br /&gt;
 Įveskite stačiakampio informaciją&lt;br /&gt;
 Ilgis: '''4'''&lt;br /&gt;
 Plotis: '''3'''&lt;br /&gt;
 Plotas: 12.0&lt;br /&gt;
 Perimetras: 14.0&lt;br /&gt;
&lt;br /&gt;
 Įveskite stačiakampio informaciją&lt;br /&gt;
 Ilgis: '''2.53'''&lt;br /&gt;
 Plotis: '''5.2'''&lt;br /&gt;
 Plotas: 13.156&lt;br /&gt;
 Perimetras: 15.46&lt;br /&gt;
&lt;br /&gt;
'''temperatura.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Ši programa konvertuoja temperatūra iš Farenheitų į Celsijų&lt;br /&gt;
far_temp = float(input(&amp;quot;Temperatūra Farenheitais: &amp;quot;))&lt;br /&gt;
cels_temp = (far_temp - 32.0) * (5.0 / 9.0)&lt;br /&gt;
print(&amp;quot;Temperatūra Celsijaus laipsniais:&amp;quot;, cels_temp )&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pavyzdžio rezultatas:&lt;br /&gt;
&lt;br /&gt;
 Temperatūra Farenheitais: '''32'''&lt;br /&gt;
 Temperatūra Celsijaus laipsniais: 0.0&lt;br /&gt;
&lt;br /&gt;
 Temperatūra Farenheitais: '''-40'''&lt;br /&gt;
 Temperatūra Celsijaus laipsniais: -40.0&lt;br /&gt;
&lt;br /&gt;
 Temperatūra Farenheitais: '''212'''&lt;br /&gt;
 Temperatūra Celsijaus laipsniais: 100.0&lt;br /&gt;
&lt;br /&gt;
 Temperatūra Farenheitais: '''98.6'''&lt;br /&gt;
 Temperatūra Celsijaus laipsniais: 37.0&lt;br /&gt;
&lt;br /&gt;
=== Užduotis ===&lt;br /&gt;
Parašyti programą, kuri priima 2 tekstines reikšmes ir 2 skaičius iš vartotojo įvesties, sujungia tekstus be tarpų ir atvaizduoja gautą rezultatą, o tada sudaugina du skaičius ir atvaizduoja naujoje eilutėje.&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;
tekstas1 = input('Tekstas 1: ')&lt;br /&gt;
tekstas2 = input('Tekstas 2: ')&lt;br /&gt;
skaičius1 = float(input('Skaičius 1: '))&lt;br /&gt;
skaičius2 = float(input('Skaičius 2: '))&lt;br /&gt;
print(tekstas1 + tekstas2)&lt;br /&gt;
print(skaičius1 * skaičius2)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Labas, Pasauli |next=Suskaičiuoti iki 10}}&lt;/div&gt;</summary>
		<author><name>Juratevalat</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Kas_%C4%8Dia_eina%3F&amp;diff=3822</id>
		<title>Python Vadovėlis/Kas čia eina?</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Kas_%C4%8Dia_eina%3F&amp;diff=3822"/>
		<updated>2022-02-01T14:33:10Z</updated>

		<summary type="html">&lt;p&gt;Juratevalat: /* Įvestis ir kintamieji */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Įvestis ir kintamieji ===&lt;br /&gt;
Jaučiu, kad atėjo laikas tikrai sudėtingai programai. Štai ji:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Stop!&amp;quot;)&lt;br /&gt;
vartotojo_įvestis = input(&amp;quot;Kas čia eina? &amp;quot;)&lt;br /&gt;
print(&amp;quot;Gali praeiti,&amp;quot;,  vartotojo_įvestis )&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kai '''aš''' paleidau programą, štai ką '''mano''' ekranas parodė:&lt;br /&gt;
&lt;br /&gt;
 Stop!&lt;br /&gt;
 Kas čia eina? '''Jonas'''&lt;br /&gt;
 Gali praeiti, Jonas&lt;br /&gt;
&lt;br /&gt;
''Pastaba: Jei paleisi kodą spausdamas &amp;quot;F5&amp;quot;, python shell išves tik tiek:''&lt;br /&gt;
&lt;br /&gt;
 Stop!&lt;br /&gt;
 Kas čia eina?&lt;br /&gt;
&lt;br /&gt;
''Tu turi įvesti savo vardą į python shell ir tada paspausti enter norėdama/s pamatyt likusį tekstą.''&lt;br /&gt;
&lt;br /&gt;
Žinoma, kai tu paleisi programą, tavo ekranas atrodys kitaip dėl &amp;lt;code&amp;gt;input()&amp;lt;/code&amp;gt; užklausos.&lt;br /&gt;
Kai paleidai programą (juk paleidai, tiesa?), tu turėjai surinkti savo vardą ir tada paspausti Enter.&lt;br /&gt;
Programa atspausdino dalį teksto ir tavo vardą. Taip atrodo ''įvesties'' pavyzdys.&lt;br /&gt;
Programa pasiekia tam tikrą kodo tašką ir laukia vartotojo įvesties, kad duomenis galėtų panaudoti tolimesniuose procesuose.&lt;br /&gt;
&lt;br /&gt;
Žinoma, gauti informaciją iš vartotojo pasaulio nieko verta, jei tos informacijos nėra kur padėti. Ir šioje vietoje atsiranda kintamieji.  &lt;br /&gt;
&lt;br /&gt;
Pavyzdinėje programoje &amp;lt;code&amp;gt;vartotojo_įvestis&amp;lt;/code&amp;gt; yra ''kintamasis''. Kintamieji yra kaip dėžės, į kurias galima įdėti norimas informacijos dalis.  &lt;br /&gt;
&lt;br /&gt;
Štai programa, parodanti kintamųjų pavyzdžius:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
a = 123.4&lt;br /&gt;
b23 = 'Šlamštas'&lt;br /&gt;
vardas = &amp;quot;Jonas&amp;quot;&lt;br /&gt;
b = 432&lt;br /&gt;
c = a + b&lt;br /&gt;
print(&amp;quot;a + b yra&amp;quot;, c)&lt;br /&gt;
print(&amp;quot;vardas yra&amp;quot;, vardas)&lt;br /&gt;
print(&amp;quot;Rūšiuotos dalys, Po vidurnakčio ar&amp;quot;, b23)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Štai kokia išvestis:&lt;br /&gt;
&lt;br /&gt;
 a + b yra 555.4&lt;br /&gt;
 vardas yra Jonas&lt;br /&gt;
 Rūšiuotos dalys, Po vidurnakčio ar Šlamštas&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kintamieji laiko duomenis. Viršuje aprašytoje programoje kintamieji yra &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;b23&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;vardas&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;c&amp;lt;/code&amp;gt;. Pagrindiniai du kintamųjų tipai yra ''tekstas'' ir ''skaičius''. Tekstas yra raidžių, skaičių ir kitų simbolių seka. Šiame pavyzdyje &amp;lt;code&amp;gt;b23&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;vardas&amp;lt;/code&amp;gt; yra tekstinio tipo kintamieji. &amp;lt;code&amp;gt;Šlamštas&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Jonas&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;a + b yra&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;vardas yra&amp;lt;/code&amp;gt;, ir &amp;lt;code&amp;gt;Rūšiuotos dalys, Po vidurnakčio ar&amp;lt;/code&amp;gt; šioje programoje yra tiesiog tekstinės reikšmės. Paprastas tekstas yra apsuptas kabučių &amp;lt;code&amp;gt;&amp;quot;&amp;lt;/code&amp;gt; arba &amp;lt;code&amp;gt;'&amp;lt;/code&amp;gt;.  &lt;br /&gt;
&lt;br /&gt;
Kitas kintamojo tipas yra skaičius. Atkreipkite dėmesį, kad kintamieji, kurie naudojami saugoti reikšmes, nenaudoja kabučių (&amp;quot; ir '). Jei norite naudoti realias ''reikšmes'', privalote naudoti kabutes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
reikšmė1 == Oho&lt;br /&gt;
reikšmė2 == &amp;quot;Oho&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Abu pavyzdžiai atrodo vienodai, bet pirmu atveju Python tikrins ar reikšmė, patalpinta kintamajame &amp;lt;code&amp;gt;reikšmė1&amp;lt;/code&amp;gt;, yra tokia pati kaip ''kintamojo'' &amp;lt;code&amp;gt;Oho&amp;lt;/code&amp;gt;. Antrame pavyzdyje Python tikrins ar tekstas (konkrečios raidės &amp;lt;code&amp;gt;O&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;h&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;o&amp;lt;/code&amp;gt;) yra tokios pat kaip ir &amp;lt;code&amp;gt;reikšmė2&amp;lt;/code&amp;gt; (toliau daugiau paaiškinsiu apie tekstą ir &amp;lt;code&amp;gt;==&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
=== Priskyrimai ===&lt;br /&gt;
&lt;br /&gt;
Gerai, dabar mes turime dėžutes, pavadintas kintamaisiais, taip pat informaciją, kuri gali būti kintamajame. Kompiuteris pamatys tokią eilutę &amp;lt;code&amp;gt;vardas = &amp;quot;Jonas&amp;quot;&amp;lt;/code&amp;gt; ir perskaitys ją kaip &amp;quot;Padėk tekstą &amp;lt;code&amp;gt;Jonas&amp;lt;/code&amp;gt; į dėžę (ar kintamąjį) &amp;lt;code&amp;gt;vardas&amp;lt;/code&amp;gt;&amp;quot;. Vėliau, pamatęs sakinį &amp;lt;code&amp;gt;c = a + b&amp;lt;/code&amp;gt; jį perskaitys kaip &amp;quot;padėt sumą &amp;lt;code&amp;gt;a + b&amp;lt;/code&amp;gt; arba &amp;lt;code&amp;gt;123.4 + 432&amp;lt;/code&amp;gt;, kas lygu &amp;lt;code&amp;gt;555.4&amp;lt;/code&amp;gt;, į &amp;lt;code&amp;gt;c&amp;lt;/code&amp;gt;&amp;quot;. Dešinė sakinio pusė ''konvertuosis'' ir rezultatas bus padėtas į kintamajį kairėje pusėje (&amp;lt;code&amp;gt;c&amp;lt;/code&amp;gt;). Tai yra vadinama ''priskyrimu''. Turėtume nemaišyti priskyrimo ir matematinio lygybės ženklo (&amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;). Ką reiškia &amp;lt;code&amp;gt;==&amp;lt;/code&amp;gt; aptarsime vėliau.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
O štai ir kitas kintamųjų naudojimo pavyzdys:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
a = 1&lt;br /&gt;
print(a)&lt;br /&gt;
a = a + 1&lt;br /&gt;
print(a)&lt;br /&gt;
a = a * 2&lt;br /&gt;
print(a)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ir žinoma štai tokį rezultatą gausime:&lt;br /&gt;
&lt;br /&gt;
 1&lt;br /&gt;
 2&lt;br /&gt;
 4&lt;br /&gt;
&lt;br /&gt;
Net jei kintamieji yra abiejose lygybės pusėse (pavyzdžiui šlamštas = šlamštas), kompiuteris vis tiek perskaitys taip: &amp;quot;Pirmiausia surask informaciją, kuri patalpinta ir tada surask, kur ją padėti&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dar viena programa prieš man pabangiant šį skyrių:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
skaičius = float(input(&amp;quot;Įvesk skaičių: &amp;quot;))&lt;br /&gt;
sveikasSkaičius = int(input(&amp;quot;Įvesk sveiką skaičių: &amp;quot;))&lt;br /&gt;
tekstas = input(&amp;quot;Įvesk tekstą: &amp;quot;)&lt;br /&gt;
print(&amp;quot;skaičius =&amp;quot;, skaičius)&lt;br /&gt;
print(&amp;quot;skaičius yra&amp;quot;, type(skaičius))&lt;br /&gt;
print(&amp;quot;skaičius * 2 =&amp;quot;, skaičius * 2)&lt;br /&gt;
print(&amp;quot;sveikas skaičius =&amp;quot;, sveikasSkaičius)&lt;br /&gt;
print(&amp;quot;sveikas skaičius yra&amp;quot;, type(sveikasSkaičius))&lt;br /&gt;
print(&amp;quot;sveikasSkaičius * 2 =&amp;quot;, sveikasSkaičius * 2)&lt;br /&gt;
print(&amp;quot;tekstas =&amp;quot;, tekstas)&lt;br /&gt;
print(&amp;quot;tekstas yra&amp;quot;, type(tekstas))&lt;br /&gt;
print(&amp;quot;tekstas * 2 =&amp;quot;, tekstas * 2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rezultatas:&lt;br /&gt;
&lt;br /&gt;
 Įvesk skaičių: '''12.34'''&lt;br /&gt;
 Įvesk sveiką skaičių: '''-3'''&lt;br /&gt;
 Įvesk tekstą: '''Labas'''&lt;br /&gt;
 skaičius = 12.34&lt;br /&gt;
 skaičius yra &amp;lt;class 'float'&amp;gt;&lt;br /&gt;
 skaičius * 2 = 24.68&lt;br /&gt;
 sveikas skaičius = -3&lt;br /&gt;
 sveikas skaičius yra &amp;lt;class 'int'&amp;gt;&lt;br /&gt;
 sveikasSkaičius * 2 = -6&lt;br /&gt;
 tekstas = Labas&lt;br /&gt;
 tekstas yra &amp;lt;class 'str'&amp;gt;&lt;br /&gt;
 tekstas * 2 = LabasLabas&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Atkreipk dėmesį, kad &amp;lt;code&amp;gt;skaičius&amp;lt;/code&amp;gt; buvo sukurtas su &amp;lt;code&amp;gt;float(input())&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;int(input())&amp;lt;/code&amp;gt; grąžina sveiką skaičių - reikšmę be kablelio, kai tuo tarpu &amp;lt;code&amp;gt;tekstas&amp;lt;/code&amp;gt; buvo sukurtas su &amp;lt;code&amp;gt;input()&amp;lt;/code&amp;gt; grąžino tekstinę eilutę (gali būti aprašoma ir &amp;lt;code&amp;gt;str(input())&amp;lt;/code&amp;gt;). Jei tu nori, kad vartotojas įvestų skaičių su kableliu, naudok &amp;lt;code&amp;gt;float(input())&amp;lt;/code&amp;gt; kintamojo tipą. Jei nori, kad vartotojas įvestų sveiką skaičių, naudok &amp;lt;code&amp;gt;int(input())&amp;lt;/code&amp;gt;, bet jei nori teksto - naudok &amp;lt;code&amp;gt;input()&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Antra pusė programos naudoja &amp;lt;code&amp;gt;type()&amp;lt;/code&amp;gt; funkciją, kuri nusako, kokio tipo kintamasis yra. Skaičius yra &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; arba &amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt; tipo. Tai yra angliškų žodžių ''integer'' (sveikas skaičius) ir ''floating point'' (slankusis kablelis, naudojamas daugiausiai skaičiams su kableliu) trumpiniai. Tekstinė eilutė yra &amp;lt;code&amp;gt;str&amp;lt;/code&amp;gt;, trumpinys ''string'' (tekstinė eilutė). Sveiki skaičiai ir slankusis kablelis gali būti naudojami matematinėms funkcijoms, tekstas - ne. Atkreipk dėmesį, kai Python'as daugina skaičių iš sveiko skaičiaus gaunamas rezultatas, kurio ir galima tikėtis, tačiau jei tekstas padauginamas iš sveiko skaičiaus - sukuriamos kelios teksto kopijos (pavyzdžiui, &amp;lt;code&amp;gt;tekstas * 2 = LabasLabas&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Operacijos su tekstu daro kitokius dalykus nei operacijos su skaičiaus. Taip pat, kai kurios operacijos veikia tik su skaičiais ir grąžina klaidą, jei bus bandoma panaudoti tesktą. Štai keletas interaktyvių pavyzdžių:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; print(&amp;quot;Čia&amp;quot; + &amp;quot; &amp;quot; + &amp;quot;yra&amp;quot; + &amp;quot; junginys.&amp;quot;)&lt;br /&gt;
Čia yra junginys.&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; print(&amp;quot;Ha, &amp;quot; * 5)&lt;br /&gt;
Ha, Ha, Ha, Ha, Ha, &lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; print(&amp;quot;Ha, &amp;quot; * 5 + &amp;quot;ha!&amp;quot;)&lt;br /&gt;
Ha, Ha, Ha, Ha, Ha, ha!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; print(3 - 1)&lt;br /&gt;
2&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; print(&amp;quot;3&amp;quot; - &amp;quot;1&amp;quot;)&lt;br /&gt;
Traceback (most recent call last):&lt;br /&gt;
  File &amp;quot;&amp;lt;string&amp;gt;&amp;quot;, line 1, in &amp;lt;module&amp;gt;&lt;br /&gt;
TypeError: unsupported operand type(s) for -: 'str' and 'str'&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Štai sąrašas kelių operacijų su tekstu:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Operation &lt;br /&gt;
!Symbol &lt;br /&gt;
!Example&lt;br /&gt;
|-&lt;br /&gt;
|Pakartojimas&lt;br /&gt;
|&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; &lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;quot;i&amp;quot; * 5 == &amp;quot;iiiii&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Sujungimas&lt;br /&gt;
|&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; &lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;quot;Hello, &amp;quot; + &amp;quot;World!&amp;quot; == &amp;quot;Hello, World!&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Pavyzdžiai ===&lt;br /&gt;
&lt;br /&gt;
'''Laikas.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# ši programa apskaičiuoja laiko priklausomybę nuo greičio ir atstumo&lt;br /&gt;
print(&amp;quot;Įvesk greitį ir atstumą&amp;quot;)&lt;br /&gt;
greitis = float(input(&amp;quot;Greitis: &amp;quot;))&lt;br /&gt;
atstumas = float(input(&amp;quot;Atstumas: &amp;quot;))&lt;br /&gt;
laikas = (atstumas / greitis)&lt;br /&gt;
print(&amp;quot;Laikas:&amp;quot;, laikas)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rezultatas:&lt;br /&gt;
&lt;br /&gt;
 Įvesk greitį ir atstumą&lt;br /&gt;
 Greitis: '''5'''&lt;br /&gt;
 Atstumas: '''10'''&lt;br /&gt;
 Laikas: 2.0&lt;br /&gt;
&lt;br /&gt;
 Įvesk greitį ir atstumą&lt;br /&gt;
 Greitis: '''3.52'''&lt;br /&gt;
 Atstumas: '''45.6'''&lt;br /&gt;
 Laikas: 12.9545454545&lt;br /&gt;
&lt;br /&gt;
'''Plotas.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Ši programa apskaičiuoja stačiakampio perimetrą ir plotą &lt;br /&gt;
print(&amp;quot;Įveskite stačiakampio informaciją&amp;quot;)&lt;br /&gt;
ilgis = float(input(&amp;quot;Ilgis: &amp;quot;))&lt;br /&gt;
plotis = float(input(&amp;quot;Plotis: &amp;quot;))&lt;br /&gt;
perimetras = (2 * ilgis + 2 * plotis) &lt;br /&gt;
print(&amp;quot;Plotas:&amp;quot;, ilgis * plotis)&lt;br /&gt;
print(&amp;quot;Perimetras:&amp;quot;, perimetras)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pavyzdžio rezultatas:&lt;br /&gt;
&lt;br /&gt;
 Įveskite stačiakampio informaciją&lt;br /&gt;
 Ilgis: '''4'''&lt;br /&gt;
 Plotis: '''3'''&lt;br /&gt;
 Plotas: 12.0&lt;br /&gt;
 Perimetras: 14.0&lt;br /&gt;
&lt;br /&gt;
 Įveskite stačiakampio informaciją&lt;br /&gt;
 Ilgis: '''2.53'''&lt;br /&gt;
 Plotis: '''5.2'''&lt;br /&gt;
 Plotas: 13.156&lt;br /&gt;
 Perimetras: 15.46&lt;br /&gt;
&lt;br /&gt;
'''temperatura.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Ši programa konvertuoja temperatūra iš Farenheitų į Celsijų&lt;br /&gt;
far_temp = float(input(&amp;quot;Temperatūra Farenheitais: &amp;quot;))&lt;br /&gt;
cels_temp = (far_temp - 32.0) * (5.0 / 9.0)&lt;br /&gt;
print(&amp;quot;Temperatūra Celsijaus laipsniais:&amp;quot;, cels_temp )&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pavyzdžio rezultatas:&lt;br /&gt;
&lt;br /&gt;
 Temperatūra Farenheitais: '''32'''&lt;br /&gt;
 Temperatūra Celsijaus laipsniais: 0.0&lt;br /&gt;
&lt;br /&gt;
 Temperatūra Farenheitais: '''-40'''&lt;br /&gt;
 Temperatūra Celsijaus laipsniais: -40.0&lt;br /&gt;
&lt;br /&gt;
 Temperatūra Farenheitais: '''212'''&lt;br /&gt;
 Temperatūra Celsijaus laipsniais: 100.0&lt;br /&gt;
&lt;br /&gt;
 Temperatūra Farenheitais: '''98.6'''&lt;br /&gt;
 Temperatūra Celsijaus laipsniais: 37.0&lt;br /&gt;
&lt;br /&gt;
=== Užduotis ===&lt;br /&gt;
Parašyti programą, kuri priima 2 tekstines reikšmes ir 2 skaičius iš vartotojo įvesties, sujungia tekstus be tarpų ir atvaizduoja gautą rezultatą, o tada sudaugina du skaičius ir atvaizduoja naujoje eilutėje.&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;
tekstas1 = input('Tekstas 1: ')&lt;br /&gt;
tekstas2 = input('Tekstas 2: ')&lt;br /&gt;
skaičius1 = float(input('Skaičius 1: '))&lt;br /&gt;
skaičius2 = float(input('Skaičius 2: '))&lt;br /&gt;
print(tekstas1 + tekstas2)&lt;br /&gt;
print(skaičius1 * skaičius2)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Labas, Pasauli |next=Suskaičiuoti iki 10}}&lt;/div&gt;</summary>
		<author><name>Juratevalat</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Labas,_Pasauli&amp;diff=3821</id>
		<title>Python Vadovėlis/Labas, Pasauli</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Labas,_Pasauli&amp;diff=3821"/>
		<updated>2022-01-30T14:45:33Z</updated>

		<summary type="html">&lt;p&gt;Juratevalat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Now for our first lesson, what is a computer program?  A computer program is a set of very detailed instructions that tell a computer what to do.   --&amp;gt;&lt;br /&gt;
=== Ką sužinosi? ===&lt;br /&gt;
Perskaitęs šį skyrių, turėtum suprasti kaip teksto redaktoriumi rašyti programas, kaip parašytas programas išsaugoti kompiuterio atmintyje ir kaip jas paleisti.&lt;br /&gt;
&lt;br /&gt;
=== Spausdinimas ===&lt;br /&gt;
Istoriškai taip jau susiklostė, kad programavimo pamokos dažniausiai prasideda nuo mažos ir paprastos programėlės pavadinimu „Hello, World!“ arba lietuviškai [[„Labas, Pasauli!“]].&lt;br /&gt;
&lt;br /&gt;
Python'o programavimo kalboje programa atrodytų taip: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Labas, Pasauli!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Programavimas kodo redaktoriumi ====&lt;br /&gt;
&lt;br /&gt;
Programavimui rekomenduojame naudoti kodo redaktorių &amp;lt;code&amp;gt;LR NŠA Python&amp;lt;/code&amp;gt;, kaip aprašytą skyriuje [[Non-Programmer's Tutorial for Python 3/Intro#Creating_and_Running_Programs|Programų kūrimas ir paleidimas]]. Savo kompiuteryje atsidaryk šią programavimo aplinką, sukurk naują failą (File -&amp;gt; New File), įkopijuok šį kodą ir tuomet failą išsaugok (File -&amp;gt; Save) pavadinimu &amp;lt;code&amp;gt;hello.py&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
TODO: gif&lt;br /&gt;
&lt;br /&gt;
Sveikiname! Sukūrei savo pirmą Python programą.&lt;br /&gt;
&lt;br /&gt;
(Jeigu tokios programavimo aplinkos įsidiegti savo kompiuteryje negali, žr. kitą žingsnį).&lt;br /&gt;
&lt;br /&gt;
Dabar parašytą programą paleisk vykdyti: tiesiog paspausk žalią mygtuką dešinėje viršuje.&lt;br /&gt;
&lt;br /&gt;
Kai paleisi šią programą, ji suveiks ir terminale atsiras užrašas:&lt;br /&gt;
&lt;br /&gt;
TODO: gif&lt;br /&gt;
&lt;br /&gt;
 Labas, Pasauli!&lt;br /&gt;
&lt;br /&gt;
==== Alternatyvus būdas: Programavimas paprastu teksto redaktoriumi ====&lt;br /&gt;
&lt;br /&gt;
Jeigu kodo redaktoriaus negali įsidiegti savo kompiuteryje dėl kokių nors priežasčių, programuoti galima ir tiesiog paprasčiausiu teksto redaktoriumi, pvz., Notepad.  &lt;br /&gt;
&lt;br /&gt;
Tiesiog sukurk naują paprastą tekstinį failą (.txt), jame įrašyk programinį kodą &amp;lt;code&amp;gt;print(&amp;quot;Labas, Pasauli!&amp;quot;)&amp;lt;/code&amp;gt;, failą išsaugok pavadinimu &amp;lt;code&amp;gt;hello.py&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
TODO: gif&lt;br /&gt;
&lt;br /&gt;
Dabar parašytą programą paleisk vykdyti, tiesiog konsolėje parašęs &amp;lt;code&amp;gt;python3 hello.py&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tavo programa parašys: &lt;br /&gt;
&lt;br /&gt;
 Labas, Pasauli!&lt;br /&gt;
&lt;br /&gt;
TODO: gif&lt;br /&gt;
&lt;br /&gt;
=== Eime toliau ===&lt;br /&gt;
&lt;br /&gt;
Labai rekomenduojame kiekvieną programos pavyzdį pasibandyti pačiam - parašyk ir tada pasileisk programą. Mūsų praktikoje toks mokymosi procesas yra pats efektyviausias ir veiksmingiausias.&lt;br /&gt;
&lt;br /&gt;
Na, o dabar keliaukime prie kiek sudėtingesnės programos pavyzdžio:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Benas ir Liepa lipo į kalną&amp;quot;)&lt;br /&gt;
print(&amp;quot;Parsinešti puodą vandens.&amp;quot;)&lt;br /&gt;
print(&amp;quot;Benas nukrito ir susidaužė karūną,&amp;quot;)&lt;br /&gt;
print(&amp;quot;Ir Liepa suklupo taip pat.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kai paleidi šią programą, ji parašo trumpą istoriją:&lt;br /&gt;
&lt;br /&gt;
 Benas ir Liepa lipo į kalną&lt;br /&gt;
 Parsinešti puodą vandens.&lt;br /&gt;
 Benas nukrito ir susidaužė karūną, &lt;br /&gt;
 Ir Liepa suklupo taip pat.&lt;br /&gt;
&lt;br /&gt;
Kai kompiuteris paleidžia programą, pirmiausia jis mato:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Benas ir Liepa lipo į kalną&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Todėl kompiuteris užrašo:&lt;br /&gt;
&lt;br /&gt;
 Benas ir Liepa lipo į kalną&lt;br /&gt;
&lt;br /&gt;
Tada kompiuteris skaito kitą eilutę ir mato:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Parsinešti puodą vandens.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Todėl ir ją užrašo kompiuterio ekrane:&lt;br /&gt;
&lt;br /&gt;
 Parsinešti puodą vandens.&lt;br /&gt;
&lt;br /&gt;
Taip kompiuteris žiūri į kiekvieną eilutę *iš eilės*, ir ją įvykdęs ir eina toliau: skaito kitą eilutę, ją įvykdo ir t.t. Taip kompiuteris vykdo visas surašytas komandas, kol pasiekia programos pabaigą.&lt;br /&gt;
&lt;br /&gt;
==== Terminologija ====&lt;br /&gt;
Taigi pats laikas truputį paaiškinti, kas vyksta ir trumpai supažindinti su terminologija.&lt;br /&gt;
&lt;br /&gt;
Prieš tai rašydami kodą, mes naudojame „funkciją“ pavadinimu &amp;lt;code&amp;gt;print&amp;lt;/code&amp;gt;. Po funkcijos pavadinimo &amp;lt;code&amp;gt;print&amp;lt;/code&amp;gt; rašomi skliausteliai &amp;lt;code&amp;gt;()&amp;lt;/code&amp;gt;, kuriuose nurodome tos funkcijos parametrus/argumentus. Pažiūrėk į pavyzdį:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Labas, Pasauli!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
funkcijai duodamas vienas parametras, kuris yra &amp;lt;code&amp;gt;&amp;quot;Labas, Pasauli!&amp;quot;&amp;lt;/code&amp;gt;. Ar pastebėjai, kad šis parametras, sudarytas iš simbolių grupės, kuri įrašyta tarp dviejų kabučių (&amp;quot;&amp;quot;)? Programuotojai tai vadina „rašytinių simbolių seka“ ar trumpiau tariant „eilute“ (tekstine reikšme). Kitas tekstinės reikšmės pavyzdys yra &amp;lt;code&amp;gt;&amp;quot;Benas ir Liepa lipo į kalną&amp;quot;&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Užrašyta funkcija su argumentais yra „teiginys“, kurį supranta Python'as. Sakinio pavyzdys:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Labas, Pasauli!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Paprasčiau tariant, teiginį gali įsivaizduoti kaip vieną programos eilutę.  &lt;br /&gt;
&lt;br /&gt;
Kol kas terminologijos pakaks, keliaujam į kitą poskyrį ir mokomės toliau.&lt;br /&gt;
&lt;br /&gt;
====\n rašyme====&lt;br /&gt;
&amp;lt;code&amp;gt;\n&amp;lt;/code&amp;gt; (escape character), arba nauja eilutė. Rašant tekstą, visas tekstas po \n yra užrašomas naujoje eilutėje. Pabandyk suprasti šią programą:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Labas, Pasauli!\nKą turėčiau daryti?&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kurios rezultatas yra toks:&lt;br /&gt;
&lt;br /&gt;
 Labas, Pasauli! &lt;br /&gt;
 Ką turėčiau daryti?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;\n&amp;lt;/code&amp;gt; naudojamas, kai norime tekstą perkelti į kitą eilutę, bet nenorime naudoti kelių &amp;lt;code&amp;gt;print()&amp;lt;/code&amp;gt; komandų.&lt;br /&gt;
&lt;br /&gt;
Spausdinimo komanda automatiškai naudoja &amp;lt;code&amp;gt;\n&amp;lt;/code&amp;gt;, t. y. kiekviena komanda tekstą spausdina vis naujoje eilutėje, net jeigu pats &amp;lt;code&amp;gt;\n&amp;lt;/code&amp;gt; ir neužrašai. Paprasčiau suprasti bus pamačius pavyzdį:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Labas, Pasauli!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
iš tikrųjų yra:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Labas, Pasauli!\n&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aritmetinės operacijos ===&lt;br /&gt;
Programos pavyzdys:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;2 + 2 yra&amp;quot;, 2 + 2)&lt;br /&gt;
print(&amp;quot;3 * 4 yra&amp;quot;, 3 * 4)&lt;br /&gt;
print(&amp;quot;100 - 1 yra&amp;quot;, 100 - 1)&lt;br /&gt;
print(&amp;quot;((33 + 2) / 5 + 11.5 yra&amp;quot;, (33 + 2) / 5 + 11.5)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rezultatas:&lt;br /&gt;
&lt;br /&gt;
 2 + 2 yra 4&lt;br /&gt;
 3 * 4 yra 12&lt;br /&gt;
 100 - 1 yra 99&lt;br /&gt;
 (33 + 2) / 5 + 11.5 yra 18.5&lt;br /&gt;
&lt;br /&gt;
==== Aritmetinės išraiškos ====&lt;br /&gt;
&lt;br /&gt;
Šiame pavyzdyje, rašymo funkcija &amp;lt;code&amp;gt;print()&amp;lt;/code&amp;gt; yra su dvejais argumentais, kurie atskirti kableliu. Panagrinėkime pirmoje eilutėje užrašytą komandą:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;2 + 2 yra&amp;quot;, 2 + 2)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pirmas argumentas yra teksto eilutė &amp;lt;code&amp;gt;&amp;quot;2 + 2 yra&amp;quot;&amp;lt;/code&amp;gt; ir antras argumentas yra aritmetinė išraiška &amp;lt;code&amp;gt;2 + 2&amp;lt;/code&amp;gt;, tiksliau tariant viena iš aritmetinių operacijų.&lt;br /&gt;
&lt;br /&gt;
Atkreipk dėmesį, kad eilutė, kuri yra užrašyta kabutėse yra atspausdinama kaip tekstas, o išraiška užrašyta be kabučių yra apskaičiuojama ir užrašomas atsakymas.&lt;br /&gt;
&lt;br /&gt;
Python'o programavimo kalba turi septynias pagrindines skaičių operacijas.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Operacija &lt;br /&gt;
! Simbolis &lt;br /&gt;
! Pavyzdys&lt;br /&gt;
|-&lt;br /&gt;
|Kėlimas laipsniu  &lt;br /&gt;
| &amp;lt;code&amp;gt;**&amp;lt;/code&amp;gt; &lt;br /&gt;
| &amp;lt;code&amp;gt;5 ** 2 == 25&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Daugyba &lt;br /&gt;
| &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; &lt;br /&gt;
|&amp;lt;code&amp;gt;2 * 3 == 6&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Dalyba &lt;br /&gt;
| &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; &lt;br /&gt;
| &amp;lt;code&amp;gt;14 / 3 == 4.666666666666667&amp;lt;/code&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|Sveikųjų skaičių dalyba&lt;br /&gt;
| &amp;lt;code&amp;gt;//&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;14 // 3 == 4&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Liekana&lt;br /&gt;
| &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt; &lt;br /&gt;
| &amp;lt;code&amp;gt;14 % 3 == 2&amp;lt;/code&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|Sudėtis&lt;br /&gt;
| &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; &lt;br /&gt;
| &amp;lt;code&amp;gt;1 + 2 == 3&amp;lt;/code&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|Atimtis &lt;br /&gt;
| &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt; &lt;br /&gt;
| &amp;lt;code&amp;gt;4 - 3 == 1&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Atkreipk dėmesį, kad yra trys dalybos būdai: vienas grąžina dešimtainį skaičių, antras – tik dalybos sveikąją dalį, o trečias – liekaną.&lt;br /&gt;
Operacijų tvarka tokia pati kaip matematikoje:&lt;br /&gt;
* pirmiausiai atliekami veiksmai skliausteliuose &amp;lt;code&amp;gt;()&amp;lt;/code&amp;gt;&lt;br /&gt;
* kėlimas laipsniu &amp;lt;code&amp;gt;**&amp;lt;/code&amp;gt;&lt;br /&gt;
* iš karės į dešinę: daugyba &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt;, dalyba&amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt;, sveikoji dalyba &amp;lt;code&amp;gt;//&amp;lt;/code&amp;gt;, dalybos liekana &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt; &lt;br /&gt;
* iš kairės į dešinę: sudėtis &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; ir atimtis &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Taigi, užrašydamas formules, nepamiršk skliaustelių.&lt;br /&gt;
&lt;br /&gt;
=== Komentarai ===&lt;br /&gt;
&lt;br /&gt;
Rašant daug kodo, ateityje tikrai ne viską atsiminsi. Todėl programoje gali naudoti komentarus, kurie yra tiesiog pastabos/paaiškinimai sau pačiam arba kitiems programuotojams. Pavyzdžiui:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Skaičiaus PI išraiška kompiuterio ekrane&lt;br /&gt;
print(22 / 7)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rezultatas: &lt;br /&gt;
&lt;br /&gt;
 3.14285714286&lt;br /&gt;
&lt;br /&gt;
Atkreipk dėmesį, kad komentaras prasideda grotelių ženklu: &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;. Komentarai yra skirti žmonėms, pagerinti programos skaitomumą. &lt;br /&gt;
&lt;br /&gt;
Taip pat svarbu suprasti, kad po &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; galima naudoti bet kokius ženklus ir kompiuteris visą šį tekstą ignoruos iki pat eilutės galo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang = &amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Skaičiaus PI išraiška kompiuterio ekrane&lt;br /&gt;
print(22/7) # tokiu būdu gauname tik apytikslę PI reikšmę&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pavyzdžiai ===&lt;br /&gt;
Kiekvieno skyriaus gale bus pateikiami su skyriaus tema susiję pavyzdžiai. Turėtum juos peržvelgti ir išsiaiškinti ar supratai. Taip pat juos gali įsikelti į python kodo redaktorių ir pažiūrėti kaip viekia. Jeigu suprasi, keliauk toliau, jeigu ne, bandyk dar kartą perskaityti skyriaus medžiagą ir suprasti pavyzdžių logiką.&lt;br /&gt;
&lt;br /&gt;
'''Danija.py'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Būti ar nebūti, štai kur klausimas.&amp;quot;)&lt;br /&gt;
print(&amp;quot;                -- Šekspyras&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rezultatas:&lt;br /&gt;
&lt;br /&gt;
 Būti ar nebūti, štai kur klausimas.&lt;br /&gt;
                 -- Šekspyras&lt;br /&gt;
&lt;br /&gt;
'''Mokykla.py'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Pirmoji klasė&amp;quot;)&lt;br /&gt;
print(&amp;quot;1 + 1 =&amp;quot;, 1 + 1)&lt;br /&gt;
print(&amp;quot;2 + 4 =&amp;quot;, 2 + 4)&lt;br /&gt;
print(&amp;quot;5 - 2 =&amp;quot;, 5 - 2)&lt;br /&gt;
print()&lt;br /&gt;
print(&amp;quot;Trečioji klasė&amp;quot;)&lt;br /&gt;
print(&amp;quot;243 - 23 =&amp;quot;, 243 - 23)&lt;br /&gt;
print(&amp;quot;12 * 4 =&amp;quot;, 12 * 4)&lt;br /&gt;
print(&amp;quot;12 / 3 =&amp;quot;, 12 / 3)&lt;br /&gt;
print(&amp;quot;13 / 3 =&amp;quot;, 13 // 3, &amp;quot;R&amp;quot;, 13 % 3)&lt;br /&gt;
print()&lt;br /&gt;
print(&amp;quot;Vidurinė&amp;quot;)&lt;br /&gt;
print(&amp;quot;123.56 - 62.12 =&amp;quot;, 123.56 - 62.12)&lt;br /&gt;
print(&amp;quot;(4 + 3) * 2 =&amp;quot;, (4 + 3) * 2)&lt;br /&gt;
print(&amp;quot;4 + 3 * 2 =&amp;quot;, 4 + 3 * 2)&lt;br /&gt;
print(&amp;quot;3 ** 2 =&amp;quot;, 3 ** 2)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rezultatas:&lt;br /&gt;
&lt;br /&gt;
 Pirma klasė&lt;br /&gt;
 1 + 1 = 2&lt;br /&gt;
 2 + 4 = 6&lt;br /&gt;
 5 - 2 = 3&lt;br /&gt;
 &lt;br /&gt;
 Trečia klasė&lt;br /&gt;
 243 - 23 = 220&lt;br /&gt;
 12 * 4 = 48&lt;br /&gt;
 12 / 3 = 4&lt;br /&gt;
 13 / 3 = 4 R 1&lt;br /&gt;
 &lt;br /&gt;
 Vidurinė&lt;br /&gt;
 123.56 - 62.12 = 61.44&lt;br /&gt;
 (4 + 3) * 2 = 14&lt;br /&gt;
 4 + 3 * 2 = 10&lt;br /&gt;
 3 ** 2 = 9&lt;br /&gt;
&lt;br /&gt;
=== Pratimai ===&lt;br /&gt;
&lt;br /&gt;
# Parašyk programą, kuri atspausdintų tavo vardą ir gimimo datą atskirose eilutėse&lt;br /&gt;
# Parašyk programą, kuri parodytų visų 7 [[#Aritmetinės_išraiškos|artimetinių operacijų]] panaudojimą.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot;&lt;br /&gt;
! colspan=2 | Sprendimas #1 &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
1. Parašyk programą, kuri atspausdintų tavo vardą ir gimimo datą atskirose eilutėse&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Ada Lovelace&amp;quot;, &amp;quot;gimusi&amp;quot;, &amp;quot;lapkričio 27, 1852&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Albertas Einšteinas&amp;quot;, &amp;quot;gimęs&amp;quot;, &amp;quot;14 kovo 1879&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print((&amp;quot;Jonas Smitas&amp;quot;), (&amp;quot;gimęs&amp;quot;), (&amp;quot;14 kovo 1879&amp;quot;))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot;&lt;br /&gt;
! colspan=2 | Sprendimas #2 &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
2. Parašyk programą, kuri parodytų visų 7 [[#Aritmetinės_išraiškos|artimetinių operacijų]] panaudojimą.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;5**5 = &amp;quot;, 5**5)&lt;br /&gt;
print(&amp;quot;6*7 = &amp;quot;, 6*7)&lt;br /&gt;
print(&amp;quot;56/8 = &amp;quot;, 56/8)&lt;br /&gt;
print(&amp;quot;14//6 = &amp;quot;, 14//6)&lt;br /&gt;
print(&amp;quot;14%6 = &amp;quot;, 14%6)&lt;br /&gt;
print(&amp;quot;5+6 = &amp;quot;, 5+6)&lt;br /&gt;
print(&amp;quot;9-0 = &amp;quot;, 9-0)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
==== Išnašos====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Įvadas |next=Kas čia eina?}}&lt;/div&gt;</summary>
		<author><name>Juratevalat</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Labas,_Pasauli&amp;diff=3820</id>
		<title>Python Vadovėlis/Labas, Pasauli</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Labas,_Pasauli&amp;diff=3820"/>
		<updated>2022-01-30T14:32:05Z</updated>

		<summary type="html">&lt;p&gt;Juratevalat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Now for our first lesson, what is a computer program?  A computer program is a set of very detailed instructions that tell a computer what to do.   --&amp;gt;&lt;br /&gt;
=== Ką sužinosi? ===&lt;br /&gt;
Perskaitęs šį skyrių, turėtum suprasti kaip teksto redaktoriumi rašyti programas, kaip parašytas programas išsaugoti kompiuterio atmintyje ir kaip jas paleisti.&lt;br /&gt;
&lt;br /&gt;
=== Spausdinimas ===&lt;br /&gt;
Istoriškai taip jau susiklostė, kad programavimo pamokos dažniausiai prasideda nuo mažos ir paprastos programėlės pavadinimu „Hello, World!“ arba lietuviškai [[„Labas, Pasauli!“]].&lt;br /&gt;
&lt;br /&gt;
Python'o programavimo kalboje programa atrodytų taip: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Labas, Pasauli!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Programavimas kodo redaktoriumi ====&lt;br /&gt;
&lt;br /&gt;
Programavimui rekomenduojame naudoti kodo redaktorių &amp;lt;code&amp;gt;LR NŠA Python&amp;lt;/code&amp;gt;, kaip aprašytą skyriuje [[Non-Programmer's Tutorial for Python 3/Intro#Creating_and_Running_Programs|Programų kūrimas ir paleidimas]]. Savo kompiuteryje atsidaryk šią programavimo aplinką, sukurk naują failą (File -&amp;gt; New File), įkopijuok šį kodą ir tuomet failą išsaugok (File -&amp;gt; Save) pavadinimu &amp;lt;code&amp;gt;hello.py&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
TODO: gif&lt;br /&gt;
&lt;br /&gt;
Sveikiname! Sukūrei savo pirmą Python programą.&lt;br /&gt;
&lt;br /&gt;
(Jeigu tokios programavimo aplinkos įsidiegti savo kompiuteryje negali, žr. kitą žingsnį).&lt;br /&gt;
&lt;br /&gt;
Dabar parašytą programą paleisk vykdyti: tiesiog paspausk žalią mygtuką dešinėje viršuje.&lt;br /&gt;
&lt;br /&gt;
Kai paleisi šią programą, ji suveiks ir terminale atsiras užrašas:&lt;br /&gt;
&lt;br /&gt;
TODO: gif&lt;br /&gt;
&lt;br /&gt;
 Labas, Pasauli!&lt;br /&gt;
&lt;br /&gt;
==== Alternatyvus būdas: Programavimas paprastu teksto redaktoriumi ====&lt;br /&gt;
&lt;br /&gt;
Jeigu kodo redaktoriaus negali įsidiegti savo kompiuteryje dėl kokių nors priežasčių, programuoti galima ir tiesiog paprasčiausiu teksto redaktoriumi, pvz., Notepad.  &lt;br /&gt;
&lt;br /&gt;
Tiesiog sukurk naują paprastą tekstinį failą (.txt), jame įrašyk programinį kodą &amp;lt;code&amp;gt;print(&amp;quot;Labas, Pasauli!&amp;quot;)&amp;lt;/code&amp;gt;, failą išsaugok pavadinimu &amp;lt;code&amp;gt;hello.py&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
TODO: gif&lt;br /&gt;
&lt;br /&gt;
Dabar parašytą programą paleisk vykdyti, tiesiog konsolėje parašęs &amp;lt;code&amp;gt;python3 hello.py&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tavo programa parašys: &lt;br /&gt;
&lt;br /&gt;
 Labas, Pasauli!&lt;br /&gt;
&lt;br /&gt;
TODO: gif&lt;br /&gt;
&lt;br /&gt;
=== Eime toliau ===&lt;br /&gt;
&lt;br /&gt;
Labai rekomenduojame kiekvieną programos pavyzdį pasibandyti pačiam - parašyk ir tada pasileisk programą. Mūsų praktikoje toks mokymosi procesas yra pats efektyviausias ir veiksmingiausias.&lt;br /&gt;
&lt;br /&gt;
Na, o dabar keliaukime prie kiek sudėtingesnės programos pavyzdžio:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Benas ir Liepa lipo į kalną&amp;quot;)&lt;br /&gt;
print(&amp;quot;Parsinešti puodą vandens.&amp;quot;)&lt;br /&gt;
print(&amp;quot;Benas nukrito ir susidaužė karūną,&amp;quot;)&lt;br /&gt;
print(&amp;quot;Ir Liepa suklupo taip pat.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kai paleidi šią programą, ji parašo trumpą istoriją:&lt;br /&gt;
&lt;br /&gt;
 Benas ir Liepa lipo į kalną&lt;br /&gt;
 Parsinešti puodą vandens.&lt;br /&gt;
 Benas nukrito ir susidaužė karūną, &lt;br /&gt;
 Ir Liepa suklupo taip pat.&lt;br /&gt;
&lt;br /&gt;
Kai kompiuteris paleidžia programą, pirmiausia jis mato:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Benas ir Liepa lipo į kalną&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Todėl kompiuteris užrašo:&lt;br /&gt;
&lt;br /&gt;
 Benas ir Liepa lipo į kalną&lt;br /&gt;
&lt;br /&gt;
Tada kompiuteris skaito kitą eilutę ir mato:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Parsinešti puodą vandens.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Todėl ir ją užrašo kompiuterio ekrane:&lt;br /&gt;
&lt;br /&gt;
 Parsinešti puodą vandens.&lt;br /&gt;
&lt;br /&gt;
Taip kompiuteris žiūri į kiekvieną eilutę *iš eilės*, ir ją įvykdęs ir eina toliau: skaito kitą eilutę, ją įvykdo ir t.t. Taip kompiuteris vykdo visas surašytas komandas, kol pasiekia programos pabaigą.&lt;br /&gt;
&lt;br /&gt;
==== Terminologija ====&lt;br /&gt;
Taigi pats laikas truputį paaiškinti, kas vyksta ir trumpai supažindinti su terminologija.&lt;br /&gt;
&lt;br /&gt;
Prieš tai rašydami kodą, mes naudojame „funkciją“ pavadinimu &amp;lt;code&amp;gt;print&amp;lt;/code&amp;gt;. Po funkcijos pavadinimo &amp;lt;code&amp;gt;print&amp;lt;/code&amp;gt; rašomi skliausteliai &amp;lt;code&amp;gt;()&amp;lt;/code&amp;gt;, kuriuose nurodome tos funkcijos parametrus/argumentus. Pažiūrėk į pavyzdį:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Labas, Pasauli!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
funkcijai duodamas vienas parametras, kuris yra &amp;lt;code&amp;gt;&amp;quot;Labas, Pasauli!&amp;quot;&amp;lt;/code&amp;gt;. Ar pastebėjai, kad šis parametras, sudarytas iš simbolių grupės, kuri įrašyta tarp dviejų kabučių (&amp;quot;&amp;quot;)? Programuotojai tai vadina „rašytinių simbolių seka“ ar trumpiau tariant „eilute“ (tekstine reikšme). Kitas tekstinės reikšmės pavyzdys yra &amp;lt;code&amp;gt;&amp;quot;Benas ir Liepa lipo į kalną&amp;quot;&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Užrašyta funkcija su argumentais yra „teiginys“, kurį supranta Python'as. Sakinio pavyzdys:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Labas, Pasauli!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Paprasčiau tariant, teiginį gali įsivaizduoti kaip vieną programos eilutę.  &lt;br /&gt;
&lt;br /&gt;
Kol kas terminologijos pakaks, keliaujam į kitą poskyrį ir mokomės toliau.&lt;br /&gt;
&lt;br /&gt;
====\n rašyme====&lt;br /&gt;
&amp;lt;code&amp;gt;\n&amp;lt;/code&amp;gt; (escape character), arba nauja eilutė. Rašant tekstą, visas tekstas po \n yra užrašomas naujoje eilutėje. Pabandyk suprasti šią programą:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Labas, Pasauli!\nKą turėčiau daryti?&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kurios rezultatas yra toks:&lt;br /&gt;
&lt;br /&gt;
 Labas, Pasauli! &lt;br /&gt;
 Ką turėčiau daryti?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;\n&amp;lt;/code&amp;gt; naudojamas, kai norime tekstą perkelti į kitą eilutę, bet nenorime naudoti kelių &amp;lt;code&amp;gt;print()&amp;lt;/code&amp;gt; komandų.&lt;br /&gt;
&lt;br /&gt;
Spausdinimo komanda automatiškai naudoja &amp;lt;code&amp;gt;\n&amp;lt;/code&amp;gt;, t. y. kiekviena komanda tekstą spausdina vis naujoje eilutėje, net jeigu pats &amp;lt;code&amp;gt;\n&amp;lt;/code&amp;gt; ir neužrašai. Paprasčiau suprasti bus pamačius pavyzdį:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Labas, Pasauli!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
iš tikrųjų yra:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Labas, Pasauli!\n&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Išraiškos ===&lt;br /&gt;
Programos pavyzdys:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;2 + 2 yra&amp;quot;, 2 + 2)&lt;br /&gt;
print(&amp;quot;3 * 4 yra&amp;quot;, 3 * 4)&lt;br /&gt;
print(&amp;quot;100 - 1 yra&amp;quot;, 100 - 1)&lt;br /&gt;
print(&amp;quot;((33 + 2) / 5 + 11.5 yra&amp;quot;, (33 + 2) / 5 + 11.5)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rezultatas:&lt;br /&gt;
&lt;br /&gt;
 2 + 2 yra 4&lt;br /&gt;
 3 * 4 yra 12&lt;br /&gt;
 100 - 1 yra 99&lt;br /&gt;
 (33 + 2) / 5 + 11.5 yra 18.5&lt;br /&gt;
&lt;br /&gt;
==== Aritmetinės išraiškos ====&lt;br /&gt;
&lt;br /&gt;
Šiame pavyzdyje, rašymo funkcija &amp;lt;code&amp;gt;print()&amp;lt;/code&amp;gt; yra su dvejais argumentais, kurie atskirti kableliu. Taigi pirmoje programos eilutėje&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;2 + 2 yra&amp;quot;, 2 + 2)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pirmas argumentas yra teksto eilutė &amp;lt;code&amp;gt;&amp;quot;2 + 2 yra&amp;quot;&amp;lt;/code&amp;gt; ir antras argumentas yra aritmetinė išraiška &amp;lt;code&amp;gt;2 + 2&amp;lt;/code&amp;gt;, tiksliau tariant viena iš aritmetinių išraiškų.&lt;br /&gt;
&lt;br /&gt;
Atkreipk dėmesį, kad eilutė, kuri yra užrašyta kabutėse yra atspausdinama kaip tekstas, o išraiška užrašyta be kabučių yra apskaičiuojama ir užrašomas atsakymas.&lt;br /&gt;
&lt;br /&gt;
Python'o programavimo kalba turi septynias pagrindines skaičių operacijas.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Operacija &lt;br /&gt;
! Simbolis &lt;br /&gt;
! Pavyzdys&lt;br /&gt;
|-&lt;br /&gt;
|Kėlimas laipsniu  &lt;br /&gt;
| &amp;lt;code&amp;gt;**&amp;lt;/code&amp;gt; &lt;br /&gt;
| &amp;lt;code&amp;gt;5 ** 2 == 25&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Daugyba &lt;br /&gt;
| &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; &lt;br /&gt;
|&amp;lt;code&amp;gt;2 * 3 == 6&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Dalyba &lt;br /&gt;
| &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; &lt;br /&gt;
| &amp;lt;code&amp;gt;14 / 3 == 4.666666666666667&amp;lt;/code&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|Sveikųjų skaičių dalyba&lt;br /&gt;
| &amp;lt;code&amp;gt;//&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;14 // 3 == 4&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Liekana (modulis)&lt;br /&gt;
| &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt; &lt;br /&gt;
| &amp;lt;code&amp;gt;14 % 3 == 2&amp;lt;/code&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|Sudėtis&lt;br /&gt;
| &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; &lt;br /&gt;
| &amp;lt;code&amp;gt;1 + 2 == 3&amp;lt;/code&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|Atimtis &lt;br /&gt;
| &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt; &lt;br /&gt;
| &amp;lt;code&amp;gt;4 - 3 == 1&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Atkreipk dėmesį, kad yra du dalybos būdai: vienas grąžina pasikartojantį dešimtainį skaičių, o kitas - liekaną ir visą skaičių.&lt;br /&gt;
Operacijų tvarka tokia pati kaip matematikoje:&lt;br /&gt;
* skliausteliuose &amp;lt;code&amp;gt;()&amp;lt;/code&amp;gt;&lt;br /&gt;
* kėlimas laipsniu &amp;lt;code&amp;gt;**&amp;lt;/code&amp;gt;&lt;br /&gt;
* daugyba &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt;, dalyba&amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt;, sveikųjų skaičių dalyba &amp;lt;code&amp;gt;//&amp;lt;/code&amp;gt;, dalyba su liekana &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt; &lt;br /&gt;
* sudėtis &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; ir atimtis &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Taigi, užrašydamas formules, nepamiršk skliaustelių.&lt;br /&gt;
&lt;br /&gt;
=== Komentarai ===&lt;br /&gt;
&lt;br /&gt;
Rašant daug kodo, ateityje tikrai ne viską atsiminsi. Todėl programoje gali naudoti komentarus, kurie yra tiesiog pastabos/paaiškinimai sau pačiam arba kitiems programuotojams. Pavyzdžiui:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Skaičiaus PI išraiška kompiuterio ekrane&lt;br /&gt;
print(22 / 7)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rezultatas: &lt;br /&gt;
&lt;br /&gt;
 3.14285714286&lt;br /&gt;
&lt;br /&gt;
Atkreipk dėmesį, kad komentaras prasideda grotelių ženklu: &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;. Komentarai yra skirti žmonėms, pagerinti programos skaitomumą. &lt;br /&gt;
&lt;br /&gt;
Taip pat svarbu suprasti, kad po &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; galima naudoti bet kokius ženklus ir kompiuteris visą šį tekstą ignoruos iki pat eilutės galo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang = &amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Skaičiaus PI išraiška kompiuterio ekrane&lt;br /&gt;
print(22/7) # tokiu būdu gauname tik apytikslę PI reikšmę&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pavyzdžiai ===&lt;br /&gt;
Kiekvieno skyriaus gale bus pateikiami su skyriaus tema susiję pavyzdžiai. Turėtum juos peržvelgti ir išsiaiškinti ar supratai. Taip pat juos gali įsikelti į python kodo redaktorių ir pažiūrėti kaip viekia. Jeigu suprasi, keliauk toliau, jeigu ne, bandyk dar kartą perskaityti skyriaus medžiagą ir suprasti pavyzdžių logiką.&lt;br /&gt;
&lt;br /&gt;
'''Danija.py'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Būti ar nebūti, štai kur klausimas.&amp;quot;)&lt;br /&gt;
print(&amp;quot;                -- Šekspyras&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rezultatas:&lt;br /&gt;
&lt;br /&gt;
 Būti ar nebūti, štai kur klausimas.&lt;br /&gt;
                 -- Šekspyras&lt;br /&gt;
&lt;br /&gt;
'''Mokykla.py'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Pirmoji klasė&amp;quot;)&lt;br /&gt;
print(&amp;quot;1 + 1 =&amp;quot;, 1 + 1)&lt;br /&gt;
print(&amp;quot;2 + 4 =&amp;quot;, 2 + 4)&lt;br /&gt;
print(&amp;quot;5 - 2 =&amp;quot;, 5 - 2)&lt;br /&gt;
print()&lt;br /&gt;
print(&amp;quot;Trečioji klasė&amp;quot;)&lt;br /&gt;
print(&amp;quot;243 - 23 =&amp;quot;, 243 - 23)&lt;br /&gt;
print(&amp;quot;12 * 4 =&amp;quot;, 12 * 4)&lt;br /&gt;
print(&amp;quot;12 / 3 =&amp;quot;, 12 / 3)&lt;br /&gt;
print(&amp;quot;13 / 3 =&amp;quot;, 13 // 3, &amp;quot;R&amp;quot;, 13 % 3)&lt;br /&gt;
print()&lt;br /&gt;
print(&amp;quot;Vidurinė&amp;quot;)&lt;br /&gt;
print(&amp;quot;123.56 - 62.12 =&amp;quot;, 123.56 - 62.12)&lt;br /&gt;
print(&amp;quot;(4 + 3) * 2 =&amp;quot;, (4 + 3) * 2)&lt;br /&gt;
print(&amp;quot;4 + 3 * 2 =&amp;quot;, 4 + 3 * 2)&lt;br /&gt;
print(&amp;quot;3 ** 2 =&amp;quot;, 3 ** 2)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rezultatas:&lt;br /&gt;
&lt;br /&gt;
 Pirma klasė&lt;br /&gt;
 1 + 1 = 2&lt;br /&gt;
 2 + 4 = 6&lt;br /&gt;
 5 - 2 = 3&lt;br /&gt;
 &lt;br /&gt;
 Trečia klasė&lt;br /&gt;
 243 - 23 = 220&lt;br /&gt;
 12 * 4 = 48&lt;br /&gt;
 12 / 3 = 4&lt;br /&gt;
 13 / 3 = 4 R 1&lt;br /&gt;
 &lt;br /&gt;
 Vidurinė&lt;br /&gt;
 123.56 - 62.12 = 61.44&lt;br /&gt;
 (4 + 3) * 2 = 14&lt;br /&gt;
 4 + 3 * 2 = 10&lt;br /&gt;
 3 ** 2 = 9&lt;br /&gt;
&lt;br /&gt;
=== Pratimai ===&lt;br /&gt;
&lt;br /&gt;
# Parašyk programą, kuri atspausdintų tavo vardą ir gimimo datą atskirose eilutėse&lt;br /&gt;
# Parašyk programą, kuri parodytų visų 7 [[#Aritmetinės_išraiškos|artimetinių operacijų]] panaudojimą.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot;&lt;br /&gt;
! colspan=2 | Sprendimas #1 &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
1. Parašyk programą, kuri atspausdintų tavo vardą ir gimimo datą atskirose eilutėse&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Ada Lovelace&amp;quot;, &amp;quot;gimusi&amp;quot;, &amp;quot;lapkričio 27, 1852&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Albertas Einšteinas&amp;quot;, &amp;quot;gimęs&amp;quot;, &amp;quot;14 kovo 1879&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print((&amp;quot;Jonas Smitas&amp;quot;), (&amp;quot;gimęs&amp;quot;), (&amp;quot;14 kovo 1879&amp;quot;))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot;&lt;br /&gt;
! colspan=2 | Sprendimas #2 &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
2. Parašyk programą, kuri parodytų visų 7 [[#Aritmetinės_išraiškos|artimetinių operacijų]] panaudojimą.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;5**5 = &amp;quot;, 5**5)&lt;br /&gt;
print(&amp;quot;6*7 = &amp;quot;, 6*7)&lt;br /&gt;
print(&amp;quot;56/8 = &amp;quot;, 56/8)&lt;br /&gt;
print(&amp;quot;14//6 = &amp;quot;, 14//6)&lt;br /&gt;
print(&amp;quot;14%6 = &amp;quot;, 14%6)&lt;br /&gt;
print(&amp;quot;5+6 = &amp;quot;, 5+6)&lt;br /&gt;
print(&amp;quot;9-0 = &amp;quot;, 9-0)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
==== Išnašos====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Įvadas |next=Kas čia eina?}}&lt;/div&gt;</summary>
		<author><name>Juratevalat</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Labas,_Pasauli&amp;diff=3819</id>
		<title>Python Vadovėlis/Labas, Pasauli</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Labas,_Pasauli&amp;diff=3819"/>
		<updated>2022-01-30T14:31:42Z</updated>

		<summary type="html">&lt;p&gt;Juratevalat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Now for our first lesson, what is a computer program?  A computer program is a set of very detailed instructions that tell a computer what to do.   --&amp;gt;&lt;br /&gt;
=== Ką sužinosi? ===&lt;br /&gt;
Perskaitęs šį skyrių, turėtum suprasti kaip teksto redaktoriumi rašyti programas, kaip parašytas programas išsaugoti kompiuterio atmintyje ir kaip jas paleisti.&lt;br /&gt;
&lt;br /&gt;
=== Spausdinimas ===&lt;br /&gt;
Istoriškai taip jau susiklostė, kad programavimo pamokos dažniausiai prasideda nuo mažos ir paprastos programėlės pavadinimu „Hello, World!“ arba lietuviškai [[„Labas, Pasauli!“]].&lt;br /&gt;
&lt;br /&gt;
Python'o programavimo kalboje programa atrodytų taip: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Labas, Pasauli!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Programavimas kodo redaktoriumi ====&lt;br /&gt;
&lt;br /&gt;
Programavimui rekomenduojame naudoti kodo redaktorių &amp;lt;code&amp;gt;LR NŠA Python&amp;lt;/code&amp;gt;, kaip aprašytą skyriuje [[Non-Programmer's Tutorial for Python 3/Intro#Creating_and_Running_Programs|Programų kūrimas ir paleidimas]]. Savo kompiuteryje atsidaryk šią programavimo aplinką, sukurk naują failą (File -&amp;gt; New File), įkopijuok šį kodą ir tuomet failą išsaugok (File -&amp;gt; Save) pavadinimu &amp;lt;code&amp;gt;hello.py&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
TODO: gif&lt;br /&gt;
&lt;br /&gt;
Sveikiname! Sukūrei savo pirmą Python programą.&lt;br /&gt;
&lt;br /&gt;
(Jeigu tokios programavimo aplinkos įsidiegti savo kompiuteryje negali, žr. kitą žingsnį).&lt;br /&gt;
&lt;br /&gt;
Dabar parašytą programą paleisk vykdyti: tiesiog paspausk žalią mygtuką dešinėje viršuje.&lt;br /&gt;
&lt;br /&gt;
Kai paleisi šią programą, ji suveiks ir terminale atsiras užrašas:&lt;br /&gt;
&lt;br /&gt;
TODO: gif&lt;br /&gt;
&lt;br /&gt;
 Labas, Pasauli!&lt;br /&gt;
&lt;br /&gt;
==== Alternatyvus būdas: Programavimas paprastu teksto redaktoriumi ====&lt;br /&gt;
&lt;br /&gt;
Jeigu kodo redaktoriaus negali įsidiegti savo kompiuteryje dėl kokių nors priežasčių, programuoti galima ir tiesiog paprasčiausiu teksto redaktoriumi, pvz., Notepad.  &lt;br /&gt;
&lt;br /&gt;
Tiesiog sukurk naują paprastą tekstinį failą (.txt), jame įrašyk programinį kodą &amp;lt;code&amp;gt;print(&amp;quot;Labas, Pasauli!&amp;quot;)&amp;lt;/code&amp;gt;, failą išsaugok pavadinimu &amp;lt;code&amp;gt;hello.py&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
TODO: gif&lt;br /&gt;
&lt;br /&gt;
Dabar parašytą programą paleisk vykdyti, tiesiog konsolėje parašęs &amp;lt;code&amp;gt;python3 hello.py&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tavo programa parašys: &lt;br /&gt;
&lt;br /&gt;
 Labas, Pasauli!&lt;br /&gt;
&lt;br /&gt;
TODO: gif&lt;br /&gt;
&lt;br /&gt;
=== Eime toliau ===&lt;br /&gt;
&lt;br /&gt;
Labai rekomenduojame kiekvieną programos pavyzdį pasibandyti pačiam - parašyk ir tada pasileisk programą. Mūsų praktikoje toks mokymosi procesas yra pats efektyviausias ir veiksmingiausias.&lt;br /&gt;
&lt;br /&gt;
Na, o dabar keliaukime prie kiek sudėtingesnės programos pavyzdžio:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Benas ir Liepa lipo į kalną&amp;quot;)&lt;br /&gt;
print(&amp;quot;Parsinešti puodą vandens.&amp;quot;)&lt;br /&gt;
print(&amp;quot;Benas nukrito ir susidaužė karūną,&amp;quot;)&lt;br /&gt;
print(&amp;quot;Ir Liepa suklupo taip pat.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kai paleidi šią programą, ji parašo trumpą istoriją:&lt;br /&gt;
&lt;br /&gt;
 Benas ir Liepa lipo į kalną&lt;br /&gt;
 Parsinešti puodą vandens.&lt;br /&gt;
 Benas nukrito ir susidaužė karūną, &lt;br /&gt;
 Ir Liepa suklupo taip pat.&lt;br /&gt;
&lt;br /&gt;
Kai kompiuteris paleidžia programą, pirmiausia jis mato:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Benas ir Liepa lipo į kalną&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Todėl kompiuteris užrašo:&lt;br /&gt;
&lt;br /&gt;
 Benas ir Liepa lipo į kalną&lt;br /&gt;
&lt;br /&gt;
Tada kompiuteris skaito kitą eilutę ir mato:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Parsinešti puodą vandens.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Todėl ir ją užrašo kompiuterio ekrane:&lt;br /&gt;
&lt;br /&gt;
 Parsinešti puodą vandens.&lt;br /&gt;
&lt;br /&gt;
Taip kompiuteris žiūri į kiekvieną eilutę *iš eilės*, ir ją įvykdęs ir eina toliau: skaito kitą eilutę, ją įvykdo ir t.t. Taip kompiuteris vykdo visas surašytas komandas, kol pasiekia programos pabaigą.&lt;br /&gt;
&lt;br /&gt;
==== Terminologija ====&lt;br /&gt;
Taigi pats laikas truputį paaiškinti, kas vyksta ir trumpai supažindinti su terminologija.&lt;br /&gt;
&lt;br /&gt;
Prieš tai rašydami kodą, mes naudojame „funkciją“ pavadinimu &amp;lt;code&amp;gt;print&amp;lt;/code&amp;gt;. Po funkcijos pavadinimo &amp;lt;code&amp;gt;print&amp;lt;/code&amp;gt; rašomi skliausteliai &amp;lt;code&amp;gt;()&amp;lt;/code&amp;gt;, kuriuose nurodome tos funkcijos parametrus/argumentus. Pažiūrėk į pavyzdį:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Labas, Pasauli!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
funkcijai duodamas vienas parametras, kuris yra &amp;lt;code&amp;gt;&amp;quot;Labas, Pasauli!&amp;quot;&amp;lt;/code&amp;gt;. Ar pastebėjai, kad šis parametras, sudarytas iš simbolių grupės, kuri įrašyta tarp dviejų kabučių (&amp;quot;&amp;quot;)? Programuotojai tai vadina „rašytinių simbolių seka“ ar trumpiau tariant „eilute“ (tekstine reikšme). Kitas tekstinės reikšmės pavyzdys yra &amp;lt;code&amp;gt;&amp;quot;Benas ir Liepa lipo į kalną&amp;quot;&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Užrašyta funkcija su argumentais yra „teiginys“, kurį supranta Python'as. Sakinio pavyzdys:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Labas, Pasauli!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Paprasčiau tariant, teiginį gali įsivaizduoti kaip vieną programos eilutę.  &lt;br /&gt;
&lt;br /&gt;
Kol kas terminologijos pakaks, keliaujam į kitą poskyrį ir mokomės toliau.&lt;br /&gt;
&lt;br /&gt;
====\n rašyme====&lt;br /&gt;
&amp;lt;code&amp;gt;\n&amp;lt;/code&amp;gt; (escape character), arba nauja eilutė . Rašant tekstą, visas tekstas po \n yra užrašomas naujoje eilutėje. Pabandyk suprasti šią programą:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Labas, Pasauli!\nKą turėčiau daryti?&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kurios rezultatas yra toks:&lt;br /&gt;
&lt;br /&gt;
 Labas, Pasauli! &lt;br /&gt;
 Ką turėčiau daryti?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;\n&amp;lt;/code&amp;gt; naudojamas, kai norime tekstą perkelti į kitą eilutę, bet nenorime naudoti kelių &amp;lt;code&amp;gt;print()&amp;lt;/code&amp;gt; komandų.&lt;br /&gt;
&lt;br /&gt;
Spausdinimo komanda automatiškai naudoja &amp;lt;code&amp;gt;\n&amp;lt;/code&amp;gt;, t. y. kiekviena komanda tekstą spausdina vis naujoje eilutėje, net jeigu pats &amp;lt;code&amp;gt;\n&amp;lt;/code&amp;gt; ir neužrašai. Paprasčiau suprasti bus pamačius pavyzdį:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Labas, Pasauli!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
iš tikrųjų yra:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Labas, Pasauli!\n&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Išraiškos ===&lt;br /&gt;
Programos pavyzdys:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;2 + 2 yra&amp;quot;, 2 + 2)&lt;br /&gt;
print(&amp;quot;3 * 4 yra&amp;quot;, 3 * 4)&lt;br /&gt;
print(&amp;quot;100 - 1 yra&amp;quot;, 100 - 1)&lt;br /&gt;
print(&amp;quot;((33 + 2) / 5 + 11.5 yra&amp;quot;, (33 + 2) / 5 + 11.5)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rezultatas:&lt;br /&gt;
&lt;br /&gt;
 2 + 2 yra 4&lt;br /&gt;
 3 * 4 yra 12&lt;br /&gt;
 100 - 1 yra 99&lt;br /&gt;
 (33 + 2) / 5 + 11.5 yra 18.5&lt;br /&gt;
&lt;br /&gt;
==== Aritmetinės išraiškos ====&lt;br /&gt;
&lt;br /&gt;
Šiame pavyzdyje, rašymo funkcija &amp;lt;code&amp;gt;print()&amp;lt;/code&amp;gt; yra su dvejais argumentais, kurie atskirti kableliu. Taigi pirmoje programos eilutėje&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;2 + 2 yra&amp;quot;, 2 + 2)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pirmas argumentas yra teksto eilutė &amp;lt;code&amp;gt;&amp;quot;2 + 2 yra&amp;quot;&amp;lt;/code&amp;gt; ir antras argumentas yra aritmetinė išraiška &amp;lt;code&amp;gt;2 + 2&amp;lt;/code&amp;gt;, tiksliau tariant viena iš aritmetinių išraiškų.&lt;br /&gt;
&lt;br /&gt;
Atkreipk dėmesį, kad eilutė, kuri yra užrašyta kabutėse yra atspausdinama kaip tekstas, o išraiška užrašyta be kabučių yra apskaičiuojama ir užrašomas atsakymas.&lt;br /&gt;
&lt;br /&gt;
Python'o programavimo kalba turi septynias pagrindines skaičių operacijas.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Operacija &lt;br /&gt;
! Simbolis &lt;br /&gt;
! Pavyzdys&lt;br /&gt;
|-&lt;br /&gt;
|Kėlimas laipsniu  &lt;br /&gt;
| &amp;lt;code&amp;gt;**&amp;lt;/code&amp;gt; &lt;br /&gt;
| &amp;lt;code&amp;gt;5 ** 2 == 25&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Daugyba &lt;br /&gt;
| &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; &lt;br /&gt;
|&amp;lt;code&amp;gt;2 * 3 == 6&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Dalyba &lt;br /&gt;
| &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; &lt;br /&gt;
| &amp;lt;code&amp;gt;14 / 3 == 4.666666666666667&amp;lt;/code&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|Sveikųjų skaičių dalyba&lt;br /&gt;
| &amp;lt;code&amp;gt;//&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;14 // 3 == 4&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Liekana (modulis)&lt;br /&gt;
| &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt; &lt;br /&gt;
| &amp;lt;code&amp;gt;14 % 3 == 2&amp;lt;/code&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|Sudėtis&lt;br /&gt;
| &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; &lt;br /&gt;
| &amp;lt;code&amp;gt;1 + 2 == 3&amp;lt;/code&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|Atimtis &lt;br /&gt;
| &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt; &lt;br /&gt;
| &amp;lt;code&amp;gt;4 - 3 == 1&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Atkreipk dėmesį, kad yra du dalybos būdai: vienas grąžina pasikartojantį dešimtainį skaičių, o kitas - liekaną ir visą skaičių.&lt;br /&gt;
Operacijų tvarka tokia pati kaip matematikoje:&lt;br /&gt;
* skliausteliuose &amp;lt;code&amp;gt;()&amp;lt;/code&amp;gt;&lt;br /&gt;
* kėlimas laipsniu &amp;lt;code&amp;gt;**&amp;lt;/code&amp;gt;&lt;br /&gt;
* daugyba &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt;, dalyba&amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt;, sveikųjų skaičių dalyba &amp;lt;code&amp;gt;//&amp;lt;/code&amp;gt;, dalyba su liekana &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt; &lt;br /&gt;
* sudėtis &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; ir atimtis &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Taigi, užrašydamas formules, nepamiršk skliaustelių.&lt;br /&gt;
&lt;br /&gt;
=== Komentarai ===&lt;br /&gt;
&lt;br /&gt;
Rašant daug kodo, ateityje tikrai ne viską atsiminsi. Todėl programoje gali naudoti komentarus, kurie yra tiesiog pastabos/paaiškinimai sau pačiam arba kitiems programuotojams. Pavyzdžiui:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Skaičiaus PI išraiška kompiuterio ekrane&lt;br /&gt;
print(22 / 7)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rezultatas: &lt;br /&gt;
&lt;br /&gt;
 3.14285714286&lt;br /&gt;
&lt;br /&gt;
Atkreipk dėmesį, kad komentaras prasideda grotelių ženklu: &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;. Komentarai yra skirti žmonėms, pagerinti programos skaitomumą. &lt;br /&gt;
&lt;br /&gt;
Taip pat svarbu suprasti, kad po &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; galima naudoti bet kokius ženklus ir kompiuteris visą šį tekstą ignoruos iki pat eilutės galo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang = &amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Skaičiaus PI išraiška kompiuterio ekrane&lt;br /&gt;
print(22/7) # tokiu būdu gauname tik apytikslę PI reikšmę&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pavyzdžiai ===&lt;br /&gt;
Kiekvieno skyriaus gale bus pateikiami su skyriaus tema susiję pavyzdžiai. Turėtum juos peržvelgti ir išsiaiškinti ar supratai. Taip pat juos gali įsikelti į python kodo redaktorių ir pažiūrėti kaip viekia. Jeigu suprasi, keliauk toliau, jeigu ne, bandyk dar kartą perskaityti skyriaus medžiagą ir suprasti pavyzdžių logiką.&lt;br /&gt;
&lt;br /&gt;
'''Danija.py'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Būti ar nebūti, štai kur klausimas.&amp;quot;)&lt;br /&gt;
print(&amp;quot;                -- Šekspyras&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rezultatas:&lt;br /&gt;
&lt;br /&gt;
 Būti ar nebūti, štai kur klausimas.&lt;br /&gt;
                 -- Šekspyras&lt;br /&gt;
&lt;br /&gt;
'''Mokykla.py'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Pirmoji klasė&amp;quot;)&lt;br /&gt;
print(&amp;quot;1 + 1 =&amp;quot;, 1 + 1)&lt;br /&gt;
print(&amp;quot;2 + 4 =&amp;quot;, 2 + 4)&lt;br /&gt;
print(&amp;quot;5 - 2 =&amp;quot;, 5 - 2)&lt;br /&gt;
print()&lt;br /&gt;
print(&amp;quot;Trečioji klasė&amp;quot;)&lt;br /&gt;
print(&amp;quot;243 - 23 =&amp;quot;, 243 - 23)&lt;br /&gt;
print(&amp;quot;12 * 4 =&amp;quot;, 12 * 4)&lt;br /&gt;
print(&amp;quot;12 / 3 =&amp;quot;, 12 / 3)&lt;br /&gt;
print(&amp;quot;13 / 3 =&amp;quot;, 13 // 3, &amp;quot;R&amp;quot;, 13 % 3)&lt;br /&gt;
print()&lt;br /&gt;
print(&amp;quot;Vidurinė&amp;quot;)&lt;br /&gt;
print(&amp;quot;123.56 - 62.12 =&amp;quot;, 123.56 - 62.12)&lt;br /&gt;
print(&amp;quot;(4 + 3) * 2 =&amp;quot;, (4 + 3) * 2)&lt;br /&gt;
print(&amp;quot;4 + 3 * 2 =&amp;quot;, 4 + 3 * 2)&lt;br /&gt;
print(&amp;quot;3 ** 2 =&amp;quot;, 3 ** 2)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rezultatas:&lt;br /&gt;
&lt;br /&gt;
 Pirma klasė&lt;br /&gt;
 1 + 1 = 2&lt;br /&gt;
 2 + 4 = 6&lt;br /&gt;
 5 - 2 = 3&lt;br /&gt;
 &lt;br /&gt;
 Trečia klasė&lt;br /&gt;
 243 - 23 = 220&lt;br /&gt;
 12 * 4 = 48&lt;br /&gt;
 12 / 3 = 4&lt;br /&gt;
 13 / 3 = 4 R 1&lt;br /&gt;
 &lt;br /&gt;
 Vidurinė&lt;br /&gt;
 123.56 - 62.12 = 61.44&lt;br /&gt;
 (4 + 3) * 2 = 14&lt;br /&gt;
 4 + 3 * 2 = 10&lt;br /&gt;
 3 ** 2 = 9&lt;br /&gt;
&lt;br /&gt;
=== Pratimai ===&lt;br /&gt;
&lt;br /&gt;
# Parašyk programą, kuri atspausdintų tavo vardą ir gimimo datą atskirose eilutėse&lt;br /&gt;
# Parašyk programą, kuri parodytų visų 7 [[#Aritmetinės_išraiškos|artimetinių operacijų]] panaudojimą.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot;&lt;br /&gt;
! colspan=2 | Sprendimas #1 &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
1. Parašyk programą, kuri atspausdintų tavo vardą ir gimimo datą atskirose eilutėse&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Ada Lovelace&amp;quot;, &amp;quot;gimusi&amp;quot;, &amp;quot;lapkričio 27, 1852&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Albertas Einšteinas&amp;quot;, &amp;quot;gimęs&amp;quot;, &amp;quot;14 kovo 1879&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print((&amp;quot;Jonas Smitas&amp;quot;), (&amp;quot;gimęs&amp;quot;), (&amp;quot;14 kovo 1879&amp;quot;))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot;&lt;br /&gt;
! colspan=2 | Sprendimas #2 &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
2. Parašyk programą, kuri parodytų visų 7 [[#Aritmetinės_išraiškos|artimetinių operacijų]] panaudojimą.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;5**5 = &amp;quot;, 5**5)&lt;br /&gt;
print(&amp;quot;6*7 = &amp;quot;, 6*7)&lt;br /&gt;
print(&amp;quot;56/8 = &amp;quot;, 56/8)&lt;br /&gt;
print(&amp;quot;14//6 = &amp;quot;, 14//6)&lt;br /&gt;
print(&amp;quot;14%6 = &amp;quot;, 14%6)&lt;br /&gt;
print(&amp;quot;5+6 = &amp;quot;, 5+6)&lt;br /&gt;
print(&amp;quot;9-0 = &amp;quot;, 9-0)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
==== Išnašos====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Įvadas |next=Kas čia eina?}}&lt;/div&gt;</summary>
		<author><name>Juratevalat</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Labas,_Pasauli&amp;diff=3818</id>
		<title>Python Vadovėlis/Labas, Pasauli</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Labas,_Pasauli&amp;diff=3818"/>
		<updated>2022-01-30T14:28:55Z</updated>

		<summary type="html">&lt;p&gt;Juratevalat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Now for our first lesson, what is a computer program?  A computer program is a set of very detailed instructions that tell a computer what to do.   --&amp;gt;&lt;br /&gt;
=== Ką sužinosi? ===&lt;br /&gt;
Perskaitęs šį skyrių, turėtum suprasti kaip teksto redaktoriumi rašyti programas, kaip parašytas programas išsaugoti kompiuterio atmintyje ir kaip jas paleisti.&lt;br /&gt;
&lt;br /&gt;
=== Spausdinimas ===&lt;br /&gt;
Istoriškai taip jau susiklostė, kad programavimo pamokos dažniausiai prasideda nuo mažos ir paprastos programėlės pavadinimu „Hello, World!“ arba lietuviškai [[„Labas, Pasauli!“]].&lt;br /&gt;
&lt;br /&gt;
Python'o programavimo kalboje programa atrodytų taip: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Labas, Pasauli!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Programavimas kodo redaktoriumi ====&lt;br /&gt;
&lt;br /&gt;
Programavimui rekomenduojame naudoti kodo redaktorių &amp;lt;code&amp;gt;LR NŠA Python&amp;lt;/code&amp;gt;, kaip aprašytą skyriuje [[Non-Programmer's Tutorial for Python 3/Intro#Creating_and_Running_Programs|Programų kūrimas ir paleidimas]]. Savo kompiuteryje atsidaryk šią programavimo aplinką, sukurk naują failą (File -&amp;gt; New File), įkopijuok šį kodą ir tuomet failą išsaugok (File -&amp;gt; Save) pavadinimu &amp;lt;code&amp;gt;hello.py&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
TODO: gif&lt;br /&gt;
&lt;br /&gt;
Sveikiname! Sukūrei savo pirmą Python programą.&lt;br /&gt;
&lt;br /&gt;
(Jeigu tokios programavimo aplinkos įsidiegti savo kompiuteryje negali, žr. kitą žingsnį).&lt;br /&gt;
&lt;br /&gt;
Dabar parašytą programą paleisk vykdyti: tiesiog paspausk žalią mygtuką dešinėje viršuje.&lt;br /&gt;
&lt;br /&gt;
Kai paleisi šią programą, ji suveiks ir terminale atsiras užrašas:&lt;br /&gt;
&lt;br /&gt;
TODO: gif&lt;br /&gt;
&lt;br /&gt;
 Labas, Pasauli!&lt;br /&gt;
&lt;br /&gt;
==== Alternatyvus būdas: Programavimas paprastu teksto redaktoriumi ====&lt;br /&gt;
&lt;br /&gt;
Jeigu kodo redaktoriaus negali įsidiegti savo kompiuteryje dėl kokių nors priežasčių, programuoti galima ir tiesiog paprasčiausiu teksto redaktoriumi, pvz., Notepad.  &lt;br /&gt;
&lt;br /&gt;
Tiesiog sukurk naują paprastą tekstinį failą (.txt), jame įrašyk programinį kodą &amp;lt;code&amp;gt;print(&amp;quot;Labas, Pasauli!&amp;quot;)&amp;lt;/code&amp;gt;, failą išsaugok pavadinimu &amp;lt;code&amp;gt;hello.py&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
TODO: gif&lt;br /&gt;
&lt;br /&gt;
Dabar parašytą programą paleisk vykdyti, tiesiog konsolėje parašęs &amp;lt;code&amp;gt;python3 hello.py&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tavo programa parašys: &lt;br /&gt;
&lt;br /&gt;
 Labas, Pasauli!&lt;br /&gt;
&lt;br /&gt;
TODO: gif&lt;br /&gt;
&lt;br /&gt;
=== Eime toliau ===&lt;br /&gt;
&lt;br /&gt;
Labai rekomenduojame kiekvieną programos pavyzdį pasibandyti pačiam - parašyk ir tada pasileisk programą. Mūsų praktikoje toks mokymosi procesas yra pats efektyviausias ir veiksmingiausias.&lt;br /&gt;
&lt;br /&gt;
Na, o dabar keliaukime prie kiek sudėtingesnės programos pavyzdžio:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Benas ir Liepa lipo į kalną&amp;quot;)&lt;br /&gt;
print(&amp;quot;Parsinešti puodą vandens.&amp;quot;)&lt;br /&gt;
print(&amp;quot;Benas nukrito ir susidaužė karūną,&amp;quot;)&lt;br /&gt;
print(&amp;quot;Ir Liepa suklupo taip pat.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kai paleidi šią programą, ji parašo trumpą istoriją:&lt;br /&gt;
&lt;br /&gt;
 Benas ir Liepa lipo į kalną&lt;br /&gt;
 Parsinešti puodą vandens.&lt;br /&gt;
 Benas nukrito ir susidaužė karūną, &lt;br /&gt;
 Ir Liepa suklupo taip pat.&lt;br /&gt;
&lt;br /&gt;
Kai kompiuteris paleidžia programą, pirmiausia jis mato:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Benas ir Liepa lipo į kalną&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Todėl kompiuteris užrašo:&lt;br /&gt;
&lt;br /&gt;
 Benas ir Liepa lipo į kalną&lt;br /&gt;
&lt;br /&gt;
Tada kompiuteris skaito kitą eilutę ir mato:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Parsinešti puodą vandens.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Todėl ir ją užrašo kompiuterio ekrane:&lt;br /&gt;
&lt;br /&gt;
 Parsinešti puodą vandens.&lt;br /&gt;
&lt;br /&gt;
Taip kompiuteris žiūri į kiekvieną eilutę *iš eilės*, ir ją įvykdęs ir eina toliau: skaito kitą eilutę, ją įvykdo ir t.t. Taip kompiuteris vykdo visas surašytas komandas, kol pasiekia programos pabaigą.&lt;br /&gt;
&lt;br /&gt;
==== Terminologija ====&lt;br /&gt;
Taigi pats laikas truputį paaiškinti, kas vyksta ir trumpai supažindinti su terminologija.&lt;br /&gt;
&lt;br /&gt;
Prieš tai rašydami kodą, mes naudojame „funkciją“ pavadinimu &amp;lt;code&amp;gt;print&amp;lt;/code&amp;gt;. Po funkcijos pavadinimo &amp;lt;code&amp;gt;print&amp;lt;/code&amp;gt; rašomi skliausteliai &amp;lt;code&amp;gt;()&amp;lt;/code&amp;gt;, kuriuose nurodome tos funkcijos parametrus/argumentus. Pažiūrėk į pavyzdį:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Labas, Pasauli!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
funkcijai duodamas vienas parametras, kuris yra &amp;lt;code&amp;gt;&amp;quot;Labas, Pasauli!&amp;quot;&amp;lt;/code&amp;gt;. Ar pastebėjai, kad šis parametras, sudarytas iš simbolių grupės, kuri įrašyta tarp dviejų kabučių (&amp;quot;&amp;quot;)? Programuotojai tai vadina „rašytinių simbolių seka“ ar trumpiau tariant „eilute“ (tekstine reikšme). Kitas tekstinės reikšmės pavyzdys yra &amp;lt;code&amp;gt;&amp;quot;Benas ir Liepa lipo į kalną&amp;quot;&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Užrašyta funkcija su argumentais yra „teiginys“, kurį supranta Python'as. Sakinio pavyzdys:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Labas, Pasauli!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Paprasčiau tariant, teiginį gali įsivaizduoti kaip vieną programos eilutę.  &lt;br /&gt;
&lt;br /&gt;
Kol kas terminologijos pakaks, keliaujam į kitą poskyrį ir mokomės toliau.&lt;br /&gt;
&lt;br /&gt;
====\n rašyme====&lt;br /&gt;
&amp;lt;code&amp;gt;\n&amp;lt;/code&amp;gt; (escape character), arba nauja eilutė . Rašant tekstą, visas tekstas po \n yra užrašomas naujoje eilutėje. Pabandyk suprasti šią programą:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Labas, Pasauli!\nKą turėčiau daryti?&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kurios rezultatas yra toks:&lt;br /&gt;
&lt;br /&gt;
 Labas, Pasauli! &lt;br /&gt;
 Ką turėčiau daryti?&lt;br /&gt;
&lt;br /&gt;
Taip pat &amp;lt;code&amp;gt;\n&amp;lt;/code&amp;gt; naudojamas, kai norime tekstą perkelti į kitą eilutę, bet nenorime naudoti kelių &amp;lt;code&amp;gt;print()&amp;lt;/code&amp;gt; komandų.&lt;br /&gt;
&lt;br /&gt;
Be to, spausdinimo teiginys automatiškai naudoja &amp;lt;code&amp;gt;\n&amp;lt;/code&amp;gt;, net jeigu pats &amp;lt;code&amp;gt;\n&amp;lt;/code&amp;gt; ir neužrašai. Paprasčiau suprasti bus pamačius pavyzdį:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Labas, Pasauli!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
iš tikrųjų yra:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Labas, Pasauli!\n&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Išraiškos ===&lt;br /&gt;
Programos pavyzdys:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;2 + 2 yra&amp;quot;, 2 + 2)&lt;br /&gt;
print(&amp;quot;3 * 4 yra&amp;quot;, 3 * 4)&lt;br /&gt;
print(&amp;quot;100 - 1 yra&amp;quot;, 100 - 1)&lt;br /&gt;
print(&amp;quot;((33 + 2) / 5 + 11.5 yra&amp;quot;, (33 + 2) / 5 + 11.5)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rezultatas:&lt;br /&gt;
&lt;br /&gt;
 2 + 2 yra 4&lt;br /&gt;
 3 * 4 yra 12&lt;br /&gt;
 100 - 1 yra 99&lt;br /&gt;
 (33 + 2) / 5 + 11.5 yra 18.5&lt;br /&gt;
&lt;br /&gt;
==== Aritmetinės išraiškos ====&lt;br /&gt;
&lt;br /&gt;
Šiame pavyzdyje, rašymo funkcija &amp;lt;code&amp;gt;print()&amp;lt;/code&amp;gt; yra su dvejais argumentais, kurie atskirti kableliu. Taigi pirmoje programos eilutėje&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;2 + 2 yra&amp;quot;, 2 + 2)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pirmas argumentas yra teksto eilutė &amp;lt;code&amp;gt;&amp;quot;2 + 2 yra&amp;quot;&amp;lt;/code&amp;gt; ir antras argumentas yra aritmetinė išraiška &amp;lt;code&amp;gt;2 + 2&amp;lt;/code&amp;gt;, tiksliau tariant viena iš aritmetinių išraiškų.&lt;br /&gt;
&lt;br /&gt;
Atkreipk dėmesį, kad eilutė, kuri yra užrašyta kabutėse yra atspausdinama kaip tekstas, o išraiška užrašyta be kabučių yra apskaičiuojama ir užrašomas atsakymas.&lt;br /&gt;
&lt;br /&gt;
Python'o programavimo kalba turi septynias pagrindines skaičių operacijas.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Operacija &lt;br /&gt;
! Simbolis &lt;br /&gt;
! Pavyzdys&lt;br /&gt;
|-&lt;br /&gt;
|Kėlimas laipsniu  &lt;br /&gt;
| &amp;lt;code&amp;gt;**&amp;lt;/code&amp;gt; &lt;br /&gt;
| &amp;lt;code&amp;gt;5 ** 2 == 25&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Daugyba &lt;br /&gt;
| &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; &lt;br /&gt;
|&amp;lt;code&amp;gt;2 * 3 == 6&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Dalyba &lt;br /&gt;
| &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; &lt;br /&gt;
| &amp;lt;code&amp;gt;14 / 3 == 4.666666666666667&amp;lt;/code&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|Sveikųjų skaičių dalyba&lt;br /&gt;
| &amp;lt;code&amp;gt;//&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;14 // 3 == 4&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Liekana (modulis)&lt;br /&gt;
| &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt; &lt;br /&gt;
| &amp;lt;code&amp;gt;14 % 3 == 2&amp;lt;/code&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|Sudėtis&lt;br /&gt;
| &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; &lt;br /&gt;
| &amp;lt;code&amp;gt;1 + 2 == 3&amp;lt;/code&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|Atimtis &lt;br /&gt;
| &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt; &lt;br /&gt;
| &amp;lt;code&amp;gt;4 - 3 == 1&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Atkreipk dėmesį, kad yra du dalybos būdai: vienas grąžina pasikartojantį dešimtainį skaičių, o kitas - liekaną ir visą skaičių.&lt;br /&gt;
Operacijų tvarka tokia pati kaip matematikoje:&lt;br /&gt;
* skliausteliuose &amp;lt;code&amp;gt;()&amp;lt;/code&amp;gt;&lt;br /&gt;
* kėlimas laipsniu &amp;lt;code&amp;gt;**&amp;lt;/code&amp;gt;&lt;br /&gt;
* daugyba &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt;, dalyba&amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt;, sveikųjų skaičių dalyba &amp;lt;code&amp;gt;//&amp;lt;/code&amp;gt;, dalyba su liekana &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt; &lt;br /&gt;
* sudėtis &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; ir atimtis &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Taigi, užrašydamas formules, nepamiršk skliaustelių.&lt;br /&gt;
&lt;br /&gt;
=== Komentarai ===&lt;br /&gt;
&lt;br /&gt;
Rašant daug kodo, ateityje tikrai ne viską atsiminsi. Todėl programoje gali naudoti komentarus, kurie yra tiesiog pastabos/paaiškinimai sau pačiam arba kitiems programuotojams. Pavyzdžiui:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Skaičiaus PI išraiška kompiuterio ekrane&lt;br /&gt;
print(22 / 7)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rezultatas: &lt;br /&gt;
&lt;br /&gt;
 3.14285714286&lt;br /&gt;
&lt;br /&gt;
Atkreipk dėmesį, kad komentaras prasideda grotelių ženklu: &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;. Komentarai yra skirti žmonėms, pagerinti programos skaitomumą. &lt;br /&gt;
&lt;br /&gt;
Taip pat svarbu suprasti, kad po &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; galima naudoti bet kokius ženklus ir kompiuteris visą šį tekstą ignoruos iki pat eilutės galo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang = &amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Skaičiaus PI išraiška kompiuterio ekrane&lt;br /&gt;
print(22/7) # tokiu būdu gauname tik apytikslę PI reikšmę&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pavyzdžiai ===&lt;br /&gt;
Kiekvieno skyriaus gale bus pateikiami su skyriaus tema susiję pavyzdžiai. Turėtum juos peržvelgti ir išsiaiškinti ar supratai. Taip pat juos gali įsikelti į python kodo redaktorių ir pažiūrėti kaip viekia. Jeigu suprasi, keliauk toliau, jeigu ne, bandyk dar kartą perskaityti skyriaus medžiagą ir suprasti pavyzdžių logiką.&lt;br /&gt;
&lt;br /&gt;
'''Danija.py'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Būti ar nebūti, štai kur klausimas.&amp;quot;)&lt;br /&gt;
print(&amp;quot;                -- Šekspyras&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rezultatas:&lt;br /&gt;
&lt;br /&gt;
 Būti ar nebūti, štai kur klausimas.&lt;br /&gt;
                 -- Šekspyras&lt;br /&gt;
&lt;br /&gt;
'''Mokykla.py'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Pirmoji klasė&amp;quot;)&lt;br /&gt;
print(&amp;quot;1 + 1 =&amp;quot;, 1 + 1)&lt;br /&gt;
print(&amp;quot;2 + 4 =&amp;quot;, 2 + 4)&lt;br /&gt;
print(&amp;quot;5 - 2 =&amp;quot;, 5 - 2)&lt;br /&gt;
print()&lt;br /&gt;
print(&amp;quot;Trečioji klasė&amp;quot;)&lt;br /&gt;
print(&amp;quot;243 - 23 =&amp;quot;, 243 - 23)&lt;br /&gt;
print(&amp;quot;12 * 4 =&amp;quot;, 12 * 4)&lt;br /&gt;
print(&amp;quot;12 / 3 =&amp;quot;, 12 / 3)&lt;br /&gt;
print(&amp;quot;13 / 3 =&amp;quot;, 13 // 3, &amp;quot;R&amp;quot;, 13 % 3)&lt;br /&gt;
print()&lt;br /&gt;
print(&amp;quot;Vidurinė&amp;quot;)&lt;br /&gt;
print(&amp;quot;123.56 - 62.12 =&amp;quot;, 123.56 - 62.12)&lt;br /&gt;
print(&amp;quot;(4 + 3) * 2 =&amp;quot;, (4 + 3) * 2)&lt;br /&gt;
print(&amp;quot;4 + 3 * 2 =&amp;quot;, 4 + 3 * 2)&lt;br /&gt;
print(&amp;quot;3 ** 2 =&amp;quot;, 3 ** 2)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rezultatas:&lt;br /&gt;
&lt;br /&gt;
 Pirma klasė&lt;br /&gt;
 1 + 1 = 2&lt;br /&gt;
 2 + 4 = 6&lt;br /&gt;
 5 - 2 = 3&lt;br /&gt;
 &lt;br /&gt;
 Trečia klasė&lt;br /&gt;
 243 - 23 = 220&lt;br /&gt;
 12 * 4 = 48&lt;br /&gt;
 12 / 3 = 4&lt;br /&gt;
 13 / 3 = 4 R 1&lt;br /&gt;
 &lt;br /&gt;
 Vidurinė&lt;br /&gt;
 123.56 - 62.12 = 61.44&lt;br /&gt;
 (4 + 3) * 2 = 14&lt;br /&gt;
 4 + 3 * 2 = 10&lt;br /&gt;
 3 ** 2 = 9&lt;br /&gt;
&lt;br /&gt;
=== Pratimai ===&lt;br /&gt;
&lt;br /&gt;
# Parašyk programą, kuri atspausdintų tavo vardą ir gimimo datą atskirose eilutėse&lt;br /&gt;
# Parašyk programą, kuri parodytų visų 7 [[#Aritmetinės_išraiškos|artimetinių operacijų]] panaudojimą.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot;&lt;br /&gt;
! colspan=2 | Sprendimas #1 &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
1. Parašyk programą, kuri atspausdintų tavo vardą ir gimimo datą atskirose eilutėse&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Ada Lovelace&amp;quot;, &amp;quot;gimusi&amp;quot;, &amp;quot;lapkričio 27, 1852&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Albertas Einšteinas&amp;quot;, &amp;quot;gimęs&amp;quot;, &amp;quot;14 kovo 1879&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print((&amp;quot;Jonas Smitas&amp;quot;), (&amp;quot;gimęs&amp;quot;), (&amp;quot;14 kovo 1879&amp;quot;))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot;&lt;br /&gt;
! colspan=2 | Sprendimas #2 &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
2. Parašyk programą, kuri parodytų visų 7 [[#Aritmetinės_išraiškos|artimetinių operacijų]] panaudojimą.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;5**5 = &amp;quot;, 5**5)&lt;br /&gt;
print(&amp;quot;6*7 = &amp;quot;, 6*7)&lt;br /&gt;
print(&amp;quot;56/8 = &amp;quot;, 56/8)&lt;br /&gt;
print(&amp;quot;14//6 = &amp;quot;, 14//6)&lt;br /&gt;
print(&amp;quot;14%6 = &amp;quot;, 14%6)&lt;br /&gt;
print(&amp;quot;5+6 = &amp;quot;, 5+6)&lt;br /&gt;
print(&amp;quot;9-0 = &amp;quot;, 9-0)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
==== Išnašos====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Įvadas |next=Kas čia eina?}}&lt;/div&gt;</summary>
		<author><name>Juratevalat</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/%C4%AEvadas&amp;diff=3817</id>
		<title>Python Vadovėlis/Įvadas</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/%C4%AEvadas&amp;diff=3817"/>
		<updated>2022-01-30T14:02:53Z</updated>

		<summary type="html">&lt;p&gt;Juratevalat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{navigation |previous=Įžanga |next=Labas, Pasauli}}&lt;br /&gt;
&lt;br /&gt;
=== Įvadas ===&lt;br /&gt;
Šis vadovėlis skirtas visiems norintiems išmokti Python: tiek pirmą kartą bandantiems programuoti, tiek bandžiusiems programuoti kitomis programavimo kalbomis ir norintiems išmokti Python, tiek jau pramokusiems Python, bei norintiems praplėsti žinias.&lt;br /&gt;
&lt;br /&gt;
Tėra vienintelis būdas išmokti programuoti. '''Tu''' turi skaityti ''kodą'' ir rašyti ''kodą''.&lt;br /&gt;
Vadovėlyje parodysiu tau daug kodo. Bandyk vykdyti šį kodą kompiuteriu ir išbandyti pats kaip jis veikia. Ekperimentuok ir bandyk daryti pakeitimus. Nebijok kažką sugandinti, blogiausiu atveju tavo kodas tiesiog neveiks. Kai aš pats rašysiu kodą knygoje, jį suformatuosiu šitaip:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Python kalbą lengva išmokti&lt;br /&gt;
print(&amp;quot;Sveikas, pasauli!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Prieš komentarą – paparastą tekatą – dėsiu groteles. Šitaip lengvai atskirsi kodo pavyzdžius nuo teksto. Jei skaitai internetinį knygos variantą, atkreipk dėmesį į kodo spalvą – ji kitokia, tam kad tam tikros kodo dalys išsiskirtų. Tau vedant kodą kompiuteriu redagavimo programa jį gali nuspalvinti kitokiomis spalvomis arba iš viso nenuspalvinti. Kodo nuspalvinimas gali skirtis, bet jei įvesi kodą, taip kaip nurodyta pavyzdžiuose jis veiks taip kaip ir aprašyta vadovėlyje.&lt;br /&gt;
&lt;br /&gt;
Pavyzdžiui, vykdant anksčiau parašytą kodo pavyzdį kompiuteris ekrane išves tokį tekstą:&lt;br /&gt;
&lt;br /&gt;
 Sveikas, pasauli!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Šis vadovėlis skirtas Python 3 versijai. Bandant kodo pavyzdžius vykdyti su Python 2.7 ir ankstesnėmis versijomis jis gali neveikti. Skirtumai tarp Python 2 ir 3 versijos nėra itin dideli, tad išmokęs Python 3 galėsi be didelių pastangų skaityti ir ankstenėms versijoms skirtą kodą.&lt;br /&gt;
&lt;br /&gt;
Pavyzdžiuose dažnai parodysiu programos vykdymo metu tavo įvedamą tekstą (jis bus '''paryškintas''') ir programos į ekraną išvedamą tekstą. Pavyzdžiui:&lt;br /&gt;
&lt;br /&gt;
 Stok!&lt;br /&gt;
 Kas eina? '''Benas'''&lt;br /&gt;
 Benai, gali eiti toliau&lt;br /&gt;
&lt;br /&gt;
Vadovėlyje tave supažindinsiu ir su programavimo terminologiją. Tai ne tik tau padės suprasti apie ką kalba programuotojai, bet ir padės mokytis.&lt;br /&gt;
&lt;br /&gt;
Kad galėtum pradėti kurti Python programas tau reikės Python 3 programinės įrangos, bei kodo redaktoriaus. Rekomenduojame naudoti &amp;quot;LR NŠA Python&amp;quot; programą, kurią gali parsisiųsti iš https://www.visma.lt/python-diegimas/. Ši diegimo programa įdiegs Python interpretatorių, Visual Studio Code kodo redaktorių, bei sukonfiguruos tavo kompiuterį, kad galėtum iš karto rašyti ir vykdyti kodą.&lt;br /&gt;
&lt;br /&gt;
=== Python ir Visual Studio Code diegimas ===&lt;br /&gt;
==== Diegimas Windows operacinėse sistemose ====&lt;br /&gt;
LR NŠA Python diegimo programa yra skirta Windows operacinės sistemos naudotojams.&lt;br /&gt;
&lt;br /&gt;
1. Parsisiųsk diegimo programą iš https://www.visma.lt/python-diegimas/. Rekomeduojama rinktis 64 bitų versiją, nebent naudoji 32 bitų operacinės sistemą.&lt;br /&gt;
&lt;br /&gt;
2. Paleisk parsisiųstą programą&lt;br /&gt;
&lt;br /&gt;
3. Atsivers diegimo programos langas. Kad pradėtum diegimą spausk mygtuką '''Next'''.&lt;br /&gt;
&lt;br /&gt;
[[Vaizdas:Vadovelis 1Sk 1.jpg|frame|center]]&lt;br /&gt;
&lt;br /&gt;
4. Atsivers naujas langas, kuriame galima pasirinkti kokias dalis norima įdiegti. Rekomenduojama nieko nekeisti ir spausti mygtuką '''Install'''.&lt;br /&gt;
&lt;br /&gt;
[[Vaizdas:Vadovelis 1Sk 2.jpg|frame|center]]&lt;br /&gt;
&lt;br /&gt;
5. Palauk kol baigsis diegimas&lt;br /&gt;
&lt;br /&gt;
6. Baigus diegimą pamtysi langą su pirmo paleidimo instrukcijomis. Šiame lange paspausk mygtuką '''OK'''.&lt;br /&gt;
&lt;br /&gt;
[[Vaizdas:Vadovelis 1Sk 3.jpg|frame|center]]&lt;br /&gt;
&lt;br /&gt;
7. Paspausk mygtuką '''Finish''', kad užbaigtum diegimą.&lt;br /&gt;
&lt;br /&gt;
[[Vaizdas:Vadovelis 1Sk 4.jpg|frame|center]]&lt;br /&gt;
&lt;br /&gt;
==== Linux, BSD, bei Unix operacinėse sistemose ====&lt;br /&gt;
Jei naudoji ne Windows operacinę sistemą Python ir kodo redaktorių reikės įsidiegti atskirai.&lt;br /&gt;
Linux, BSD, bei Unix operacinėse sistemose Python dažnai bus įdiegtas kartu su operacine sistema. Patikrinti ar Python įdiegtas ir kuri versija įdiegta galima įvykdžius komandą:&lt;br /&gt;
&lt;br /&gt;
 python3 --version&lt;br /&gt;
&lt;br /&gt;
Jei Python nėra įdiegtas, tai jį įsidiegti galima naudojantis instrukcija anglų kalba: https://docs.python-guide.org/starting/install3/linux/&lt;br /&gt;
&lt;br /&gt;
Parsiųsti ir įdiegti Visual Studio Code kodo redaktorių galima iš https://code.visualstudio.com/Download&lt;br /&gt;
 &lt;br /&gt;
==== Mac operacinėse sistemose ====&lt;br /&gt;
Nuo Mac OS X Tiger (10.4) versijos, Python 2 yra instaliuojama kartu su operacine sistema. Tad Python 3 reikia įdiegti atskirai (Nebent vėlesnėse versijose pasikeis su operacine sistema diegiamo Python versija). Parsisiųsti Python 3 MAC operacinėms sistemoms galima iš https://www.python.org/downloads/macos/.&lt;br /&gt;
&lt;br /&gt;
Parsiųsti ir įdiegti Visual Studio Code kodo redaktorių galima iš https://code.visualstudio.com/Download&lt;br /&gt;
&lt;br /&gt;
=== Pirmas paleidimas ===&lt;br /&gt;
Windows operacinėse sistemose Visual Studio Code kodo redaktorių gali paleisti paspaudžiant ant darbalaukio atsiradusios ikonėlės.&lt;br /&gt;
&lt;br /&gt;
[[Vaizdas:Vadovelis 1Sk 5.jpg|miniatiūra]]&lt;br /&gt;
&lt;br /&gt;
Pirmo paleidimo metu programa atliks reikiamus konfigūravimo veiksmus, kad būtų galima pilnai naudotis reikiamais įskiepiais. Todėl pirmo paleidimo metu reikia palaukti kelias minutes kol konfigūravimas bus baigtas.&lt;br /&gt;
&lt;br /&gt;
==== Pirmosios programos sukūrimas ====&lt;br /&gt;
Sukurti pirmąją programą gali vykdydamas šiuos žingsnius Visual Studio Code redaktoriuje:&lt;br /&gt;
&lt;br /&gt;
1. Meniu pasirink Failas &amp;gt;&amp;gt; Atverti aplanką&lt;br /&gt;
&lt;br /&gt;
2. Pasirink ar susikurk aplanką kuriame laikysi Python programų kodo failus.&lt;br /&gt;
&lt;br /&gt;
3. Skyriuje '''NARŠYKLĖ''' prie aplanko paspausk ant naujo failo ikonėlės.&lt;br /&gt;
&lt;br /&gt;
[[Vaizdas:Vadovelis 1Sk 6.jpg|frame|center]]&lt;br /&gt;
&lt;br /&gt;
4. Pavadink failą &amp;quot;Sveikas.py&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. Automatiškai atsivers failo redagavimo langas. Jame įrašyk&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Sveikas, pasauli!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. Paspausk klavišus ctrl + F5, kad paleistum programą&lt;br /&gt;
&lt;br /&gt;
7. Apatinėje skiltyje išvysi programos vykdymo langą, kur matysi ir savo programos vykdymo rezultatą:&lt;br /&gt;
&lt;br /&gt;
[[Vaizdas:Vadovelis 1Sk 7.jpg|frame|kairėje]]&lt;br /&gt;
&lt;br /&gt;
Tokiu pat principu galėsi kurti ir kitas programas.&lt;br /&gt;
&lt;br /&gt;
==== Programų failų pavadinimai ====&lt;br /&gt;
 Kuriant naujus Python kodo failus labai naudinga laikytis taisyklių, pavadinant savo programas. Nesilaikant šių taisyklių gali atsitkti taip kad programa &amp;quot;netikėtai&amp;quot; neveiks.&lt;br /&gt;
# Visada naudok failo plėtinį &amp;lt;tt&amp;gt;.py&amp;lt;/tt&amp;gt;.&lt;br /&gt;
# Naudok vieintelį tašką - plėtinio atskyrimui&lt;br /&gt;
# Naudok tik: raides, skaičius, brūkšnį (&amp;lt;tt&amp;gt;-&amp;lt;/tt&amp;gt;) ir pabraukimo simbolį (&amp;lt;tt&amp;gt;_&amp;lt;/tt&amp;gt;)&lt;br /&gt;
# Nenaudok tarpų (zodziams atskirti galima naudoti pabraukimo simbolį (&amp;lt;tt&amp;gt;_&amp;lt;/tt&amp;gt;).&lt;br /&gt;
# Failo pavadinimas turi prasidėti raide&lt;br /&gt;
# Nenaudok standartinių Python modulių pavadinimų (pvz. &amp;lt;tt&amp;gt;print.py&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;math.py&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;list.py&amp;lt;/tt&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
=== Python paleidimas per komandinę eilutę ===&lt;br /&gt;
Python programinį kodą galima vykdyti ir naudojant komandinę eilutę. Sukūrus failą su programos kodu ją įvykdyti galima komandinėj eilutėj vykdant komandą: &amp;lt;code&amp;gt;python ''failo_pavadinimas''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Vaizdas:Vadovelis 1Sk 8.jpg|frame|kairėje]]&lt;/div&gt;</summary>
		<author><name>Juratevalat</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/%C4%AEvadas&amp;diff=3816</id>
		<title>Python Vadovėlis/Įvadas</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/%C4%AEvadas&amp;diff=3816"/>
		<updated>2022-01-30T13:52:24Z</updated>

		<summary type="html">&lt;p&gt;Juratevalat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{navigation |previous=Įžanga |next=Labas, Pasauli}}&lt;br /&gt;
&lt;br /&gt;
=== Įvadas ===&lt;br /&gt;
Šis vadovėlis skirtas visiems norintiems išmokti Python: tiek pirmą kartą bandantiems programuoti, tiek bandžiusiems programuoti kitomis programavimo kalbomis ir norintiems išmokti Python, tiek jau pramokusiems Python, bei norintiems praplėsti žinias.&lt;br /&gt;
&lt;br /&gt;
Tėra vienintelis būdas išmokti programuoti. '''Tu''' turi skaityti ''kodą'' ir rašyti ''kodą''.&lt;br /&gt;
Vadovėlyje parodysiu tau daug kodo. Bandyk vykdyti šį kodą kompiuteriu ir išbandyti pats kaip jis veikia. Ekperimentuok ir bandyk daryti pakeitimus. Nebijok kažką sugandinti, blogiausiu atveju tavo kodas tiesiog neveiks. Kai aš pats rašysiu kodą knygoje, jį suformatuosiu šitaip:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Python kalbą lengva išmokti&lt;br /&gt;
print(&amp;quot;Sveikas, pasauli!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Prieš komentarą – paparastą tekatą – dėsiu groteles. Šitaip lengvai atskirsi kodo pavyzdžius nuo teksto. Jei skaitai internetinį knygos variantą, atkreipk dėmesį į kodo spalvą – ji kitokia, tam kad tam tikros kodo dalys išsiskirtų. Tau vedant kodą kompiuteriu redagavimo programa jį gali nuspalvinti kitokiomis spalvomis arba iš viso nenuspalvinti. Kodo nuspalvinimas gali skirtis, bet jei įvesi kodą, taip kaip nurodyta pavyzdžiuose jis veiks taip kaip ir aprašyta vadovėlyje.&lt;br /&gt;
&lt;br /&gt;
Pavyzdžiui, vykdant anksčiau parašytą kodo pavyzdį kompiuteris ekrane išves tokį tekstą:&lt;br /&gt;
&lt;br /&gt;
 Sveikas, pasauli!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Šis vadovėlis skirtas Python 3 versijai. Bandant kodo pavyzdžius vykdyti su Python 2.7 ir ankstesnėmis versijomis jis gali neveikti. Skirtumai tarp Python 2 ir 3 versijos nėra itin dideli, tad išmokęs Python 3 galėsi be didelių pastangų skaityti ir ankstenėms versijoms skirtą kodą.&lt;br /&gt;
&lt;br /&gt;
Pavyzdžiuose dažnai parodysiu programos vykdymo metu tavo įvedamą tekstą (jis bus '''paryškintas''') ir programos į ekraną išvedamą tekstą. Pavyzdžiui:&lt;br /&gt;
&lt;br /&gt;
 Stok!&lt;br /&gt;
 Kas eina? '''Benas'''&lt;br /&gt;
 Benai, gali eiti toliau&lt;br /&gt;
&lt;br /&gt;
Vadovėlyje tave supažindinsiu ir su programavimo terminologiją. Tai ne tik tau padės suprasti apie ką kalba programuotojai, bet ir padės mokytis.&lt;br /&gt;
&lt;br /&gt;
Kad galėtum pradėti kurti Python programas tau reikės Python 3 programinės įrangos, bei kodo redaktoriaus. Rekomenduojame naudoti &amp;quot;LR NŠA Python&amp;quot; programą, kurią gali parsisiųsti iš https://www.visma.lt/python-diegimas/. Ši diegimo programa įdiegs Python interpretatorių, Visual Studio Code kodo redaktorių, bei sukonfiguruos tavo kompiuterį, kad galėtum iš karto rašyti ir vykdyti kodą.&lt;br /&gt;
&lt;br /&gt;
=== Python ir Visual Studio Code diegimas ===&lt;br /&gt;
==== Diegimas Windows operacinėse sistemose ====&lt;br /&gt;
LR NŠA Python diegimo programa yra skirta Windows operacinės sistemos naudotojams.&lt;br /&gt;
&lt;br /&gt;
1. Parsisiųsk diegimo programą iš https://www.visma.lt/python-diegimas/. Rekomeduojama rinktis 64 bitų versiją, nebent naudoji 32 bitų operacinės sistemą.&lt;br /&gt;
&lt;br /&gt;
2. Paleisk parsisiųstą programą&lt;br /&gt;
&lt;br /&gt;
3. Atsivers diegimo programos langas. Kad pradėtum diegimą spausk mygtuką '''Next'''.&lt;br /&gt;
&lt;br /&gt;
[[Vaizdas:Vadovelis 1Sk 1.jpg|frame|center]]&lt;br /&gt;
&lt;br /&gt;
4. Atsivers naujas langas, kuriame galima pasirinkti kokias dalis norima įdiegti. Rekomenduojama nieko nekeisti ir spausti mygtuką '''Install'''.&lt;br /&gt;
&lt;br /&gt;
[[Vaizdas:Vadovelis 1Sk 2.jpg|frame|center]]&lt;br /&gt;
&lt;br /&gt;
5. Palauk kol baigsis diegimas&lt;br /&gt;
&lt;br /&gt;
6. Baigus diegimą pamtysi langą su pirmo paleidimo instrukcijomis. Šiame lange paspausk mygtuką '''OK'''.&lt;br /&gt;
&lt;br /&gt;
[[Vaizdas:Vadovelis 1Sk 3.jpg|frame|center]]&lt;br /&gt;
&lt;br /&gt;
7. Paspausk mygtuką '''Finish''', kad užbaigtum diegimą.&lt;br /&gt;
&lt;br /&gt;
[[Vaizdas:Vadovelis 1Sk 4.jpg|frame|center]]&lt;br /&gt;
&lt;br /&gt;
==== Linux, BSD, bei Unix operacinėse sistemose ====&lt;br /&gt;
Jei naudoji ne windows operacinę sistemą Python ir kodo redaktorių reikės įsidiegti atskirai.&lt;br /&gt;
Linux, BSD, bei Unix operacinėse sistemose Python dažnai bus įdiegtas kartu su operacine sistema. Patikrinti ar Python įdiegtas ir kuri versija įdiegta galima įvykdžius komandą:&lt;br /&gt;
&lt;br /&gt;
 python3 --version&lt;br /&gt;
&lt;br /&gt;
Jei Python nėra įdiegtas, tai jį įsidiegti galima naudojantis instrukcija anglų kalba: https://docs.python-guide.org/starting/install3/linux/&lt;br /&gt;
&lt;br /&gt;
Parsiųsti ir įdiegti Visual Studio Code kodo redaktorių galima iš https://code.visualstudio.com/Download&lt;br /&gt;
 &lt;br /&gt;
==== Mac operacinėse sistemose ====&lt;br /&gt;
Nuo Mac OS X Tiger (10.4) versijos, Python 2 yra instaliuojama kartu su operacine sistema. Tad Python 3 reikia įdiegti atskirai (Nebent vėlesnėse versijose pasikeis su operacine sistema diegiamo Python versija). Parsisiųsti Python 3 MAC operacinėms sistemoms galima iš https://www.python.org/downloads/macos/.&lt;br /&gt;
&lt;br /&gt;
Parsiųsti ir įdiegti Visual Studio Code kodo redaktorių galima iš https://code.visualstudio.com/Download&lt;br /&gt;
&lt;br /&gt;
=== Pirmas paleidimas ===&lt;br /&gt;
Windows operacinėse sistemose Visual Studio Code kodo redaktorių gali paleisti paspaudžiant ant darbalaukio atsiradusios ikonėlės.&lt;br /&gt;
&lt;br /&gt;
[[Vaizdas:Vadovelis 1Sk 5.jpg|miniatiūra]]&lt;br /&gt;
&lt;br /&gt;
Pirmo paleidimo metu programa atliks reikiamus konfigūravimo veiksmus, kad būtų galima pilnai naudotis reikiamais įskiepiais. Todėl pirmo paleidimo metu reikia palaukti kelias minuites kol konfigūravimas bus baigtas.&lt;br /&gt;
&lt;br /&gt;
==== Pirmosios programos sukūrimas ====&lt;br /&gt;
Sukurti pirmąją programą gali vykdydamas šiuos žingsnius Visual Studio Code redaktoriuje&lt;br /&gt;
1. Meniu pasirink Failas &amp;gt;&amp;gt; Atverti aplanką&lt;br /&gt;
&lt;br /&gt;
2. Pasirink ar susikurk aplanką kuriame laikysi Python programų kodo failus.&lt;br /&gt;
&lt;br /&gt;
3. Skyriuje '''NARŠYKLĖ''' prie aplanko paspausk ant naujo failo ikonėlės.&lt;br /&gt;
&lt;br /&gt;
[[Vaizdas:Vadovelis 1Sk 6.jpg|frame|center]]&lt;br /&gt;
&lt;br /&gt;
4. Pavadink failą &amp;quot;Sveikas.py&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. Automatiškai atsivers failo redagavimo langas. Jame įrašyk&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Sveikas, pasauli!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. Paspausk klavišus ctrl + F5, kad paleistum programą&lt;br /&gt;
&lt;br /&gt;
7. Apatinėje skiltyje išvysi programos vykdymo langą, kur matysi ir savo programos vykdymo rezultatą:&lt;br /&gt;
&lt;br /&gt;
[[Vaizdas:Vadovelis 1Sk 7.jpg|frame|kairėje]]&lt;br /&gt;
&lt;br /&gt;
Tokiu pat principu galėsi kurti ir kitas programas.&lt;br /&gt;
&lt;br /&gt;
==== Programų failų pavadinimai ====&lt;br /&gt;
 Kuriant naujus Python kodo failus labai naudinga laikytis taisyklių, pavadinant savo programas. Nesilaikant šių taisyklių gali atsitkti taip kad programa &amp;quot;netikėtai&amp;quot; neveiks.&lt;br /&gt;
# Visada naudok failo plėtinį &amp;lt;tt&amp;gt;.py&amp;lt;/tt&amp;gt;.&lt;br /&gt;
# Naudok vieintelį tašką - plėtinio atskyrimui&lt;br /&gt;
# Naudok tik: raides, skaičius, brūkšnį (&amp;lt;tt&amp;gt;-&amp;lt;/tt&amp;gt;) ir pabraukimo simbolį (&amp;lt;tt&amp;gt;_&amp;lt;/tt&amp;gt;)&lt;br /&gt;
# Nenaudok tarpų (zodziams atskirti galima naudoti pabraukimo simbolį (&amp;lt;tt&amp;gt;_&amp;lt;/tt&amp;gt;).&lt;br /&gt;
# Failo pavadinimas turi prasidėti raide&lt;br /&gt;
# Nenaudok standartinių Python modulių pavadinimų (pvz. &amp;lt;tt&amp;gt;print.py&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;math.py&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;list.py&amp;lt;/tt&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
=== Python paleidimas per komandinę eilutę ===&lt;br /&gt;
Python programinį kodą galima vykdyti ir naudojant komandinę eilutę. Sukūrus failą su programos kodu ją įvykdyti galima komandinėj eilutėj vykdant komandą: &amp;lt;code&amp;gt;python ''programos_pavadinimas''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Vaizdas:Vadovelis 1Sk 8.jpg|frame|kairėje]]&lt;/div&gt;</summary>
		<author><name>Juratevalat</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/%C4%AEvadas&amp;diff=3815</id>
		<title>Python Vadovėlis/Įvadas</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/%C4%AEvadas&amp;diff=3815"/>
		<updated>2022-01-30T13:46:47Z</updated>

		<summary type="html">&lt;p&gt;Juratevalat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{navigation |previous=Įžanga |next=Labas, Pasauli}}&lt;br /&gt;
&lt;br /&gt;
=== Įvadas ===&lt;br /&gt;
Šis vadovėlis skirtas visiems norintiems išmokti Python: tiek pirmą kartą bandantiems programuoti, tiek bandžiusiems programuoti kitomis programavimo kalbomis ir norintiems išmokti Python, tiek jau pramokusiems Python, bei norintiems praplėsti žinias.&lt;br /&gt;
&lt;br /&gt;
Tėra vienintelis būdas išmokti programuoti. '''Tu''' turi skaityti ''kodą'' ir rašyti ''kodą''.&lt;br /&gt;
Vadovėlyje parodysiu tau daug kodo. Bandyk vykdyti šį kodą kompiuteriu ir išbandyti pats kaip jis veikia. Ekperimentuok ir bandyk daryti pakeitimus. Nebijok kažką sugandinti, blogiausiu atveju tavo kodas tiesiog neveiks. Kai aš pats rašysiu kodą knygoje, jį suformatuosiu šitaip:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Python kalbą lengva išmokti&lt;br /&gt;
print(&amp;quot;Sveikas, pasauli!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Prieš komentarą – paparastą tekatą – dėsiu groteles. Šitaip lengvai atskirsi kodo pavyzdžius nuo teksto. Jei skaitai internetinį knygos variantą, atkreipk dėmesį į kodo spalvą – ji kitokia, tam kad tam tikros kodo dalys išsiskirtų. Tau vedant kodą kompiuteriu redagavimo programa jį gali nuspalvinti kitokiomis spalvomis arba iš viso nenuspalvinti. Kodo nuspalvinimas gali skirtis, bet jei įvesi kodą, taip kaip nurodyta pavyzdžiuose jis veiks taip kaip ir aprašyta vadovėlyje.&lt;br /&gt;
&lt;br /&gt;
Pavyzdžiui, vykdant anksčiau parašytą kodo pavyzdį kompiuteris ekrane išves tokį tekstą:&lt;br /&gt;
&lt;br /&gt;
 Sveikas, pasauli!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Šis vadovėlis skirtas Python 3 versijai. Bandant kodo pavyzdžius vykdyti su Python 2.7 ir ankstesnėmis versijomis jis gali neveikti. Skirtumai tarp Python 2 ir 3 versijos nėra itin dideli, tad išmokęs Python 3 galėsi be didelių pastangų skaityti ir ankstenėms versijoms skirtą kodą.&lt;br /&gt;
&lt;br /&gt;
Pavyzdžiuose dažnai parodysiu programos vykdymo metu tavo įvedamą tekstą (jis bus '''paryškintas''') ir programos į ekraną išvedamą tekstą. Pavyzdžiui:&lt;br /&gt;
&lt;br /&gt;
 Stok!&lt;br /&gt;
 Kas eina? '''Benas'''&lt;br /&gt;
 Benai, gali eiti toliau&lt;br /&gt;
&lt;br /&gt;
Tau taip pat vadovėluyje tave supažindinsiu su programavimo terminologiją. Tai ne tik tau padės suprasti ne tik apie ką kalba programuotojai, bet ir padės mokytis.&lt;br /&gt;
&lt;br /&gt;
Kad galėtum pradėti kurti Python programas tau reikės Python 3 programinės įrangos, bei kodo redaktoriaus. Rekomenduojame naudoti &amp;quot;LR NŠA Python&amp;quot; diegimo programą, kurią gali parsisiųsti iš https://www.visma.lt/python-diegimas/. Ši diegimo programa įdiegs Python interpretatorių, Visual Studio Code kodo redaktorių, bei sukonfiguruos tavo kompiuterį, kad galėtum iš karto rašyti ir vykdyti kodą.&lt;br /&gt;
&lt;br /&gt;
=== Python ir Visual Studio Code diegimas ===&lt;br /&gt;
==== Diegimas Windows operacinėse sistemose ====&lt;br /&gt;
LR NŠA Python diegimo programa yra skirta Windows operacinės sistemos naudotojams.&lt;br /&gt;
&lt;br /&gt;
1. Parsisiųsk diegimo programą iš https://www.visma.lt/python-diegimas/. Rekomeduojama rinktis 64 bitų versiją, nebent naudoji 32 bitų operacinės sistemą.&lt;br /&gt;
&lt;br /&gt;
2. Paleisk parsisiųstą programą&lt;br /&gt;
&lt;br /&gt;
3. Atsivers diegimo programos langas. Kad pradėtum diegimą spausk mygtuką '''Next'''.&lt;br /&gt;
&lt;br /&gt;
[[Vaizdas:Vadovelis 1Sk 1.jpg|frame|center]]&lt;br /&gt;
&lt;br /&gt;
4. Atsivers naujas langas, kuriame galima pasirinkti kokias dalis norima įdiegti. Rekomenduojama nieko nekeisti ir spausti mygtuką '''Install'''.&lt;br /&gt;
&lt;br /&gt;
[[Vaizdas:Vadovelis 1Sk 2.jpg|frame|center]]&lt;br /&gt;
&lt;br /&gt;
5. Palauk kol baigsis diegimas&lt;br /&gt;
6. Baigus diegimą pamtysi langą su pirmo paleidimo instrukcijomis. Šiame lange paspausk mygtuką '''OK'''.&lt;br /&gt;
&lt;br /&gt;
[[Vaizdas:Vadovelis 1Sk 3.jpg|frame|center]]&lt;br /&gt;
&lt;br /&gt;
7. Paspausk mygtuką '''Finish''', kad užbaigtum diegimą.&lt;br /&gt;
&lt;br /&gt;
[[Vaizdas:Vadovelis 1Sk 4.jpg|frame|center]]&lt;br /&gt;
&lt;br /&gt;
==== Linux, BSD, bei Unix operacinėse sistemose ====&lt;br /&gt;
Jei naudoji ne windows operacinę sistemą Python ir kodo redaktorių reikės įsidiegti atskirai.&lt;br /&gt;
Linux, BSD, bei Unix operacinėse sistemose Python dažnai bus įdiegtas kartu su operacine sistema. Patikrinti ar Python įdiegtas ir kuri versija įdiegta galima įvykdžius komandą:&lt;br /&gt;
&lt;br /&gt;
 python3 --version&lt;br /&gt;
&lt;br /&gt;
Jei Python nėra įdiegtas, tai jį įsidiegti galima naudojantis instrukcija anglų kalba: https://docs.python-guide.org/starting/install3/linux/&lt;br /&gt;
&lt;br /&gt;
Parsiųsti ir įdiegti Visual Studio Code kodo redaktorių galima iš https://code.visualstudio.com/Download&lt;br /&gt;
 &lt;br /&gt;
==== Mac operacinėse sistemose ====&lt;br /&gt;
Nuo Mac OS X Tiger (10.4) versijos, Python 2 yra instaliuojama kartu su operacine sistema. Tad Python 3 reikia įdiegti atskirai (Nebent vėlesnėse versijose pasikeis su operacine sistema diegiamo Python versija). Parsisiųsti Python 3 MAC operacinėms sistemoms galima iš https://www.python.org/downloads/macos/.&lt;br /&gt;
&lt;br /&gt;
Parsiųsti ir įdiegti Visual Studio Code kodo redaktorių galima iš https://code.visualstudio.com/Download&lt;br /&gt;
&lt;br /&gt;
=== Pirmas paleidimas ===&lt;br /&gt;
Windows operacinėse sistemose Visual Studio Code kodo redaktorių gali paleisti paspaudžiant ant darbalaukio atsiradusios ikonėlės.&lt;br /&gt;
&lt;br /&gt;
[[Vaizdas:Vadovelis 1Sk 5.jpg|miniatiūra]]&lt;br /&gt;
&lt;br /&gt;
Pirmo paleidimo metu programa atliks reikiamus konfigūravimo veiksmus, kad būtų galima pilnai naudotis reikiamais įskiepiais. Todėl pirmo paleidimo metu reikia palaukti kelias minuites kol konfigūravimas bus baigtas.&lt;br /&gt;
&lt;br /&gt;
==== Pirmosios programos sukūrimas ====&lt;br /&gt;
Sukurti pirmąją programą gali vykdydamas šiuos žingsnius Visual Studio Code redaktoriuje&lt;br /&gt;
1. Meniu pasirink Failas &amp;gt;&amp;gt; Atverti aplanką&lt;br /&gt;
&lt;br /&gt;
2. Pasirink ar susikurk aplanką kuriame laikysi Python programų kodo failus.&lt;br /&gt;
&lt;br /&gt;
3. Skyriuje '''NARŠYKLĖ''' prie aplanko paspausk ant naujo failo ikonėlės.&lt;br /&gt;
&lt;br /&gt;
[[Vaizdas:Vadovelis 1Sk 6.jpg|frame|center]]&lt;br /&gt;
&lt;br /&gt;
4. Pavadink failą &amp;quot;Sveikas.py&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. Automatiškai atsivers failo redagavimo langas. Jame įrašyk&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Sveikas, pasauli!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. Paspausk klavišus ctrl + F5, kad paleistum programą&lt;br /&gt;
&lt;br /&gt;
7. Apatinėje skiltyje išvysi programos vykdymo langą, kur matysi ir savo programos vykdymo rezultatą:&lt;br /&gt;
&lt;br /&gt;
[[Vaizdas:Vadovelis 1Sk 7.jpg|frame|kairėje]]&lt;br /&gt;
&lt;br /&gt;
Tokiu pat principu galėsi kurti ir kitas programas.&lt;br /&gt;
&lt;br /&gt;
==== Programų failų pavadinimai ====&lt;br /&gt;
 Kuriant naujus Python kodo failus labai naudinga laikytis taisyklių, pavadinant savo programas. Nesilaikant šių taisyklių gali atsitkti taip kad programa &amp;quot;netikėtai&amp;quot; neveiks.&lt;br /&gt;
# Visada naudok failo plėtinį &amp;lt;tt&amp;gt;.py&amp;lt;/tt&amp;gt;.&lt;br /&gt;
# Naudok vieintelį tašką - plėtinio atskyrimui&lt;br /&gt;
# Naudok tik: raides, skaičius, brūkšnį (&amp;lt;tt&amp;gt;-&amp;lt;/tt&amp;gt;) ir pabraukimo simbolį (&amp;lt;tt&amp;gt;_&amp;lt;/tt&amp;gt;)&lt;br /&gt;
# Nenaudok tarpų (zodziams atskirti galima naudoti pabraukimo simbolį (&amp;lt;tt&amp;gt;_&amp;lt;/tt&amp;gt;).&lt;br /&gt;
# Failo pavadinimas turi prasidėti raide&lt;br /&gt;
# Nenaudok standartinių Python modulių pavadinimų (pvz. &amp;lt;tt&amp;gt;print.py&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;math.py&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;list.py&amp;lt;/tt&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
=== Python paleidimas per komandinę eilutę ===&lt;br /&gt;
Python programinį kodą galima vykdyti ir naudojant komandinę eilutę. Sukūrus failą su programos kodu ją įvykdyti galima komandinėj eilutėj vykdant komandą: &amp;lt;code&amp;gt;python ''programos_pavadinimas''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Vaizdas:Vadovelis 1Sk 8.jpg|frame|kairėje]]&lt;/div&gt;</summary>
		<author><name>Juratevalat</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/%C4%AEvadas&amp;diff=3814</id>
		<title>Python Vadovėlis/Įvadas</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/%C4%AEvadas&amp;diff=3814"/>
		<updated>2022-01-30T13:42:08Z</updated>

		<summary type="html">&lt;p&gt;Juratevalat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{navigation |previous=Įžanga |next=Labas, Pasauli}}&lt;br /&gt;
&lt;br /&gt;
=== Įvadas ===&lt;br /&gt;
Šis vadovėlis skirtas visiems norintiems išmokti Python: tiek pirmą kartą bandantiems programuoti, tiek bandžiusiems programuoti kitomis programavimo kalbomis ir norintiems išmokti Python, tiek jau pramokusiems Python, bei norintiems praplėsti žinias.&lt;br /&gt;
&lt;br /&gt;
Tėra vienintelis būdas išmokti programuoti. '''Tu''' turi skaityti ''kodą'' ir rašyti ''kodą''.&lt;br /&gt;
Vadovėlyje parodysiu tau daug kodo. Bandyk vykdyti šį kodą kompiuteriu ir išbandyti pats kaip jis veikia. Ekperimentuok ir bandyk daryti pakeitimus. Nebijok kažką sugandinti, blogiausiu atveju tavo kodas tiesiog neveiks. Kai aš pats rašysiu kodą knygoje, jį suformatuoju šitaip:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Python kalbą lengva išmokti&lt;br /&gt;
print(&amp;quot;Sveikas, pasauli!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Šitaip lengvai atskirsi kodo pavyzdžius nuo teksto. Jei skaitai internetinį knygos variantą, tai gali atkreipti dėmesį į kodo spalvą - ji kitokia, tam kad tam tikros kodo dalys išsiskirtų. Tau vedant kodą kompiuteriu redagavimo programa jį gali nuspalvinti kitokiomis spalvomis arba iš viso nenuspalvinti. Kodo nuspalvinimas gali skirtis, bet jei įvesi kodą, taip kaip nurodyta pavyzdžiuose jis veiks taip kaip ir aprašyta vadovėlyje.&lt;br /&gt;
&lt;br /&gt;
Pavyzdžiui, vykdant anksčiau parašytą kodo pavyzdį kompiuteris ekrane išves tokį tekstą:&lt;br /&gt;
&lt;br /&gt;
 Sveikas, pasauli!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Šis vadovėlis skirtas Python 3 versijai. Bandant kodo pavyzdžius vykdyti su Python 2.7 ir ankstesnėmis versijomis jis gali neveikti. Skirtumai tarp Python 2 ir 3 versijos nėra itin dideli, tad išmokęs Python 3 galėsi be didelių pastangų skaityti ir ankstenėms versijoms skirtą kodą.&lt;br /&gt;
&lt;br /&gt;
Pavyzdžiuose dažnai parodysiu programos vykdymo metu tavo įvedamą tekstą (jis bus '''paryškintas''') ir programos į ekraną išvedamą tekstą. Pavyzdžiui:&lt;br /&gt;
&lt;br /&gt;
 Stok!&lt;br /&gt;
 Kas eina? '''Benas'''&lt;br /&gt;
 Benai, gali eiti toliau&lt;br /&gt;
&lt;br /&gt;
Tau taip pat vadovėluyje tave supažindinsiu su programavimo terminologiją. Tai ne tik tau padės suprasti ne tik apie ką kalba programuotojai, bet ir padės mokytis.&lt;br /&gt;
&lt;br /&gt;
Kad galėtum pradėti kurti Python programas tau reikės Python 3 programinės įrangos, bei kodo redaktoriaus. Rekomenduojame naudoti &amp;quot;LR NŠA Python&amp;quot; diegimo programą, kurią gali parsisiųsti iš https://www.visma.lt/python-diegimas/. Ši diegimo programa įdiegs Python interpretatorių, Visual Studio Code kodo redaktorių, bei sukonfiguruos tavo kompiuterį, kad galėtum iš karto rašyti ir vykdyti kodą.&lt;br /&gt;
&lt;br /&gt;
=== Python ir Visual Studio Code diegimas ===&lt;br /&gt;
==== Diegimas Windows operacinėse sistemose ====&lt;br /&gt;
LR NŠA Python diegimo programa yra skirta Windows operacinės sistemos naudotojams.&lt;br /&gt;
&lt;br /&gt;
1. Parsisiųsk diegimo programą iš https://www.visma.lt/python-diegimas/. Rekomeduojama rinktis 64 bitų versiją, nebent naudoji 32 bitų operacinės sistemą.&lt;br /&gt;
&lt;br /&gt;
2. Paleisk parsisiųstą programą&lt;br /&gt;
&lt;br /&gt;
3. Atsivers diegimo programos langas. Kad pradėtum diegimą spausk mygtuką '''Next'''.&lt;br /&gt;
&lt;br /&gt;
[[Vaizdas:Vadovelis 1Sk 1.jpg|frame|center]]&lt;br /&gt;
&lt;br /&gt;
4. Atsivers naujas langas, kuriame galima pasirinkti kokias dalis norima įdiegti. Rekomenduojama nieko nekeisti ir spausti mygtuką '''Install'''.&lt;br /&gt;
&lt;br /&gt;
[[Vaizdas:Vadovelis 1Sk 2.jpg|frame|center]]&lt;br /&gt;
&lt;br /&gt;
5. Palauk kol baigsis diegimas&lt;br /&gt;
6. Baigus diegimą pamtysi langą su pirmo paleidimo instrukcijomis. Šiame lange paspausk mygtuką '''OK'''.&lt;br /&gt;
&lt;br /&gt;
[[Vaizdas:Vadovelis 1Sk 3.jpg|frame|center]]&lt;br /&gt;
&lt;br /&gt;
7. Paspausk mygtuką '''Finish''', kad užbaigtum diegimą.&lt;br /&gt;
&lt;br /&gt;
[[Vaizdas:Vadovelis 1Sk 4.jpg|frame|center]]&lt;br /&gt;
&lt;br /&gt;
==== Linux, BSD, bei Unix operacinėse sistemose ====&lt;br /&gt;
Jei naudoji ne windows operacinę sistemą Python ir kodo redaktorių reikės įsidiegti atskirai.&lt;br /&gt;
Linux, BSD, bei Unix operacinėse sistemose Python dažnai bus įdiegtas kartu su operacine sistema. Patikrinti ar Python įdiegtas ir kuri versija įdiegta galima įvykdžius komandą:&lt;br /&gt;
&lt;br /&gt;
 python3 --version&lt;br /&gt;
&lt;br /&gt;
Jei Python nėra įdiegtas, tai jį įsidiegti galima naudojantis instrukcija anglų kalba: https://docs.python-guide.org/starting/install3/linux/&lt;br /&gt;
&lt;br /&gt;
Parsiųsti ir įdiegti Visual Studio Code kodo redaktorių galima iš https://code.visualstudio.com/Download&lt;br /&gt;
 &lt;br /&gt;
==== Mac operacinėse sistemose ====&lt;br /&gt;
Nuo Mac OS X Tiger (10.4) versijos, Python 2 yra instaliuojama kartu su operacine sistema. Tad Python 3 reikia įdiegti atskirai (Nebent vėlesnėse versijose pasikeis su operacine sistema diegiamo Python versija). Parsisiųsti Python 3 MAC operacinėms sistemoms galima iš https://www.python.org/downloads/macos/.&lt;br /&gt;
&lt;br /&gt;
Parsiųsti ir įdiegti Visual Studio Code kodo redaktorių galima iš https://code.visualstudio.com/Download&lt;br /&gt;
&lt;br /&gt;
=== Pirmas paleidimas ===&lt;br /&gt;
Windows operacinėse sistemose Visual Studio Code kodo redaktorių gali paleisti paspaudžiant ant darbalaukio atsiradusios ikonėlės.&lt;br /&gt;
&lt;br /&gt;
[[Vaizdas:Vadovelis 1Sk 5.jpg|miniatiūra]]&lt;br /&gt;
&lt;br /&gt;
Pirmo paleidimo metu programa atliks reikiamus konfigūravimo veiksmus, kad būtų galima pilnai naudotis reikiamais įskiepiais. Todėl pirmo paleidimo metu reikia palaukti kelias minuites kol konfigūravimas bus baigtas.&lt;br /&gt;
&lt;br /&gt;
==== Pirmosios programos sukūrimas ====&lt;br /&gt;
Sukurti pirmąją programą gali vykdydamas šiuos žingsnius Visual Studio Code redaktoriuje&lt;br /&gt;
1. Meniu pasirink Failas &amp;gt;&amp;gt; Atverti aplanką&lt;br /&gt;
&lt;br /&gt;
2. Pasirink ar susikurk aplanką kuriame laikysi Python programų kodo failus.&lt;br /&gt;
&lt;br /&gt;
3. Skyriuje '''NARŠYKLĖ''' prie aplanko paspausk ant naujo failo ikonėlės.&lt;br /&gt;
&lt;br /&gt;
[[Vaizdas:Vadovelis 1Sk 6.jpg|frame|center]]&lt;br /&gt;
&lt;br /&gt;
4. Pavadink failą &amp;quot;Sveikas.py&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. Automatiškai atsivers failo redagavimo langas. Jame įrašyk&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Sveikas, pasauli!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. Paspausk klavišus ctrl + F5, kad paleistum programą&lt;br /&gt;
&lt;br /&gt;
7. Apatinėje skiltyje išvysi programos vykdymo langą, kur matysi ir savo programos vykdymo rezultatą:&lt;br /&gt;
&lt;br /&gt;
[[Vaizdas:Vadovelis 1Sk 7.jpg|frame|kairėje]]&lt;br /&gt;
&lt;br /&gt;
Tokiu pat principu galėsi kurti ir kitas programas.&lt;br /&gt;
&lt;br /&gt;
==== Programų failų pavadinimai ====&lt;br /&gt;
 Kuriant naujus Python kodo failus labai naudinga laikytis taisyklių, pavadinant savo programas. Nesilaikant šių taisyklių gali atsitkti taip kad programa &amp;quot;netikėtai&amp;quot; neveiks.&lt;br /&gt;
# Visada naudok failo plėtinį &amp;lt;tt&amp;gt;.py&amp;lt;/tt&amp;gt;.&lt;br /&gt;
# Naudok vieintelį tašką - plėtinio atskyrimui&lt;br /&gt;
# Naudok tik: raides, skaičius, brūkšnį (&amp;lt;tt&amp;gt;-&amp;lt;/tt&amp;gt;) ir pabraukimo simbolį (&amp;lt;tt&amp;gt;_&amp;lt;/tt&amp;gt;)&lt;br /&gt;
# Nenaudok tarpų (zodziams atskirti galima naudoti pabraukimo simbolį (&amp;lt;tt&amp;gt;_&amp;lt;/tt&amp;gt;).&lt;br /&gt;
# Failo pavadinimas turi prasidėti raide&lt;br /&gt;
# Nenaudok standartinių Python modulių pavadinimų (pvz. &amp;lt;tt&amp;gt;print.py&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;math.py&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;list.py&amp;lt;/tt&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
=== Python paleidimas per komandinę eilutę ===&lt;br /&gt;
Python programinį kodą galima vykdyti ir naudojant komandinę eilutę. Sukūrus failą su programos kodu ją įvykdyti galima komandinėj eilutėj vykdant komandą: &amp;lt;code&amp;gt;python ''programos_pavadinimas''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Vaizdas:Vadovelis 1Sk 8.jpg|frame|kairėje]]&lt;/div&gt;</summary>
		<author><name>Juratevalat</name></author>
	</entry>
</feed>