<?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=Art%C5%ABras</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=Art%C5%ABras"/>
	<link rel="alternate" type="text/html" href="https://wiki.angis.net/w/Specialus:Ind%C4%97lis/Art%C5%ABras"/>
	<updated>2026-05-03T09:13:33Z</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/Kas_%C4%8Dia_eina%3F&amp;diff=4267</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=4267"/>
		<updated>2022-08-11T10:46:53Z</updated>

		<summary type="html">&lt;p&gt;Artūras: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{navigation |previous=Labas, Pasauli |next=Suskaičiuoti iki 10}}&lt;br /&gt;
{{BookCat}}&lt;br /&gt;
&lt;br /&gt;
=== Įvestis ir kintamieji ===&lt;br /&gt;
&lt;br /&gt;
[[Vaizdas:Kintamieji.png|600px|frameless|center|Kintamieji]]&lt;br /&gt;
&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? '''Benas'''&lt;br /&gt;
 Gali praeiti, Benas&lt;br /&gt;
&lt;br /&gt;
''Pastaba: Jei paleisi kodą spausdamas &amp;quot;F5&amp;quot;, Python išvestis bus tik tokia:''&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 [http://www.ims.mii.lt/EK%C5%BD/enciklo.html?word=apvalkalas apvalkalą] 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;Benas&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 Benas&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;Benas&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;Benas&amp;quot;&amp;lt;/code&amp;gt; ir perskaitys ją kaip &amp;quot;Padėk tekstą &amp;lt;code&amp;gt;Benas&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;
=== Pratimai ===&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>Artūras</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Vaizdas:Kintamieji.png&amp;diff=4266</id>
		<title>Vaizdas:Kintamieji.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Vaizdas:Kintamieji.png&amp;diff=4266"/>
		<updated>2022-08-11T10:46:32Z</updated>

		<summary type="html">&lt;p&gt;Artūras: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Kintamieji&lt;/div&gt;</summary>
		<author><name>Artūras</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Ciklai_For&amp;diff=4265</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=4265"/>
		<updated>2022-08-11T10:45:34Z</updated>

		<summary type="html">&lt;p&gt;Artūras: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{navigation |previous=Sąrašai |next=Loginiai reiškiniai}}&lt;br /&gt;
&lt;br /&gt;
{{BookCat}}&lt;br /&gt;
&lt;br /&gt;
=== Ciklas &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
[[Vaizdas:Ciklai.png|600px|frameless|center|Ciklai]]&lt;br /&gt;
&lt;br /&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ą (proceso kartojimas skirtas rezultatų sekos generavimui). 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;
&lt;br /&gt;
=== Sąrašų rūšiavimas ===&lt;br /&gt;
&lt;br /&gt;
Ciklas &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; taip pat dažnai naudojamas sąrašų rūšiavimo užduotyse. Paprastų sąrašų, kurie yra sudaryti iš skaičių ar eilučių, rūšiavimui gali naudoti funkciją &amp;lt;code&amp;gt;sort&amp;lt;/code&amp;gt;, kuri buvo paminėta prieš tai skaitytame skyriuje. Tačiau gali susidurti su situacijomis, kai ši funkcija yra nepakankama. Egzistuoja daug rūšiavimo algoritmų, tačiau čia išmoksi vieną paprasčiausių iš jų - burbuliuko algoritmą (angl. bubble sort).&lt;br /&gt;
&lt;br /&gt;
Algoritmo idėja yra tokia, kad iš kairės į dešinę lyginame gretimų elementų poras ir sukeičiame elementus vietomis, jei pirmasis yra didesnis už antrąjį. Kiekvienos iteracijos metu, didžiausias nesurūšiuotas elementas juda link sąrašo galo. Toks judėjimas primena burbuliukų vandenyje judėjimą į paviršių, iš ko ir kilo algoritmo pavadinimas. Iteracijos kartojamos tol, kol visi elementai yra savo vietose.&lt;br /&gt;
&lt;br /&gt;
[[Vaizdas:1 iteracija.png|miniatiūra]]&lt;br /&gt;
Pavyzdžiui, surūšiuokime jau prieš tai naudotą sąrašą [42, 7, 0, 123].&lt;br /&gt;
&lt;br /&gt;
'''Pirma iteracija:'''&lt;br /&gt;
* Lyginami pirmi du elementai. Antrasis yra didesnis už pirmąjį, todėl elementai pakeičiami vietomis.&lt;br /&gt;
* Lyginami antras ir trečias elementai. Trečiasis yra didesnis už antrąjį, todėl elementai pakeičiami vietomis.&lt;br /&gt;
* Lyginami paskutiniai du elementai. Jie yra išdėstyti tinkamai, todėl nėra pakeičiami vietomis.&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Vaizdas:2 iteracija.png|miniatiūra]]&lt;br /&gt;
'''Antra iteracija:'''&lt;br /&gt;
* Lyginami pirmi du elementai. Antrasis yra didesnis už pirmąjį, todėl elementai pakeičiami vietomis.&lt;br /&gt;
* Lyginami antras ir trečias elementai. Jie yra išdėstyti tinkamai, todėl nėra pakeičiami vietomis.&lt;br /&gt;
* Lyginami paskutiniai du elementai. Jie yra išdėstyti tinkamai, todėl nėra pakeičiami vietomis.&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;
[[Vaizdas:3 iteracija.png|miniatiūra]]&lt;br /&gt;
'''Trečia iteracija:'''&lt;br /&gt;
* Elementai išdėstyti tinkamai.&lt;br /&gt;
* Elementai išdėstyti tinkamai.&lt;br /&gt;
* Elementai išdėstyti tinkamai.&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
Trečios iteracijos metu algoritmas neatlieka jokių pakeitimų, tad nustatoma, kad sąrašas yra surūšiuotas, algoritmas baigtas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Algoritmo kodą galima užrašyti taip:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def burbuliukoRūšiavimas(sąrašas):&lt;br /&gt;
    sąrašoIlgis = len(sąrašas)&lt;br /&gt;
    # Maksimalus iteracijų skaičius - sąrašo ilgis - 1 elementas&lt;br /&gt;
    for i in range(sąrašoIlgis  - 1): &lt;br /&gt;
        arBuvoPakeitimų = 0&lt;br /&gt;
        # Kiekvienoje iteracijoje lyginami visi elementai&lt;br /&gt;
        for j in range(sąrašoIlgis - 1): &lt;br /&gt;
            if sąrašas[j] &amp;gt; sąrašas[j + 1]:&lt;br /&gt;
                # Sukuriame laikiną elementą, kuris saugo pirmąjį lyginamą elementą&lt;br /&gt;
                laikinasElementas = sąrašas[j]&lt;br /&gt;
                # Pirmąjam elementui priskiriame antro elemento reikšmę&lt;br /&gt;
                sąrašas[j] = sąrašas[j + 1]&lt;br /&gt;
                # Antrajam elementui priskiriame laikino elemento reikšmę, kuri yra lygi buvusiam pirmąjam elementui&lt;br /&gt;
                sąrašas[j + 1] = laikinasElementas&lt;br /&gt;
                # Pasižymime, kad iteracijos metu buvo padaryti pakeitimai, taigi reikės papildomų iteracijų&lt;br /&gt;
                arBuvoPakeitimų = 1&lt;br /&gt;
        # Jei visos iteracijos metu nebuvo nei vieno pakeitimo, algoritmas baigiamas&lt;br /&gt;
        if arBuvoPakeitimų == 0:&lt;br /&gt;
            break&lt;br /&gt;
    return sąrašas&lt;br /&gt;
&lt;br /&gt;
rezultatas = burbuliukoRūšiavimas([42, 7, 0, 123])&lt;br /&gt;
&lt;br /&gt;
print (rezultatas)&lt;br /&gt;
&amp;lt;/syntaxhighlight &amp;gt;&lt;br /&gt;
&lt;br /&gt;
Programos išvestis: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[0, 7, 42, 123]&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pratimai ===&lt;br /&gt;
Sukurk naują sarašą, kuris turėtų tik skaičiaus 3 daliklius (skaičius turi dalintis iš 3) iš 'x' sąrašo ir tik skaičiaus 5 daliklius iš 'y' sąrašo.&lt;br /&gt;
&lt;br /&gt;
x = [1,2,3,4,5,6,7,8,9,10]&lt;br /&gt;
&lt;br /&gt;
y = [11,12,13,14,15,16,17,18,19,20]&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;
x = [1,2,3,4,5,6,7,8,9,10]&lt;br /&gt;
y = [11,12,13,14,15,16,17,18,19,20]&lt;br /&gt;
c = []&lt;br /&gt;
for i in x:&lt;br /&gt;
	if i % 3 == 0:&lt;br /&gt;
		c.append(i)&lt;br /&gt;
for i in y:&lt;br /&gt;
	if i % 5 == 0:&lt;br /&gt;
		c.append(i)&lt;br /&gt;
print(c)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Parašyk programą, kuri atspausdintų eglutę, pagal vartotojo įvesta eglutės aukštį.&lt;br /&gt;
&lt;br /&gt;
Pvz. Įvestis = 3&lt;br /&gt;
&lt;br /&gt;
Išvestis:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
**&lt;br /&gt;
***&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;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 spausdintiEglutę(aukstis):&lt;br /&gt;
    for i in range(1, aukstis + 1):&lt;br /&gt;
        print('*'*i)&lt;br /&gt;
&lt;br /&gt;
spausdintiEglutę(3)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&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>Artūras</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Vaizdas:Ciklai.png&amp;diff=4264</id>
		<title>Vaizdas:Ciklai.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Vaizdas:Ciklai.png&amp;diff=4264"/>
		<updated>2022-08-11T10:45:10Z</updated>

		<summary type="html">&lt;p&gt;Artūras: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ciklai&lt;/div&gt;</summary>
		<author><name>Artūras</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Labas,_Pasauli&amp;diff=4263</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=4263"/>
		<updated>2022-08-11T10:37:00Z</updated>

		<summary type="html">&lt;p&gt;Artūras: /* Pratimai */&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;
&lt;br /&gt;
{{navigation |previous=Įvadas |next=Kas čia eina?}}&lt;br /&gt;
&lt;br /&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 „Labas, Pasauli!“ arba angliškai „Hello, World!“.&lt;br /&gt;
&lt;br /&gt;
[[Vaizdas:Labas, pasauli.png|600px|frameless|center]]&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 rekomenduoju naudoti kodo redaktorių &amp;lt;code&amp;gt;LR NŠA Python&amp;lt;/code&amp;gt;, kaip aprašytą skyriuje [[Python Vadovėlis/Įvadas#Python_ir_Visual_Studio_Code_diegimas|Python ir Visual Studio Code diegimas]]. Savo kompiuteryje atsidaryk šią programavimo aplinką, sukurk naują failą (File -&amp;gt; New File arba Failas -&amp;gt; Naujas failas), įkopijuok šį kodą ir tuomet failą išsaugok (File -&amp;gt; Save arba Failas -&amp;gt; Išsaugoti) pavadinimu &amp;lt;code&amp;gt;labas.py&amp;lt;/code&amp;gt;.&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;
 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;labas.py&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Dabar parašytą programą paleisk vykdyti, tiesiog konsolėje parašęs &amp;lt;code&amp;gt;python3 labas.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;
=== Eime toliau ===&lt;br /&gt;
&lt;br /&gt;
Labai rekomenduoju 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;Gyveno kadaise Paryžiuj bobutė –&amp;quot;)&lt;br /&gt;
print(&amp;quot;Prie Eifelio bokšto turėjo ji butą.&amp;quot;)&lt;br /&gt;
print(&amp;quot;Ji visko pasauly klausytis norėjo,&amp;quot;)&lt;br /&gt;
print(&amp;quot;Bet viena kairiąja ausim tegirdėjo.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kai paleidi šią programą, ji parašo J. Erlicko eilėraščio Bobutė iš Paryžiaus (2) ištrauką:&lt;br /&gt;
&lt;br /&gt;
 Gyveno kadaise Paryžiuj bobutė –&lt;br /&gt;
 Prie Eifelio bokšto turėjo ji butą.&lt;br /&gt;
 Ji visko pasauly klausytis norėjo,&lt;br /&gt;
 Bet viena kairiąja ausim tegirdėjo.&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;Gyveno kadaise Paryžiuj bobutė –&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;
 Gyveno kadaise Paryžiuj bobutė –&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;Prie Eifelio bokšto turėjo ji butą.&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;
 Prie Eifelio bokšto turėjo ji butą.&lt;br /&gt;
&lt;br /&gt;
Taip kompiuteris žiūri į kiekvieną eilutę *iš eilės*, ir ją įvykdęs - 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, angliškai 'string'). Kitas tekstinės reikšmės pavyzdys yra &amp;lt;code&amp;gt;&amp;quot;Gyveno kadaise Paryžiuj bobutė&amp;quot;&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Užrašyta funkcija su argumentais yra komanda, kurią 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, komandą 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;
====Ženklo \n naudojimas====&lt;br /&gt;
&amp;lt;code&amp;gt;\n&amp;lt;/code&amp;gt; (kaitos ženklas, angliškai - 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;
# Atkreipk dėmesį, python'e aritmetikoje skaičiai po kablelio rašomi su tašku (.)&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š kairė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'o 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;liekana&amp;quot;, 13 % 3)&lt;br /&gt;
print()&lt;br /&gt;
print(&amp;quot;Penktoji klasė&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 liekana 1&lt;br /&gt;
 &lt;br /&gt;
 Penktoji klasė&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;
1. Parašyk programą, kuri atspausdintų tavo vardą, pavardę ir gimtadienį kaip atskiras eilutes.&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;
&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;1815 m. gruodžio 10 d.&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;1879 m. kovo 14 d.&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;Styvas Džobsas&amp;quot;), (&amp;quot;gimęs&amp;quot;), (&amp;quot;1955 m. vasario 24 d.&amp;quot;))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&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;
&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;
&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>Artūras</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Labas,_Pasauli&amp;diff=4262</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=4262"/>
		<updated>2022-08-11T10:34:47Z</updated>

		<summary type="html">&lt;p&gt;Artūras: /* Spausdinimas */&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;
&lt;br /&gt;
{{navigation |previous=Įvadas |next=Kas čia eina?}}&lt;br /&gt;
&lt;br /&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 „Labas, Pasauli!“ arba angliškai „Hello, World!“.&lt;br /&gt;
&lt;br /&gt;
[[Vaizdas:Labas, pasauli.png|600px|frameless|center]]&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 rekomenduoju naudoti kodo redaktorių &amp;lt;code&amp;gt;LR NŠA Python&amp;lt;/code&amp;gt;, kaip aprašytą skyriuje [[Python Vadovėlis/Įvadas#Python_ir_Visual_Studio_Code_diegimas|Python ir Visual Studio Code diegimas]]. Savo kompiuteryje atsidaryk šią programavimo aplinką, sukurk naują failą (File -&amp;gt; New File arba Failas -&amp;gt; Naujas failas), įkopijuok šį kodą ir tuomet failą išsaugok (File -&amp;gt; Save arba Failas -&amp;gt; Išsaugoti) pavadinimu &amp;lt;code&amp;gt;labas.py&amp;lt;/code&amp;gt;.&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;
 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;labas.py&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Dabar parašytą programą paleisk vykdyti, tiesiog konsolėje parašęs &amp;lt;code&amp;gt;python3 labas.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;
=== Eime toliau ===&lt;br /&gt;
&lt;br /&gt;
Labai rekomenduoju 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;Gyveno kadaise Paryžiuj bobutė –&amp;quot;)&lt;br /&gt;
print(&amp;quot;Prie Eifelio bokšto turėjo ji butą.&amp;quot;)&lt;br /&gt;
print(&amp;quot;Ji visko pasauly klausytis norėjo,&amp;quot;)&lt;br /&gt;
print(&amp;quot;Bet viena kairiąja ausim tegirdėjo.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kai paleidi šią programą, ji parašo J. Erlicko eilėraščio Bobutė iš Paryžiaus (2) ištrauką:&lt;br /&gt;
&lt;br /&gt;
 Gyveno kadaise Paryžiuj bobutė –&lt;br /&gt;
 Prie Eifelio bokšto turėjo ji butą.&lt;br /&gt;
 Ji visko pasauly klausytis norėjo,&lt;br /&gt;
 Bet viena kairiąja ausim tegirdėjo.&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;Gyveno kadaise Paryžiuj bobutė –&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;
 Gyveno kadaise Paryžiuj bobutė –&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;Prie Eifelio bokšto turėjo ji butą.&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;
 Prie Eifelio bokšto turėjo ji butą.&lt;br /&gt;
&lt;br /&gt;
Taip kompiuteris žiūri į kiekvieną eilutę *iš eilės*, ir ją įvykdęs - 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, angliškai 'string'). Kitas tekstinės reikšmės pavyzdys yra &amp;lt;code&amp;gt;&amp;quot;Gyveno kadaise Paryžiuj bobutė&amp;quot;&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Užrašyta funkcija su argumentais yra komanda, kurią 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, komandą 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;
====Ženklo \n naudojimas====&lt;br /&gt;
&amp;lt;code&amp;gt;\n&amp;lt;/code&amp;gt; (kaitos ženklas, angliškai - 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;
# Atkreipk dėmesį, python'e aritmetikoje skaičiai po kablelio rašomi su tašku (.)&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š kairė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'o 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;liekana&amp;quot;, 13 % 3)&lt;br /&gt;
print()&lt;br /&gt;
print(&amp;quot;Penktoji klasė&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 liekana 1&lt;br /&gt;
 &lt;br /&gt;
 Penktoji klasė&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ą, pavardę ir gimtadienį kaip atskiras eilutes.&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ą, pavardę ir gimtadienį kaip atskiras eilutes.&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;1815 m. gruodžio 10 d.&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;1879 m. kovo 14 d.&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;Styvas Džobsas&amp;quot;), (&amp;quot;gimęs&amp;quot;), (&amp;quot;1955 m. vasario 24 d.&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.C4.97s_operacijos|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>Artūras</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Vaizdas:Labas,_pasauli.png&amp;diff=4261</id>
		<title>Vaizdas:Labas, pasauli.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Vaizdas:Labas,_pasauli.png&amp;diff=4261"/>
		<updated>2022-08-11T10:34:29Z</updated>

		<summary type="html">&lt;p&gt;Artūras: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Labas, pasauli&lt;/div&gt;</summary>
		<author><name>Artūras</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/%C4%AEvadas&amp;diff=4260</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=4260"/>
		<updated>2022-08-11T10:32:45Z</updated>

		<summary type="html">&lt;p&gt;Artūras: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{navigation |previous=Įžanga |next=Labas, Pasauli}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Įvadas ===&lt;br /&gt;
&lt;br /&gt;
[[Vaizdas:Įvadas.png|600px|frameless|center]]&lt;br /&gt;
&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 jį vykdyti kompiuteriu ir pats išbandyti kaip jis veikia. Eksperimentuok 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ą – paprastą tekstą – 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 ankstesnė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 sukonfigūruos 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/. Rekomenduojama 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ą pamatysi 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;
==== Diegimas 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ų Linux operacinei sistemai galima iš https://code.visualstudio.com/Download&lt;br /&gt;
 &lt;br /&gt;
==== Diegimas 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 tam tikrų taisyklių, parenkant failų pavadinimus. Nesilaikant šių taisyklių gali atsitikti 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 vienintelį 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ų (žodziams atskirti galima naudoti pabraukimo simbolį (&amp;lt;tt&amp;gt;_&amp;lt;/tt&amp;gt;).&lt;br /&gt;
# Failo pavadinimą pradėk raide&lt;br /&gt;
# Nenaudok standartinių Python komandų 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;br /&gt;
&lt;br /&gt;
{{navigation |previous=Įžanga |next=Labas, Pasauli}}&lt;/div&gt;</summary>
		<author><name>Artūras</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Vaizdas:%C4%AEvadas.png&amp;diff=4259</id>
		<title>Vaizdas:Įvadas.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Vaizdas:%C4%AEvadas.png&amp;diff=4259"/>
		<updated>2022-08-11T10:30:17Z</updated>

		<summary type="html">&lt;p&gt;Artūras: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sveikas Pasaulį&lt;/div&gt;</summary>
		<author><name>Artūras</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/%C4%AE%C5%BEanga&amp;diff=4258</id>
		<title>Python Vadovėlis/Įžanga</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/%C4%AE%C5%BEanga&amp;diff=4258"/>
		<updated>2022-08-11T10:17:36Z</updated>

		<summary type="html">&lt;p&gt;Artūras: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{navigation |previous=Autoriai|next=Įvadas}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Visi pavyzdiniai Python kodai šiame vadovėlyje yra skirti viešam naudojimui (angl. public domain). Jūs galite bet kaip keisti ir platinti modifikuotus kodus, naudojant bet kokią norimą licenciją (nebūtinai Creative Commons Attribution-ShareAlike).  &lt;br /&gt;
&lt;br /&gt;
Šis vadovėlis sukurtas knygos &amp;quot;Non-Programmer's Tutorial for Python&amp;quot; pagrindu. Panašūs vertimai sukurti anglų, korėjiečių, ispanų, italų, graikų ir kitomis kalbomis, žr. [http://jjc.freeshell.org/easytut/ http://jjc.freeshell.org/easytut/]  &lt;br /&gt;
&lt;br /&gt;
Šis vadovėlis yra įvadas į Python programavimo kalbą. Skirtas neturintiems ar turintiems kiek mažiau programavimo žinių.&lt;br /&gt;
&lt;br /&gt;
Tokiu atveju, jeigu jau esi programavęs kokia nors kita programavimo kalba ir ją esi gerai įvaldęs, vietoje šio vadovėlio siūlau kitą resursą - [https://docs.python.org/3/tutorial/index.html Python Tutorial for Programmers], kurį parašė Gvidas van Rosumas (Guido van Rossum).  &lt;br /&gt;
&lt;br /&gt;
Jei turi klausimų ar komentarų, naudokis šio portalo diskusijų puslapiais, arba susisiek su [https://wiki.angis.net/w/Python_Vadovėlis/Autoriai autoriais]. Visi klausimai ir pasiūlymai labai laukiami. Bandysime atsakyti kaip įmanoma greičiau.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Kiti resursų puslapiai (anglų kalba) ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.python.org Python Home Page]&lt;br /&gt;
* [https://docs.python.org/3/ Python 3 Documentation]&lt;br /&gt;
* [http://www.swaroopch.com/notes/python A Byte of Python by Swaroop C H]&lt;br /&gt;
* [http://python3porting.com/ Porting to Python 3: An in-depth guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Autoriai|next=Įvadas}}&lt;/div&gt;</summary>
		<author><name>Artūras</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/%C5%BDodynai&amp;diff=4204</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=4204"/>
		<updated>2022-08-04T10:59:50Z</updated>

		<summary type="html">&lt;p&gt;Artūras: /* Pratimai */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{navigation |previous=Loginiai reiškiniai |next=Modulių naudojimas}}&lt;br /&gt;
&lt;br /&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, pateiktu 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;
=== Pratimai ===&lt;br /&gt;
Parašyk balsų skaičiavimo programą, kurioje tu vedi vardus tol, kol yra įvedamas žodis &amp;quot;pabaiga&amp;quot;. Tada programa išveda, visus vardus ir kiek kartų jis buvo įvestas.&lt;br /&gt;
&lt;br /&gt;
Įvesits:&lt;br /&gt;
&lt;br /&gt;
Benas, Liepa, Benas, Benas, Benas, Jonas, Liepa&lt;br /&gt;
&lt;br /&gt;
Išvestis:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
Benas 4&lt;br /&gt;
Liepa 2&lt;br /&gt;
Jonas 1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&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;
balsai = dict()&lt;br /&gt;
vardas = str()&lt;br /&gt;
&lt;br /&gt;
def Balsuoti(naujasBalsas, balsai):&lt;br /&gt;
    if naujasBalsas in balsai:&lt;br /&gt;
        balsai[naujasBalsas] += 1&lt;br /&gt;
    else:&lt;br /&gt;
        if naujasBalsas != &amp;quot;Pabaiga&amp;quot;:&lt;br /&gt;
            balsai[naujasBalsas] = 1&lt;br /&gt;
&lt;br /&gt;
while vardas != &amp;quot;Pabaiga&amp;quot;:&lt;br /&gt;
    print(&amp;quot;Įrašyk vardą ir spausk 'enter' klavišą&amp;quot;)&lt;br /&gt;
    vardas = input()&lt;br /&gt;
    Balsuoti(vardas, balsai)&lt;br /&gt;
&lt;br /&gt;
print(balsai)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Loginiai reiškiniai |next=Modulių naudojimas}}&lt;br /&gt;
{{BookCat}}&lt;/div&gt;</summary>
		<author><name>Artūras</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Daugiau_apie_tekstines_eilutes&amp;diff=4201</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=4201"/>
		<updated>2022-07-28T10:36:55Z</updated>

		<summary type="html">&lt;p&gt;Artūras: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{navigation |previous=Daugiau apie sąrašus |next=Failų tvarkymas}}&lt;br /&gt;
{{BookCat}}&lt;br /&gt;
&lt;br /&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 žodž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;
=== Pratimai ===&lt;br /&gt;
Parašyk programą, kuri prašo vartotojo įvesti žodį arba sakinį. Tada programa turi pasakyti, ar įvestas žodis/sakinys yra palindromas (žodis, eilėraštis arba frazė, skaitomi iš kairės į dešinę ir iš dešinės į kairę, išlaikantys tą pačią prasmę. Pvz., lietuvių k. žodis savas, sakinys 'Abu gaišo po šia guba')&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;
&lt;br /&gt;
žodis = input(&amp;quot;Iveskite žodį&amp;quot;)​&lt;br /&gt;
​&lt;br /&gt;
def yra_palindromas(ž):&lt;br /&gt;
    ž_nuo_galo = &amp;quot;&amp;quot;&lt;br /&gt;
    for i in ž:&lt;br /&gt;
        ž_nuo_galo = i + ž_nuo_galo&lt;br /&gt;
    return ž_nuo_galo == ž​&lt;br /&gt;
​&lt;br /&gt;
ats = yra_palindromas(žodis)​&lt;br /&gt;
​&lt;br /&gt;
if ats:&lt;br /&gt;
    print(&amp;quot;Įvestas žodis yra palindromas&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Įvestas žodis nėra palindromas&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=Daugiau apie sąrašus |next=Failų tvarkymas}}&lt;br /&gt;
{{BookCat}}&lt;/div&gt;</summary>
		<author><name>Artūras</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Bandymai/%C4%AEvadas&amp;diff=4147</id>
		<title>Python Bandymai/Įvadas</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Bandymai/%C4%AEvadas&amp;diff=4147"/>
		<updated>2022-07-21T12:00:41Z</updated>

		<summary type="html">&lt;p&gt;Artūras: /* Pratimai */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{navigation |previous=Kas čia eina? |next=Pasirinkimai}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Ciklai kol (While loops) ===&lt;br /&gt;
Šiame skyriuje susipažinsi su ciklu &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt;(liet. kol). Kaip jau sužinojai praeitame skyriuje, kompiuteris įprastai programą pradeda skaityti ir vykdyti nuo pirmos eilutės ir taip eilutė po eilutės keliauja žemyn per visas duoto kodo eilutes. Tačiau ciklas &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; šią tvarką pakeičia ir dėl to kompiuteris priėjęs šią kodo vietą eilutes skaito iki galo, pagal šio ciklo nustatytą tvarką. Štai čia yra programos su ciklo &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; pavyzdžiu:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
string getFix(int n){&lt;br /&gt;
    char buf[n+1];     // buferis vardo nuskaitymui&lt;br /&gt;
    cin.get(buf, n+1); // fiksuoto ilgio teksto nuskaitymas&lt;br /&gt;
    return buf;    &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
struct Pora{&lt;br /&gt;
    string vardas;&lt;br /&gt;
    int kiekis;&lt;br /&gt;
};&lt;br /&gt;
Pora poros[10];&lt;br /&gt;
int p_sk;&lt;br /&gt;
&lt;br /&gt;
int formuotiInd(string paieska){&lt;br /&gt;
    poros[p_sk].vardas = paieska;&lt;br /&gt;
    int i = 0;&lt;br /&gt;
    while(poros[i].vardas != paieska) i++;&lt;br /&gt;
    if(i == p_sk) p_sk++;&lt;br /&gt;
    return i;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
    freopen(&amp;quot;Pvz.txt&amp;quot;, &amp;quot;r&amp;quot;, stdin);&lt;br /&gt;
    while(!cin.eof()){&lt;br /&gt;
        string a = getFix(10);&lt;br /&gt;
        int b;&lt;br /&gt;
        cin &amp;gt;&amp;gt; b &amp;gt;&amp;gt; ws;&lt;br /&gt;
        cout &amp;lt;&amp;lt; a &amp;lt;&amp;lt; b &amp;lt;&amp;lt; endl;&lt;br /&gt;
        int pi = formuotiInd(a);&lt;br /&gt;
        poros[pi].kiekis += b;&lt;br /&gt;
    }&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;------\n&amp;quot;;&lt;br /&gt;
    for(int i=0; i&amp;lt;p_sk; i++)&lt;br /&gt;
        cout &amp;lt;&amp;lt; poros[i].vardas &amp;lt;&amp;lt; poros[i].kiekis &amp;lt;&amp;lt; endl;   &lt;br /&gt;
}             --&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Na, o jeigu paleidžiame programą, tai turime štai tokį įdomų rezultatą: &lt;br /&gt;
&lt;br /&gt;
 1&lt;br /&gt;
 2&lt;br /&gt;
 3&lt;br /&gt;
 4&lt;br /&gt;
 5&lt;br /&gt;
 6&lt;br /&gt;
 7&lt;br /&gt;
 8&lt;br /&gt;
 9&lt;br /&gt;
 10&lt;br /&gt;
&lt;br /&gt;
(Tikriausiai iki šios pamokos net nesusimąstei, kad kompiuterį gali paversti pigiu skaičiuotuvu...)&lt;br /&gt;
&lt;br /&gt;
Na, o dabar pasiaiškinkime kaip veikia ši programa. Pirmiausia kompiuteris mato eilutę &amp;lt;code&amp;gt;a = 0&amp;lt;/code&amp;gt; ir nustato &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; reikšmę lygią nuliui. Tada programa mato sąlygą &amp;lt;code&amp;gt;while a &amp;lt; 10:&amp;lt;/code&amp;gt;, todėl kompiuteris patikrina, ar &amp;lt;code&amp;gt;a &amp;lt; 10&amp;lt;/code&amp;gt;. Kompiuteriui pirmą kartą matant šį teiginį, &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; yra lygus 0, ir akivaizdu, kad turima reikšmė yra mažesnė nei 10. Kitaip tariant, kol &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; yra mažesnis skaičius nei dešimt, tol kompiuteris tikrins teiginį ir kartos jį (t.y. pridėjinės po 1). Ciklas baigsis, kai &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; bus lygus dešimčiai. Kadangi šiame kode daugiau nieko nėra, tai programa sustoja.&lt;br /&gt;
&lt;br /&gt;
ĮSIDĖMĖK: Nepamiršk parašyti dvitaškio &amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt; eilutės pabaigoje, tik taip kompiuteris supras, kad čia yra komanda!&lt;br /&gt;
&lt;br /&gt;
Kitas ciklo &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; pavyzdys:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
a = 1&lt;br /&gt;
s = 0&lt;br /&gt;
print(&amp;quot;Įvesk skaičius, kuriuos nori pridėti prie sumos&amp;quot;)&lt;br /&gt;
print(&amp;quot;Norint išeiti, įvesk 0.&amp;quot;)&lt;br /&gt;
while a != 0:                           &lt;br /&gt;
    print(&amp;quot;Dabartinė suma:&amp;quot;, s)            &lt;br /&gt;
    a = float(input(&amp;quot;Skaičius? &amp;quot;))        &lt;br /&gt;
    s = s + a                            &lt;br /&gt;
print(&amp;quot;Galutinė suma =&amp;quot;, s)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Galimas programos scenarijus: &lt;br /&gt;
&lt;br /&gt;
 Įvesk skaičius, kuriuos nori pridėti prie sumos.&lt;br /&gt;
 Norint išeiti, įveskite 0.&lt;br /&gt;
 Dabartinė suma: 0&lt;br /&gt;
 Skaičius? '''200'''&lt;br /&gt;
 Dabartinė suma: 200.0&lt;br /&gt;
 Skaičius? '''-15.25'''&lt;br /&gt;
 Dabartinė suma: 184.75&lt;br /&gt;
 Skaičius? '''-151.85'''&lt;br /&gt;
 Dabartinė suma: 32.9&lt;br /&gt;
 Skaičius? '''10.00'''&lt;br /&gt;
 Dabartinė suma: 42.9&lt;br /&gt;
 Skaičius? '''0'''&lt;br /&gt;
 Galutinė suma = 42.9&lt;br /&gt;
&lt;br /&gt;
Atkreipk dėmesį, kad &amp;lt;code&amp;gt;print('Galutinė suma =', s)&amp;lt;/code&amp;gt; yra įvykdoma tik pačioje pabaigoje, kai jau ciklas būna nutrauktas. Komanda &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; veikia tik tas eilutes, kurios yra atitrauktos nuo krašto ir priklauso ciklo &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; blokui. &amp;lt;code&amp;gt;!=&amp;lt;/code&amp;gt; reiškia nelygu, taigi &amp;lt;code&amp;gt;while a != 0:&amp;lt;/code&amp;gt; reiškia tol, kol &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; nėra nulis, programa vykdo kodą.&lt;br /&gt;
&lt;br /&gt;
Ar pastebėjai, kad šiuo atveju &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; yra skaičius su reikšme po kablelio ir ne visi tokie skaičiai gali būti tiksliai atvaizduoti, kai naudojamas &amp;lt;code&amp;gt;!=&amp;lt;/code&amp;gt;. Pabandyk paleidęs programą įvesti 1.1&lt;br /&gt;
&lt;br /&gt;
==== Begaliniai ciklai (infinitive loops) arba niekada nesibaigaintys ciklai (Never Ending Loop)====&lt;br /&gt;
Dabar, kai jau išsiaiškinome, kas yra ciklas &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt;, pasižiūrėkime kaip atrodo niekada nesibaigiantys ciklai, kaip kad ir šis:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
while True:&lt;br /&gt;
   print(&amp;quot;Padėk! Užstrigau cikle!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Operatorius &amp;lt;code&amp;gt;==&amp;lt;/code&amp;gt; naudojamas abiejų operatoriaus pusių išraiškų lygybei patikrinti, kaip ir &amp;lt;code&amp;gt; &amp;lt; &amp;lt;/code&amp;gt; buvo naudojami norint pasakyt „mažiau nei“ (kitame skyriuje rasi išsamų visų palyginimo operatorių sąrašą). &lt;br /&gt;
&lt;br /&gt;
Ši mūsų sukurta programa spausdins &amp;lt;code&amp;gt;Padėk! Užstrigau cikle!&amp;lt;/code&amp;gt; visą amžinybę... Tol, kol pats ją sustabdysi, todėl kad ji visą laiką yra &amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt; (visada atitinka teigiamą reikšmę) ir niekada nesikeičia (''True'', lietuviškai ''teisinga'' arba ''tiesa'', paprastai programavime dar rašomas kaip 1). Kaip programą sustabdyti? Paprasčiausiai paspausk ctrl + c mygtukus.&lt;br /&gt;
&lt;br /&gt;
=== Pavyzdžiai ===&lt;br /&gt;
==== Fibonačio skaičių seka ====&lt;br /&gt;
Fibonačio skaičių seka – sveikųjų skaičių seka. Seka prasideda šiais skaičiais: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233. Kiekvienas šios sekos skaičius lygus dviejų prieš jį einančių skaičių sumai. Toliau parodysiu, kaip gali atvaizduoti pirmus dvidešimt Fibonačio skaičius 3 skirtingais būdais.&lt;br /&gt;
&lt;br /&gt;
'''Fibonacci-metodas1.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Ši programa skaičiuoja Fibonačio seką&lt;br /&gt;
a = 0&lt;br /&gt;
b = 1&lt;br /&gt;
pradinis_skačius = 0&lt;br /&gt;
maksimalus_skaičius = 20&lt;br /&gt;
&lt;br /&gt;
while pradinis_skačius &amp;lt; maksimalus_skaičius:&lt;br /&gt;
    pradinis_skačius = pradinis_skačius + 1&lt;br /&gt;
    print(a, end = &amp;quot; &amp;quot;)  # Atkreipkite dėmesį į end = &amp;quot; &amp;quot; spausdinimo funkcijos argumentuose  &lt;br /&gt;
                       # būtent tai neleidžia sukurti naujos eilutės.&lt;br /&gt;
    senas_a = a    # turime sekti, nes mes jį keičiame.&lt;br /&gt;
    a = b&lt;br /&gt;
    b = senas_a + b&lt;br /&gt;
print()  # gauna naują (tuščią) eilutę.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Išvestis :&lt;br /&gt;
 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181&lt;br /&gt;
&lt;br /&gt;
Įsidėmėk, kad išvestis yra vienoje eilutėje dėl papildomų argumentų &amp;lt;code&amp;gt;end = &amp;quot; &amp;quot;&amp;lt;/code&amp;gt; funkcijos &amp;lt;code&amp;gt;print&amp;lt;/code&amp;gt; argumentuose.&lt;br /&gt;
&lt;br /&gt;
'''Fibonacci-metodas2.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Supaprastintas ir greitesnis Fibonačio sekos apskaičiavimo metodas&lt;br /&gt;
a = 0&lt;br /&gt;
b = 1&lt;br /&gt;
pradinis_skačius = 0&lt;br /&gt;
maksimalus_skaičius = 10&lt;br /&gt;
&lt;br /&gt;
while pradinis_skačius &amp;lt; maksimalus_skaičius:&lt;br /&gt;
    pradinis_skačius = pradinis_skačius + 1&lt;br /&gt;
    print(a, b, end=&amp;quot; &amp;quot;)  # Įsidėmėk end=&amp;quot; &amp;quot;&lt;br /&gt;
    a = a + b    &lt;br /&gt;
    b = a + b&lt;br /&gt;
print()  # gauna naują (tuščią) eilutę.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Išvestis:&lt;br /&gt;
 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181&lt;br /&gt;
&lt;br /&gt;
'''Fibonacci-metodas3.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
a = 0&lt;br /&gt;
b = 1&lt;br /&gt;
pradinis_skačius = 0&lt;br /&gt;
maksimalus_skaičius = 20&lt;br /&gt;
&lt;br /&gt;
#kai ciklas prasideda, mes jame pasiliekame&lt;br /&gt;
while pradinis_skačius &amp;lt; maksimalus_skaičius:&lt;br /&gt;
    pradinis_skačius += 1&lt;br /&gt;
    senas_a = a&lt;br /&gt;
    a = a + b&lt;br /&gt;
    b = senas_a&lt;br /&gt;
    print(senas_a,end=&amp;quot; &amp;quot;)&lt;br /&gt;
print()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Išvestis:&lt;br /&gt;
 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181&lt;br /&gt;
&lt;br /&gt;
==== Įvesk slaptažodį ====&lt;br /&gt;
'''Slaptaždis.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Laukia, kol bus įvestas slaptažodis. Naudok „ctrl+ C“, kad sustabdytum programą&lt;br /&gt;
# be slaptažodžio&lt;br /&gt;
&lt;br /&gt;
#atkreipk dėmesį, kad tai neturi būti slaptažodis, kad&lt;br /&gt;
# ciklas while turi prasisukti bent kartą.&lt;br /&gt;
slaptažodis= str()&lt;br /&gt;
&lt;br /&gt;
# įsidėmėk != reiškia nelygu&lt;br /&gt;
while slaptažodis!= &amp;quot;Angis&amp;quot;:&lt;br /&gt;
    slaptažodis = input(&amp;quot;Slaptažodis: &amp;quot;)&lt;br /&gt;
print(&amp;quot;Prisijungimas sėkmingas&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kaip programa veikia:&lt;br /&gt;
 Slaptažodis: '''auo'''&lt;br /&gt;
 Slaptažodis: '''y22'''&lt;br /&gt;
 Slaptažodis: '''slaptažodis'''&lt;br /&gt;
 Slaptažodis: '''Sezamai atsiverk''&lt;br /&gt;
 Slaptažodis: '''Angis'''&lt;br /&gt;
 Prisijungimas sėkmingas&lt;br /&gt;
&lt;br /&gt;
=== Pratimai ===&lt;br /&gt;
Parašyk programą, kuri prašo vartotojo įvesti skaičius tol, kol jis įveda &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;. Tada programa turi išvesti skaičių vidurkį. Gali remtis skyriuje aptartu skaičių sumos pavyzdžiu.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot;&lt;br /&gt;
! colspan=2 | Sprendimas &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
  #&lt;br /&gt;
  # testas&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=Kas čia eina? |next=Pasirinkimai}}&lt;/div&gt;</summary>
		<author><name>Artūras</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/S%C4%85ra%C5%A1ai&amp;diff=4144</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=4144"/>
		<updated>2022-07-21T11:55:24Z</updated>

		<summary type="html">&lt;p&gt;Artūras: /* Pratimai */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{navigation |previous=Rekursinės funkcijos |next=Ciklai For}}&lt;br /&gt;
{{BookCat}}&lt;br /&gt;
&lt;br /&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 rasi daug 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;
&lt;br /&gt;
=== Sąrašų rūšiavimas ===&lt;br /&gt;
&lt;br /&gt;
Dažnai pasitaikanti užduotis su sąrašais - jų rūšiavimas. Paprastų sąrašų, kurie yra sudaryti iš skaičių ar eilučių, rūšiavimui gali naudoti funkciją &amp;lt;code&amp;gt;sort&amp;lt;/code&amp;gt;, kuri buvo paminėta anksčiau šiame skyriuje. Tačiau gali susidurti su situacijomis, kai ši funkcija yra nepakankama. Egzistuoja daug rūšiavimo algoritmų, tačiau čia išmoksi vieną paprasčiausių iš jų - burbuliuko algoritmą (angl. bubble sort).&lt;br /&gt;
&lt;br /&gt;
Algoritmo idėja yra tokia, kad iš kairės į dešinę lyginame gretimų elementų poras ir sukeičiame elementus vietomis, jei pirmasis yra didesnis už antrąjį. Kiekvienos iteracijos metu, didžiausias nesurūšiuotas elementas juda link sąrašo galo. Toks judėjimas primena burbuliukų vandenyje judėjimą į paviršių, iš ko ir kilo algoritmo pavadinimas. Iteracijos kartojamos tol, kol visi elementai yra savo vietose.&lt;br /&gt;
&lt;br /&gt;
Pavyzdžiui, surūšiuokime jau prieš tai naudotą sąrašą [42, 7, 0, 123].&lt;br /&gt;
&lt;br /&gt;
'''Pirma iteracija:'''&lt;br /&gt;
&lt;br /&gt;
	['''42''', '''7''', 0, 123] -&amp;gt; ['''7''', '''42''', 0, 123] Lyginami pirmi du elementai. Antrasis yra didesnis už pirmąjį, todėl elementai pakeičiami vietomis.&lt;br /&gt;
&lt;br /&gt;
	[7, '''42''', '''0''', 123] -&amp;gt; [7, '''0''', '''42''', 123] Lyginami antras ir trečias elementai. Trečiasis yra didesnis už antrąjį, todėl elementai pakeičiami vietomis.&lt;br /&gt;
&lt;br /&gt;
	[7, 0, '''42''', '''123'''] -&amp;gt; [7, 0, '''42''', '''123'''] Lyginami paskutiniai du elementai. Jie yra išdėstyti tinkamai, todėl nėra pakeičiami vietomis.&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
'''Antra iteracija:'''&lt;br /&gt;
&lt;br /&gt;
	['''7''', '''0''', 42, 123] -&amp;gt; ['''0''', '''7''', 42, 123] Lyginami pirmi du elementai. Antrasis yra didesnis už pirmąjį, todėl elementai pakeičiami vietomis.&lt;br /&gt;
&lt;br /&gt;
	[0, '''7''', '''42''', 123] -&amp;gt; [0, '''7''', '''42''', 123] Lyginami antras ir trečias elementai. Jie yra išdėstyti tinkamai, todėl nėra pakeičiami vietomis.&lt;br /&gt;
&lt;br /&gt;
	[0, 7, '''42''', '''123'''] -&amp;gt; [0, 7, '''42''', '''123'''] Lyginami paskutiniai du elementai. Jie yra išdėstyti tinkamai, todėl nėra pakeičiami vietomis.&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
'''Trečia iteracija:'''&lt;br /&gt;
&lt;br /&gt;
	['''0''', '''7''', 42, 123] -&amp;gt; ['''0''', '''7''', 42, 123] Elementai išdėstyti tinkamai.&lt;br /&gt;
&lt;br /&gt;
	[0, '''7''', '''42''', 123] -&amp;gt; [0, '''7''', '''42''', 123] Elementai išdėstyti tinkamai.&lt;br /&gt;
&lt;br /&gt;
	[0, 7, '''42''', '''123'''] -&amp;gt; [0, 7, '''42''', '''123'''] Elementai išdėstyti tinkamai.&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
Trečios iteracijos metu algoritmas neatlieka jokių pakeitimų, tad nustatoma, kad sąrašas yra surūšiuotas, algoritmas baigtas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Algoritmo kodą galima užrašyti taip:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def burbuliukoRūšiavimas(sąrašas):&lt;br /&gt;
    sąrašoIlgis = len(sąrašas)&lt;br /&gt;
    # Maksimalus iteracijų skaičius - sąrašo ilgis - 1 elementas&lt;br /&gt;
    for i in range(sąrašoIlgis  - 1): &lt;br /&gt;
        arBuvoPakeitimų = 0&lt;br /&gt;
        # Kiekvienoje iteracijoje lyginami visi elementai&lt;br /&gt;
        for j in range(sąrašoIlgis - 1): &lt;br /&gt;
            if sąrašas[j] &amp;gt; sąrašas[j + 1]:&lt;br /&gt;
                # Sukuriame laikiną elementą, kuris saugo pirmąjį lyginamą elementą&lt;br /&gt;
                laikinasElementas = sąrašas[j]&lt;br /&gt;
                # Pirmąjam elementui priskiriame antro elemento reikšmę&lt;br /&gt;
                sąrašas[j] = sąrašas[j + 1]&lt;br /&gt;
                # Antrajam elementui priskiriame laikino elemento reikšmę, kuri yra lygi buvusiam pirmąjam elementui&lt;br /&gt;
                sąrašas[j + 1] = laikinasElementas&lt;br /&gt;
                # Pasižymime, kad iteracijos metu buvo padaryti pakeitimai, taigi reikės papildomų iteracijų&lt;br /&gt;
                arBuvoPakeitimų = 1&lt;br /&gt;
        # Jei visos iteracijos metu nebuvo nei vieno pakeitimo, algoritmas baigiamas&lt;br /&gt;
        if arBuvoPakeitimų == 0:&lt;br /&gt;
            break&lt;br /&gt;
    return sąrašas&lt;br /&gt;
&lt;br /&gt;
rezultatas = burbuliukoRūšiavimas([42, 7, 0, 123])&lt;br /&gt;
&lt;br /&gt;
print (rezultatas)&lt;br /&gt;
&amp;lt;/syntaxhighlight &amp;gt;&lt;br /&gt;
&lt;br /&gt;
Programos išvestis: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[0, 7, 42, 123]&lt;br /&gt;
&amp;lt;/code&amp;gt;&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;
&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;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Rekursinės funkcijos |next=Ciklai For}}&lt;br /&gt;
{{BookCat}}&lt;/div&gt;</summary>
		<author><name>Artūras</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Siekiant_tobulumo&amp;diff=4145</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=4145"/>
		<updated>2022-07-21T11:41:05Z</updated>

		<summary type="html">&lt;p&gt;Artūras: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{navigation |previous=Failų tvarkymas |next=Įvadas į objektinį programavimą Python 3}}&lt;br /&gt;
&lt;br /&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ą ([[Python_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;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
{{navigation |previous=Failų tvarkymas |next=Įvadas į objektinį programavimą Python 3}}&lt;br /&gt;
{{BookCat}}&lt;/div&gt;</summary>
		<author><name>Artūras</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Bandymai/%C4%AEvadas&amp;diff=4142</id>
		<title>Python Bandymai/Įvadas</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Bandymai/%C4%AEvadas&amp;diff=4142"/>
		<updated>2022-07-21T11:39:40Z</updated>

		<summary type="html">&lt;p&gt;Artūras: /* Pratimai */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{navigation |previous=Kas čia eina? |next=Pasirinkimai}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Ciklai kol (While loops) ===&lt;br /&gt;
Šiame skyriuje susipažinsi su ciklu &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt;(liet. kol). Kaip jau sužinojai praeitame skyriuje, kompiuteris įprastai programą pradeda skaityti ir vykdyti nuo pirmos eilutės ir taip eilutė po eilutės keliauja žemyn per visas duoto kodo eilutes. Tačiau ciklas &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; šią tvarką pakeičia ir dėl to kompiuteris priėjęs šią kodo vietą eilutes skaito iki galo, pagal šio ciklo nustatytą tvarką. Štai čia yra programos su ciklo &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; pavyzdžiu:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
string getFix(int n){&lt;br /&gt;
    char buf[n+1];     // buferis vardo nuskaitymui&lt;br /&gt;
    cin.get(buf, n+1); // fiksuoto ilgio teksto nuskaitymas&lt;br /&gt;
    return buf;    &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
struct Pora{&lt;br /&gt;
    string vardas;&lt;br /&gt;
    int kiekis;&lt;br /&gt;
};&lt;br /&gt;
Pora poros[10];&lt;br /&gt;
int p_sk;&lt;br /&gt;
&lt;br /&gt;
int formuotiInd(string paieska){&lt;br /&gt;
    poros[p_sk].vardas = paieska;&lt;br /&gt;
    int i = 0;&lt;br /&gt;
    while(poros[i].vardas != paieska) i++;&lt;br /&gt;
    if(i == p_sk) p_sk++;&lt;br /&gt;
    return i;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
    freopen(&amp;quot;Pvz.txt&amp;quot;, &amp;quot;r&amp;quot;, stdin);&lt;br /&gt;
    while(!cin.eof()){&lt;br /&gt;
        string a = getFix(10);&lt;br /&gt;
        int b;&lt;br /&gt;
        cin &amp;gt;&amp;gt; b &amp;gt;&amp;gt; ws;&lt;br /&gt;
        cout &amp;lt;&amp;lt; a &amp;lt;&amp;lt; b &amp;lt;&amp;lt; endl;&lt;br /&gt;
        int pi = formuotiInd(a);&lt;br /&gt;
        poros[pi].kiekis += b;&lt;br /&gt;
    }&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;------\n&amp;quot;;&lt;br /&gt;
    for(int i=0; i&amp;lt;p_sk; i++)&lt;br /&gt;
        cout &amp;lt;&amp;lt; poros[i].vardas &amp;lt;&amp;lt; poros[i].kiekis &amp;lt;&amp;lt; endl;   &lt;br /&gt;
}             --&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Na, o jeigu paleidžiame programą, tai turime štai tokį įdomų rezultatą: &lt;br /&gt;
&lt;br /&gt;
 1&lt;br /&gt;
 2&lt;br /&gt;
 3&lt;br /&gt;
 4&lt;br /&gt;
 5&lt;br /&gt;
 6&lt;br /&gt;
 7&lt;br /&gt;
 8&lt;br /&gt;
 9&lt;br /&gt;
 10&lt;br /&gt;
&lt;br /&gt;
(Tikriausiai iki šios pamokos net nesusimąstei, kad kompiuterį gali paversti pigiu skaičiuotuvu...)&lt;br /&gt;
&lt;br /&gt;
Na, o dabar pasiaiškinkime kaip veikia ši programa. Pirmiausia kompiuteris mato eilutę &amp;lt;code&amp;gt;a = 0&amp;lt;/code&amp;gt; ir nustato &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; reikšmę lygią nuliui. Tada programa mato sąlygą &amp;lt;code&amp;gt;while a &amp;lt; 10:&amp;lt;/code&amp;gt;, todėl kompiuteris patikrina, ar &amp;lt;code&amp;gt;a &amp;lt; 10&amp;lt;/code&amp;gt;. Kompiuteriui pirmą kartą matant šį teiginį, &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; yra lygus 0, ir akivaizdu, kad turima reikšmė yra mažesnė nei 10. Kitaip tariant, kol &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; yra mažesnis skaičius nei dešimt, tol kompiuteris tikrins teiginį ir kartos jį (t.y. pridėjinės po 1). Ciklas baigsis, kai &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; bus lygus dešimčiai. Kadangi šiame kode daugiau nieko nėra, tai programa sustoja.&lt;br /&gt;
&lt;br /&gt;
ĮSIDĖMĖK: Nepamiršk parašyti dvitaškio &amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt; eilutės pabaigoje, tik taip kompiuteris supras, kad čia yra komanda!&lt;br /&gt;
&lt;br /&gt;
Kitas ciklo &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; pavyzdys:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
a = 1&lt;br /&gt;
s = 0&lt;br /&gt;
print(&amp;quot;Įvesk skaičius, kuriuos nori pridėti prie sumos&amp;quot;)&lt;br /&gt;
print(&amp;quot;Norint išeiti, įvesk 0.&amp;quot;)&lt;br /&gt;
while a != 0:                           &lt;br /&gt;
    print(&amp;quot;Dabartinė suma:&amp;quot;, s)            &lt;br /&gt;
    a = float(input(&amp;quot;Skaičius? &amp;quot;))        &lt;br /&gt;
    s = s + a                            &lt;br /&gt;
print(&amp;quot;Galutinė suma =&amp;quot;, s)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Galimas programos scenarijus: &lt;br /&gt;
&lt;br /&gt;
 Įvesk skaičius, kuriuos nori pridėti prie sumos.&lt;br /&gt;
 Norint išeiti, įveskite 0.&lt;br /&gt;
 Dabartinė suma: 0&lt;br /&gt;
 Skaičius? '''200'''&lt;br /&gt;
 Dabartinė suma: 200.0&lt;br /&gt;
 Skaičius? '''-15.25'''&lt;br /&gt;
 Dabartinė suma: 184.75&lt;br /&gt;
 Skaičius? '''-151.85'''&lt;br /&gt;
 Dabartinė suma: 32.9&lt;br /&gt;
 Skaičius? '''10.00'''&lt;br /&gt;
 Dabartinė suma: 42.9&lt;br /&gt;
 Skaičius? '''0'''&lt;br /&gt;
 Galutinė suma = 42.9&lt;br /&gt;
&lt;br /&gt;
Atkreipk dėmesį, kad &amp;lt;code&amp;gt;print('Galutinė suma =', s)&amp;lt;/code&amp;gt; yra įvykdoma tik pačioje pabaigoje, kai jau ciklas būna nutrauktas. Komanda &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; veikia tik tas eilutes, kurios yra atitrauktos nuo krašto ir priklauso ciklo &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; blokui. &amp;lt;code&amp;gt;!=&amp;lt;/code&amp;gt; reiškia nelygu, taigi &amp;lt;code&amp;gt;while a != 0:&amp;lt;/code&amp;gt; reiškia tol, kol &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; nėra nulis, programa vykdo kodą.&lt;br /&gt;
&lt;br /&gt;
Ar pastebėjai, kad šiuo atveju &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; yra skaičius su reikšme po kablelio ir ne visi tokie skaičiai gali būti tiksliai atvaizduoti, kai naudojamas &amp;lt;code&amp;gt;!=&amp;lt;/code&amp;gt;. Pabandyk paleidęs programą įvesti 1.1&lt;br /&gt;
&lt;br /&gt;
==== Begaliniai ciklai (infinitive loops) arba niekada nesibaigaintys ciklai (Never Ending Loop)====&lt;br /&gt;
Dabar, kai jau išsiaiškinome, kas yra ciklas &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt;, pasižiūrėkime kaip atrodo niekada nesibaigiantys ciklai, kaip kad ir šis:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
while True:&lt;br /&gt;
   print(&amp;quot;Padėk! Užstrigau cikle!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Operatorius &amp;lt;code&amp;gt;==&amp;lt;/code&amp;gt; naudojamas abiejų operatoriaus pusių išraiškų lygybei patikrinti, kaip ir &amp;lt;code&amp;gt; &amp;lt; &amp;lt;/code&amp;gt; buvo naudojami norint pasakyt „mažiau nei“ (kitame skyriuje rasi išsamų visų palyginimo operatorių sąrašą). &lt;br /&gt;
&lt;br /&gt;
Ši mūsų sukurta programa spausdins &amp;lt;code&amp;gt;Padėk! Užstrigau cikle!&amp;lt;/code&amp;gt; visą amžinybę... Tol, kol pats ją sustabdysi, todėl kad ji visą laiką yra &amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt; (visada atitinka teigiamą reikšmę) ir niekada nesikeičia (''True'', lietuviškai ''teisinga'' arba ''tiesa'', paprastai programavime dar rašomas kaip 1). Kaip programą sustabdyti? Paprasčiausiai paspausk ctrl + c mygtukus.&lt;br /&gt;
&lt;br /&gt;
=== Pavyzdžiai ===&lt;br /&gt;
==== Fibonačio skaičių seka ====&lt;br /&gt;
Fibonačio skaičių seka – sveikųjų skaičių seka. Seka prasideda šiais skaičiais: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233. Kiekvienas šios sekos skaičius lygus dviejų prieš jį einančių skaičių sumai. Toliau parodysiu, kaip gali atvaizduoti pirmus dvidešimt Fibonačio skaičius 3 skirtingais būdais.&lt;br /&gt;
&lt;br /&gt;
'''Fibonacci-metodas1.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Ši programa skaičiuoja Fibonačio seką&lt;br /&gt;
a = 0&lt;br /&gt;
b = 1&lt;br /&gt;
pradinis_skačius = 0&lt;br /&gt;
maksimalus_skaičius = 20&lt;br /&gt;
&lt;br /&gt;
while pradinis_skačius &amp;lt; maksimalus_skaičius:&lt;br /&gt;
    pradinis_skačius = pradinis_skačius + 1&lt;br /&gt;
    print(a, end = &amp;quot; &amp;quot;)  # Atkreipkite dėmesį į end = &amp;quot; &amp;quot; spausdinimo funkcijos argumentuose  &lt;br /&gt;
                       # būtent tai neleidžia sukurti naujos eilutės.&lt;br /&gt;
    senas_a = a    # turime sekti, nes mes jį keičiame.&lt;br /&gt;
    a = b&lt;br /&gt;
    b = senas_a + b&lt;br /&gt;
print()  # gauna naują (tuščią) eilutę.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Išvestis :&lt;br /&gt;
 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181&lt;br /&gt;
&lt;br /&gt;
Įsidėmėk, kad išvestis yra vienoje eilutėje dėl papildomų argumentų &amp;lt;code&amp;gt;end = &amp;quot; &amp;quot;&amp;lt;/code&amp;gt; funkcijos &amp;lt;code&amp;gt;print&amp;lt;/code&amp;gt; argumentuose.&lt;br /&gt;
&lt;br /&gt;
'''Fibonacci-metodas2.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Supaprastintas ir greitesnis Fibonačio sekos apskaičiavimo metodas&lt;br /&gt;
a = 0&lt;br /&gt;
b = 1&lt;br /&gt;
pradinis_skačius = 0&lt;br /&gt;
maksimalus_skaičius = 10&lt;br /&gt;
&lt;br /&gt;
while pradinis_skačius &amp;lt; maksimalus_skaičius:&lt;br /&gt;
    pradinis_skačius = pradinis_skačius + 1&lt;br /&gt;
    print(a, b, end=&amp;quot; &amp;quot;)  # Įsidėmėk end=&amp;quot; &amp;quot;&lt;br /&gt;
    a = a + b    &lt;br /&gt;
    b = a + b&lt;br /&gt;
print()  # gauna naują (tuščią) eilutę.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Išvestis:&lt;br /&gt;
 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181&lt;br /&gt;
&lt;br /&gt;
'''Fibonacci-metodas3.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
a = 0&lt;br /&gt;
b = 1&lt;br /&gt;
pradinis_skačius = 0&lt;br /&gt;
maksimalus_skaičius = 20&lt;br /&gt;
&lt;br /&gt;
#kai ciklas prasideda, mes jame pasiliekame&lt;br /&gt;
while pradinis_skačius &amp;lt; maksimalus_skaičius:&lt;br /&gt;
    pradinis_skačius += 1&lt;br /&gt;
    senas_a = a&lt;br /&gt;
    a = a + b&lt;br /&gt;
    b = senas_a&lt;br /&gt;
    print(senas_a,end=&amp;quot; &amp;quot;)&lt;br /&gt;
print()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Išvestis:&lt;br /&gt;
 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181&lt;br /&gt;
&lt;br /&gt;
==== Įvesk slaptažodį ====&lt;br /&gt;
'''Slaptaždis.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Laukia, kol bus įvestas slaptažodis. Naudok „ctrl+ C“, kad sustabdytum programą&lt;br /&gt;
# be slaptažodžio&lt;br /&gt;
&lt;br /&gt;
#atkreipk dėmesį, kad tai neturi būti slaptažodis, kad&lt;br /&gt;
# ciklas while turi prasisukti bent kartą.&lt;br /&gt;
slaptažodis= str()&lt;br /&gt;
&lt;br /&gt;
# įsidėmėk != reiškia nelygu&lt;br /&gt;
while slaptažodis!= &amp;quot;Angis&amp;quot;:&lt;br /&gt;
    slaptažodis = input(&amp;quot;Slaptažodis: &amp;quot;)&lt;br /&gt;
print(&amp;quot;Prisijungimas sėkmingas&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kaip programa veikia:&lt;br /&gt;
 Slaptažodis: '''auo'''&lt;br /&gt;
 Slaptažodis: '''y22'''&lt;br /&gt;
 Slaptažodis: '''slaptažodis'''&lt;br /&gt;
 Slaptažodis: '''Sezamai atsiverk''&lt;br /&gt;
 Slaptažodis: '''Angis'''&lt;br /&gt;
 Prisijungimas sėkmingas&lt;br /&gt;
&lt;br /&gt;
=== Pratimai ===&lt;br /&gt;
Parašyk programą, kuri prašo vartotojo įvesti skaičius tol, kol jis įveda &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;. Tada programa turi išvesti skaičių vidurkį. Gali remtis skyriuje aptartu skaičių sumos pavyzdžiu.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot;&lt;br /&gt;
! colspan=2 | Sprendimas &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
  #&lt;br /&gt;
  # test&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=Kas čia eina? |next=Pasirinkimai}}&lt;/div&gt;</summary>
		<author><name>Artūras</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Ciklai_For&amp;diff=4087</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=4087"/>
		<updated>2022-07-14T10:23:22Z</updated>

		<summary type="html">&lt;p&gt;Artūras: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{navigation |previous=Sąrašai |next=Loginiai reiškiniai}}&lt;br /&gt;
{{BookCat}}&lt;br /&gt;
&lt;br /&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ą (proceso kartojimas skirtas rezultatų sekos generavimui). 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;
=== Pratimai ===&lt;br /&gt;
Sukurk naują sarašą, kuris turėtų tik skaičiaus 3 daliklius (skaičius turi dalintis iš 3) iš 'x' sąrašo ir tik skaičiaus 5 daliklius iš 'y' sąrašo.&lt;br /&gt;
&lt;br /&gt;
x = [1,2,3,4,5,6,7,8,9,10]&lt;br /&gt;
&lt;br /&gt;
y = [11,12,13,14,15,16,17,18,19,20]&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;
x = [1,2,3,4,5,6,7,8,9,10]&lt;br /&gt;
y = [11,12,13,14,15,16,17,18,19,20]&lt;br /&gt;
c = []&lt;br /&gt;
for i in x:&lt;br /&gt;
	if i % 3 == 0:&lt;br /&gt;
		c.append(i)&lt;br /&gt;
for i in y:&lt;br /&gt;
	if i % 5 == 0:&lt;br /&gt;
		c.append(i)&lt;br /&gt;
print(c)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Parašyk programą, kuri atspausdintų eglutę, pagal vartotojo įvesta eglutės aukštį.&lt;br /&gt;
&lt;br /&gt;
Pvz. Įvestis = 3&lt;br /&gt;
&lt;br /&gt;
Išvestis:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
**&lt;br /&gt;
***&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;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;
 # sprendimas&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&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>Artūras</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Suskai%C4%8Diuoti_iki_10&amp;diff=4086</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=4086"/>
		<updated>2022-07-14T10:15:54Z</updated>

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

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

		<summary type="html">&lt;p&gt;Artūras: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{navigation |previous=Rekursinės funkcijos |next=Ciklai For}}&lt;br /&gt;
{{BookCat}}&lt;br /&gt;
&lt;br /&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 rasi daug 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=Rekursinės funkcijos |next=Ciklai For}}&lt;br /&gt;
{{BookCat}}&lt;/div&gt;</summary>
		<author><name>Artūras</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Suskai%C4%8Diuoti_iki_10&amp;diff=4002</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=4002"/>
		<updated>2022-06-23T06:08:11Z</updated>

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

		<summary type="html">&lt;p&gt;Artūras: Naujas puslapis: Python pamokos.  ==Turinys== {{print version}} {{PDF version}} ;Autoriai : Python pamokų autoriai. ;Įžanga : Įžangini...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Python pamokos.&lt;br /&gt;
&lt;br /&gt;
==Turinys==&lt;br /&gt;
{{print version}}&lt;br /&gt;
{{PDF version}}&lt;br /&gt;
;[[Python_Pamokos/Autoriai|Autoriai]]&lt;br /&gt;
: Python pamokų autoriai.&lt;br /&gt;
;[[Python_Pamokos/Įžanga|Įžanga]]&lt;br /&gt;
: Įžanginiai žodžiai&lt;br /&gt;
;[[Python_Pamokos/Įvadas|Įvadas]]&lt;br /&gt;
: Įvadas&lt;br /&gt;
{{Alphabetical|N}}&lt;br /&gt;
__NOTOC__ __NOEDITSECTION__&lt;/div&gt;</summary>
		<author><name>Artūras</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Siekiant_tobulumo&amp;diff=3998</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=3998"/>
		<updated>2022-05-21T09:43:57Z</updated>

		<summary type="html">&lt;p&gt;Artūras: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{navigation |previous=Failų tvarkymas |next=Įvadas į objektinį programavimą Python 3}}&lt;br /&gt;
&lt;br /&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ą ([[Python_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ų tvarkymas |next=Įvadas į objektinį programavimą Python 3}}&lt;br /&gt;
{{BookCat}}&lt;/div&gt;</summary>
		<author><name>Artūras</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Fail%C5%B3_tvarkymas&amp;diff=3997</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=3997"/>
		<updated>2022-05-21T09:43:25Z</updated>

		<summary type="html">&lt;p&gt;Artūras: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{navigation |previous=Daugiau apie tekstines eilutes |next=Siekiant tobulumo}}&lt;br /&gt;
{{BookCat}}&lt;br /&gt;
&lt;br /&gt;
=== Failų įvestis/išvestis ===&lt;br /&gt;
&lt;br /&gt;
Štai paprastas failo įvesties ir išvesties (I/O, ang. Input/Output) 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 visus veiksmus su failais:&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ą spausdintuvu?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Yra keletas skirtingų būdų, kaip tai padaryti. Iš tikrųjų, pats lengviausias būdas yra atidaryti kitą programą, tada leisti viskuo pasirūpinti Python'o kodui, kad tau nereikėtų 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 [[Python_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>Artūras</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Daugiau_apie_tekstines_eilutes&amp;diff=3996</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=3996"/>
		<updated>2022-05-21T09:42:52Z</updated>

		<summary type="html">&lt;p&gt;Artūras: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{navigation |previous=Daugiau apie sąrašus |next=Failų tvarkymas}}&lt;br /&gt;
{{BookCat}}&lt;br /&gt;
&lt;br /&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;
=== Pratimai ===&lt;br /&gt;
Parašyk programą, kuri prašo vartotojo įvesti žodį arba sakinį. Tada programa turi pasakyti, ar įvestas žodis/sakinys yra palindromas (žodis, eilėraštis arba frazė, skaitomi iš kairės į dešinę ir iš dešinės į kairę, išlaikantys tą pačią prasmę. Pvz., lietuvių k. žodis savas, sakinys 'Abu gaišo po šia guba')&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;
&lt;br /&gt;
žodis = input(&amp;quot;Iveskite žodį&amp;quot;)​&lt;br /&gt;
​&lt;br /&gt;
def yra_palindromas(ž):&lt;br /&gt;
    ž_nuo_galo = &amp;quot;&amp;quot;&lt;br /&gt;
    for i in ž:&lt;br /&gt;
        ž_nuo_galo = i + ž_nuo_galo&lt;br /&gt;
    return ž_nuo_galo == ž​&lt;br /&gt;
​&lt;br /&gt;
ats = yra_palindromas(žodis)​&lt;br /&gt;
​&lt;br /&gt;
if ats:&lt;br /&gt;
    print(&amp;quot;Įvestas žodis yra palindromas&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Įvestas žodis nėra palindromas&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=Daugiau apie sąrašus |next=Failų tvarkymas}}&lt;br /&gt;
{{BookCat}}&lt;/div&gt;</summary>
		<author><name>Artūras</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/%C5%BDodynai&amp;diff=3995</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=3995"/>
		<updated>2022-05-21T09:42:05Z</updated>

		<summary type="html">&lt;p&gt;Artūras: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{navigation |previous=Loginiai reiškiniai |next=Modulių naudojimas}}&lt;br /&gt;
&lt;br /&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, pateiktu 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;
=== Pratimai ===&lt;br /&gt;
Parašyk balsų skaičiavimo programą, kurioje tu vedi vardus tol, kol yra įvedamas žodis &amp;quot;pabaiga&amp;quot;. Tada programa išveda, visus vardus ir kiek kartų jis buvo įvestas.&lt;br /&gt;
&lt;br /&gt;
Įvesits:&lt;br /&gt;
&lt;br /&gt;
Benas, Liepa, Benas, Benas, Benas, Jonas, Liepa&lt;br /&gt;
&lt;br /&gt;
Išvestis:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
Benas 4&lt;br /&gt;
Liepa 2&lt;br /&gt;
Jonas 1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&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;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Loginiai reiškiniai |next=Modulių naudojimas}}&lt;br /&gt;
{{BookCat}}&lt;/div&gt;</summary>
		<author><name>Artūras</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Loginiai_rei%C5%A1kiniai&amp;diff=3994</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=3994"/>
		<updated>2022-05-21T09:41:50Z</updated>

		<summary type="html">&lt;p&gt;Artūras: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{navigation |previous=Ciklai For |next=Žodynai}}&lt;br /&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; (Klaidinga) arba &amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt; (Teisinga), 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 sutrumpintos grandies įvertinimas (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;
=== Pratimai ===&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>Artūras</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Ciklai_For&amp;diff=3993</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=3993"/>
		<updated>2022-05-21T09:41:29Z</updated>

		<summary type="html">&lt;p&gt;Artūras: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{navigation |previous=Sąrašai |next=Loginiai reiškiniai}}&lt;br /&gt;
{{BookCat}}&lt;br /&gt;
&lt;br /&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ą (proceso kartojimas skirtas rezultatų sekos generavimui). 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;
=== Pratimai ===&lt;br /&gt;
Sukurk naują sarašą, kuris turėtų tik skaičiaus 3 daliklius (skaičius turi dalintis iš 3) iš 'x' sąrašo ir tik skaičiaus 5 daliklius iš 'y' sąrašo.&lt;br /&gt;
&lt;br /&gt;
x = [1,2,3,4,5,6,7,8,9,10]&lt;br /&gt;
&lt;br /&gt;
y = [11,12,13,14,15,16,17,18,19,20]&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;
 # sprendimas&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Parašyk programą, kuri atspausdintų eglutę, pagal vartotojo įvesta eglutės aukštį.&lt;br /&gt;
&lt;br /&gt;
Pvz. Įvestis = 3&lt;br /&gt;
&lt;br /&gt;
Išvestis:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
*&lt;br /&gt;
**&lt;br /&gt;
***&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;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;
 # sprendimas&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&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>Artūras</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Rekursin%C4%97s_funkcijos&amp;diff=3992</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=3992"/>
		<updated>2022-05-21T09:40:59Z</updated>

		<summary type="html">&lt;p&gt;Artūras: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{navigation |previous=Funkcijų apibrėžimas |next=Sąrašai}}&lt;br /&gt;
&lt;br /&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;
Funkcijos, kurios kreipiasi pačios į save yra vadinamos rekursinėmis funkcijomis. Šio skyriaus pavyzdžiuose panagrinėsime tokias funkcijas. 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;
=== Pratimai ===&lt;br /&gt;
Parašyk programą, kuri paprašytų vartotojo įvesti skaičių ir laipsnį. Naudodamas rekursija, atspausdink skaičių pakelta duotuoju laipsniu. (Pvz: 2&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;=8)&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;
#&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Funkcijų apibrėžimas |next=Sąrašai}}&lt;/div&gt;</summary>
		<author><name>Artūras</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Rekursin%C4%97s_funkcijos&amp;diff=3991</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=3991"/>
		<updated>2022-05-21T09:39:40Z</updated>

		<summary type="html">&lt;p&gt;Artūras: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{navigation |previous=Funkcijų apibrėžimas |next=Sąrašai}}&lt;br /&gt;
&lt;br /&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;
Funkcijos, kurios kreipiasi pačios į save yra vadinamos rekursinėmis funkcijomis. Šio skyriaus pavyzdžiuose panagrinėsime tokias funkcijas. 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;
=== Pratimai ===&lt;br /&gt;
Parašyk programą, kuri paprašytų vartotojo įvesti skaičių ir laipsnį. Naudodamas rekursija, atspausdink skaičių pakelta duotuoju laipsniu. (Pvz: 2&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;=8)&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Funkcijų apibrėžimas |next=Sąrašai}}&lt;/div&gt;</summary>
		<author><name>Artūras</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=3990</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=3990"/>
		<updated>2022-05-21T09:39:21Z</updated>

		<summary type="html">&lt;p&gt;Artūras: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{navigation |previous=Derinimas |next=Rekursinės funkcijos}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&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 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;
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;Benas&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 Benas&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 buvo globalūs. Tokie kintamieji gali būti pasiekiami ir naudojami bet kurioje programos vietoje. 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;
kintamasis_a = 10&lt;br /&gt;
kintamasis_b = 15&lt;br /&gt;
kintamasis_e = 25&lt;br /&gt;
&lt;br /&gt;
def funkcija(kintamasis_a):&lt;br /&gt;
    print(&amp;quot;funkcijoje kintamasis_a =&amp;quot;, kintamasis_a)&lt;br /&gt;
    kintamasis_b = 100 + kintamasis_a&lt;br /&gt;
    kintamasis_d = 2 * kintamasis_a&lt;br /&gt;
    print(&amp;quot;funkcijoje  kintamasis_b =&amp;quot;, kintamasis_b)&lt;br /&gt;
    print(&amp;quot;funkcijoje  kintamasis_d =&amp;quot;, kintamasis_d)&lt;br /&gt;
    print(&amp;quot;funkcijoje  kintamasis_e =&amp;quot;, kintamasis_e)&lt;br /&gt;
    return kintamasis_b + 10&lt;br /&gt;
&lt;br /&gt;
kintamasis_c = funkcija(kintamasis_b)&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;kintamasis_a =&amp;quot;, kintamasis_a)&lt;br /&gt;
print(&amp;quot;kintamasis_b =&amp;quot;, kintamasis_b)&lt;br /&gt;
print(&amp;quot;kintamasis_c =&amp;quot;, kintamasis_c)&lt;br /&gt;
print(&amp;quot;kintamasis_d =&amp;quot;, kintamasis_d)&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  kintamasis_a =  15&lt;br /&gt;
 funkcijoje  kintamasis_b =  115&lt;br /&gt;
 funkcijoje  kintamasis_d =  30&lt;br /&gt;
 funkcijoje  kintamasis_e =  25&lt;br /&gt;
 kintamasis_a =  10&lt;br /&gt;
 kintamasis_b =  15&lt;br /&gt;
 kintamasis_c =  125&lt;br /&gt;
 kintamasis_d = &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;kintamasis_d = &amp;quot;, kintamasis_d)&lt;br /&gt;
 NameError: pavadinimas 'kintamasis_d' yra neapibrėžtas&lt;br /&gt;
&lt;br /&gt;
Šiame pavyzdyje kintamieji &amp;lt;code&amp;gt;kintamasis_a&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;kintamasis_b&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;kintamasis_d&amp;lt;/code&amp;gt;, esantys funkcijos viduje, yra lokalūs kintamieji. Po paskutinės funkcijos eilutės &amp;lt;code&amp;gt;return kintamasis_b + 10&amp;lt;/code&amp;gt; įvykdymo, visi jie nustoja egzistuoti. Kintamasis &amp;lt;code&amp;gt;kintamasis_a&amp;lt;/code&amp;gt; yra parametro pavadinimas, todėl tai jį automatiškai padaro lokaliu kintamuoju. Kintamieji &amp;lt;code&amp;gt;kintamasis_b&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;kintamasis_d&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;kintamasis_b = 100 + kintamasis_a&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;kintamasis_d = 2 * kintamasis_a&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Kai funkcija iškviečiama naudojant &amp;lt;code&amp;gt;kintamasis_c = funkcija(kintamasis_b)&amp;lt;/code&amp;gt;, 15 priskiriama kintamajam &amp;lt;code&amp;gt;kintamasis_a&amp;lt;/code&amp;gt;, nes tuo metu, kai kviečiama funkcija &amp;lt;code&amp;gt;funkcija(kintamasis_b)&amp;lt;/code&amp;gt;, globalaus &amp;lt;code&amp;gt;kintamasis_b&amp;lt;/code&amp;gt; reikšmė yra 15. Taigi &amp;lt;code&amp;gt;kintamasis_a&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;kintamasis_a&amp;lt;/code&amp;gt; ir &amp;lt;code&amp;gt;kintamasis_b&amp;lt;/code&amp;gt;, kurie buvo naudojami funkcijos viduje, dingo. Tad komanda &amp;lt;code&amp;gt;print (&amp;quot;kintamasis_a =&amp;quot;, kintamasis_a)&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;kintamasis_a&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;kintamasis_d&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;kintamasis_e&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; 's' 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; 'i' 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;s&amp;quot;&lt;br /&gt;
while pasirinkimas != &amp;quot;i&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;s&amp;quot;    #Arba pasirinkimas! = &amp;quot;i&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;
  's' spausdinti pasirinkimus&lt;br /&gt;
  'c' konvertuoti iš Celsijaus&lt;br /&gt;
  'f' konvertuoti iš Farenheitų&lt;br /&gt;
  'i' 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: '''i'''&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: '''Benas'''&lt;br /&gt;
 Labas!&lt;br /&gt;
 Mano vardas yra Benas&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;
=== Pratimai ===&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 parinktys():&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;
parinktys()&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;
        parinktys()&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;
        parinktys()&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;
        parinktys()&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;
        parinktys()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Derinimas |next=Rekursinės funkcijos}}&lt;/div&gt;</summary>
		<author><name>Artūras</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Suskai%C4%8Diuoti_iki_10&amp;diff=3989</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=3989"/>
		<updated>2022-05-21T09:39:00Z</updated>

		<summary type="html">&lt;p&gt;Artūras: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{navigation |previous=Kas čia eina? |next=Pasirinkimai}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Ciklai kol (While loops) ===&lt;br /&gt;
Šiame skyriuje susipažinsi su ciklu &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt;(liet. kol). Kaip jau sužinojai praeitame skyriuje, kompiuteris įprastai programą pradeda skaityti ir vykdyti nuo pirmos eilutės ir taip eilutė po eilutės keliauja žemyn per visas duoto kodo eilutes. Tačiau ciklas &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; šią tvarką pakeičia ir dėl to kompiuteris priėjęs šią kodo vietą eilutes skaito iki galo, pagal šio ciklo nustatytą tvarką. Štai čia yra programos su ciklo &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; pavyzdžiu:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
a = 0            # PIRMA, nustatome pradinio kintamojo a reikšmę 0 (nuliui).&lt;br /&gt;
while a &amp;lt; 10:    # Kol kintamojo a vertė yra mažesnė nei 10, programa atlieka šiuos veiksmus:&lt;br /&gt;
    a = a + 1    # Padidina kintamojo a reikšmę 1 (vienu), visai taip kaip nurodyta: a = a + 1! &lt;br /&gt;
    print(a)     # Tuomet nurodome, kad spausdintų. Viskas tam, kad pamatytumėte, kokia yra dabartinė kintamojo a vertė.&lt;br /&gt;
                 # Ir visą šitą ciklą programa vykdo tol, kol kintamojo a reikšmė bus lygi 9!? Žr. Pastabą.&lt;br /&gt;
                 &lt;br /&gt;
                 # PASTABA:&lt;br /&gt;
                 # Kintamojo a vertė padidės 1&lt;br /&gt;
                 # su kiekvienu pakartojimu ar ciklu, kol pasieks nustatytą sąlygą ir sustos.&lt;br /&gt;
                 # pvz. a = 1, tada a = 2, tada a = 3 ir t.t., kol a bus lygus 9 (a = 9), tada...&lt;br /&gt;
                 # kodas baigs pridėjinėti po 1 prie a, nes taps lygus 10 (a = 10) kaip ir &lt;br /&gt;
                 # numatyta mūsų parašytoje sąlygoje. &lt;br /&gt;
                 # O kai mūsų nurodyta sąlyga yra patenkinama, programa atspausdina rezultatą.&lt;br /&gt;
                 #              --&lt;br /&gt;
                 # While a &amp;lt; 10: |&lt;br /&gt;
                 #     a = a + 1 |&amp;lt;--[ Ciklo Kol sąlygos blokas ]&lt;br /&gt;
                 #     print (a) |&lt;br /&gt;
                 #              --&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Na, o jeigu paleidžiame programą, tai turime štai tokį įdomų rezultatą: &lt;br /&gt;
&lt;br /&gt;
 1&lt;br /&gt;
 2&lt;br /&gt;
 3&lt;br /&gt;
 4&lt;br /&gt;
 5&lt;br /&gt;
 6&lt;br /&gt;
 7&lt;br /&gt;
 8&lt;br /&gt;
 9&lt;br /&gt;
 10&lt;br /&gt;
&lt;br /&gt;
(Tikriausiai iki šios pamokos net nesusimąstei, kad kompiuterį gali paversti pigiu skaičiuotuvu...)&lt;br /&gt;
&lt;br /&gt;
Na, o dabar pasiaiškinkime kaip veikia ši programa. Pirmiausia kompiuteris mato eilutę &amp;lt;code&amp;gt;a = 0&amp;lt;/code&amp;gt; ir nustato &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; reikšmę lygią nuliui. Tada programa mato sąlygą &amp;lt;code&amp;gt;while a &amp;lt; 10:&amp;lt;/code&amp;gt;, todėl kompiuteris patikrina, ar &amp;lt;code&amp;gt;a &amp;lt; 10&amp;lt;/code&amp;gt;. Kompiuteriui pirmą kartą matant šį teiginį, &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; yra lygus 0, ir akivaizdu, kad turima reikšmė yra mažesnė nei 10. Kitaip tariant, kol &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; yra mažesnis skaičius nei dešimt, tol kompiuteris tikrins teiginį ir kartos jį (t.y. pridėjinės po 1). Ciklas baigsis, kai &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; bus lygus dešimčiai. Kadangi šiame kode daugiau nieko nėra, tai programa sustoja.&lt;br /&gt;
&lt;br /&gt;
ĮSIDĖMĖK: Nepamiršk parašyti dvitaškio &amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt; eilutės pabaigoje, tik taip kompiuteris supras, kad čia yra komanda!&lt;br /&gt;
&lt;br /&gt;
Kitas ciklo &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; pavyzdys:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
a = 1&lt;br /&gt;
s = 0&lt;br /&gt;
print('Į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'', lietuviškai ''teisinga'' arba ''tiesa'', paprastai programavime dar rašomas kaip 1). Kaip programą sustabdyti? Paprasčiausiai paspausk ctrl + c mygtukus.&lt;br /&gt;
&lt;br /&gt;
=== Pavyzdžiai ===&lt;br /&gt;
==== Fibonačio skaičių seka ====&lt;br /&gt;
Fibonačio skaičių seka – sveikųjų skaičių seka. Seka prasideda šiais skaičiais: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233. Kiekvienas šios sekos skaičius lygus dviejų prieš jį einančių skaičių sumai. Toliau parodysiu, kaip gali atvaizduoti pirmus dvidešimt Fibonačio skaičius 3 skirtingais būdais.&lt;br /&gt;
&lt;br /&gt;
'''Fibonacci-metodas1.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Ši programa skaičiuoja Fibonačio seką&lt;br /&gt;
a = 0&lt;br /&gt;
b = 1&lt;br /&gt;
pradinis_skačius = 0&lt;br /&gt;
maksimalus_skaičius = 20&lt;br /&gt;
&lt;br /&gt;
while pradinis_skačius &amp;lt; maksimalus_skaičius:&lt;br /&gt;
    pradinis_skačius = pradinis_skačius + 1&lt;br /&gt;
    print(a, end = &amp;quot; &amp;quot;)  # Atkreipkite dėmesį į end = &amp;quot; &amp;quot; spausdinimo funkcijos argumentuose  &lt;br /&gt;
                       # būtent tai neleidžia sukurti naujos eilutės.&lt;br /&gt;
    senas_a = a    # turime sekti, nes mes jį keičiame.&lt;br /&gt;
    a = b&lt;br /&gt;
    b = senas_a + b&lt;br /&gt;
print()  # gauna naują (tuščią) eilutę.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Išvestis :&lt;br /&gt;
 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181&lt;br /&gt;
&lt;br /&gt;
Įsidėmėk, kad išvestis yra vienoje eilutėje dėl papildomų argumentų &amp;lt;code&amp;gt;end = &amp;quot; &amp;quot;&amp;lt;/code&amp;gt; funkcijos &amp;lt;code&amp;gt;print&amp;lt;/code&amp;gt; argumentuose.&lt;br /&gt;
&lt;br /&gt;
'''Fibonacci-metodas2.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Supaprastintas ir greitesnis Fibonačio sekos apskaičiavimo metodas&lt;br /&gt;
a = 0&lt;br /&gt;
b = 1&lt;br /&gt;
pradinis_skačius = 0&lt;br /&gt;
maksimalus_skaičius = 10&lt;br /&gt;
&lt;br /&gt;
while pradinis_skačius &amp;lt; maksimalus_skaičius:&lt;br /&gt;
    pradinis_skačius = pradinis_skačius + 1&lt;br /&gt;
    print(a, b, end=&amp;quot; &amp;quot;)  # Įsidėmėk end=&amp;quot; &amp;quot;&lt;br /&gt;
    a = a + b    &lt;br /&gt;
    b = a + b&lt;br /&gt;
print()  # gauna naują (tuščią) eilutę.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Išvestis:&lt;br /&gt;
 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181&lt;br /&gt;
&lt;br /&gt;
'''Fibonacci-metodas3.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
a = 0&lt;br /&gt;
b = 1&lt;br /&gt;
pradinis_skačius = 0&lt;br /&gt;
maksimalus_skaičius = 20&lt;br /&gt;
&lt;br /&gt;
#kai ciklas prasideda, mes jame pasiliekame&lt;br /&gt;
while pradinis_skačius &amp;lt; maksimalus_skaičius:&lt;br /&gt;
    pradinis_skačius += 1&lt;br /&gt;
    senas_a = a&lt;br /&gt;
    a = a + b&lt;br /&gt;
    b = senas_a&lt;br /&gt;
    print(senas_a,end=&amp;quot; &amp;quot;)&lt;br /&gt;
print()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Išvestis:&lt;br /&gt;
 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181&lt;br /&gt;
&lt;br /&gt;
==== Įvesk slaptažodį ====&lt;br /&gt;
'''Slaptaždis.py'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Laukia, kol bus įvestas slaptažodis. Naudok „ctrl+ C“, kad sustabdytum programą&lt;br /&gt;
# be slaptažodžio&lt;br /&gt;
&lt;br /&gt;
#atkreipk dėmesį, kad tai neturi būti slaptažodis, kad&lt;br /&gt;
# ciklas while turi prasisukti bent kartą.&lt;br /&gt;
slaptažodis= str()&lt;br /&gt;
&lt;br /&gt;
# įsidėmėk != reiškia nelygu&lt;br /&gt;
while slaptažodis!= &amp;quot;Angis&amp;quot;:&lt;br /&gt;
    slaptažodis = input(&amp;quot;Slaptažodis: &amp;quot;)&lt;br /&gt;
print(&amp;quot;Prisijungimas sėkmingas&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kaip programa veikia:&lt;br /&gt;
 Slaptažodis: '''auo'''&lt;br /&gt;
 Slaptažodis: '''y22'''&lt;br /&gt;
 Slaptažodis: '''slaptažodis'''&lt;br /&gt;
 Slaptažodis: '''Sezamai atsiverk''&lt;br /&gt;
 Slaptažodis: '''Angis'''&lt;br /&gt;
 Prisijungimas sėkmingas&lt;br /&gt;
&lt;br /&gt;
=== Pratimai ===&lt;br /&gt;
Parašyk programą, kuri prašo vartotojo įvesti skaičius tol, kol jis įveda &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;. Tada programa turi išvesti skaičių vidurkį. Gali remtis skyriuje aptartu skaičių sumos pavyzdžiu.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot;&lt;br /&gt;
! colspan=2 | Sprendimas &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
vardas = input(&amp;quot;Koks tavo prisijungimo vardas?: &amp;quot;)&lt;br /&gt;
slaptažodis = input(&amp;quot;Koks tavo slaptažodis: &amp;quot;)&lt;br /&gt;
print(&amp;quot;Kad užrakintum kompiuterį, parašyk: užrakinti&amp;quot;)&lt;br /&gt;
įvesta_komanda = None&lt;br /&gt;
input1 = None&lt;br /&gt;
input2 = None&lt;br /&gt;
while įvesta_komanda != &amp;quot;užrakinti&amp;quot;:&lt;br /&gt;
    įvesta_komanda = input(&amp;quot;Kokia tavo komanda: &amp;quot;)&lt;br /&gt;
&lt;br /&gt;
while input1 != vardas:&lt;br /&gt;
    input1 = input(&amp;quot;Tavo prisijungimo vardas: &amp;quot;)&lt;br /&gt;
&lt;br /&gt;
while input2 != slaptažodis:&lt;br /&gt;
    input2 = input(&amp;quot;Tavo slaptažodis: &amp;quot;)&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Prisijungimas sėkmingas&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jei nori, kad programa veiktų nepertraukiamai, tiesiog pridėk &amp;lt;code&amp;gt;while 1 == 1: &amp;lt;/code&amp;gt;prieš visą programą. Tik nepamiršk, kad reikia visą likusią programos dalį, t.y. ciklo bloką reikia atitraukti nuo krašto.&lt;br /&gt;
&lt;br /&gt;
Kitas sprendimo būdas&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
vardas = input('Nustatyti vardą: ')&lt;br /&gt;
slaptažodis = input('Nustatyti slaptažodį: ')&lt;br /&gt;
while 1 == 1:&lt;br /&gt;
    vardospėjimas=&amp;quot;&amp;quot;&lt;br /&gt;
    slaptažodžiospėjimas=&amp;quot;&amp;quot;&lt;br /&gt;
    raktas=&amp;quot;&amp;quot;&lt;br /&gt;
    while (vardospėjimas!= vardas) or (slaptažodžiospėjimas!= slaptažodis):&lt;br /&gt;
        vardospėjimas = input('Vardas? ')&lt;br /&gt;
        slaptažodžiospėjimas= input('Slaptažodis? ')&lt;br /&gt;
    print(&amp;quot;Labas,&amp;quot;, vardas, &amp;quot;. Parašyk užrakinti, kad užrakintum.&amp;quot;)&lt;br /&gt;
    while raktas != &amp;quot;užrakinti&amp;quot;:&lt;br /&gt;
        raktas = input(&amp;quot;&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Atkreipk dėmesį į &amp;lt;code&amp;gt;or&amp;lt;/code&amp;gt;, kuris yra prie &amp;lt;code&amp;gt;(vardospėjimas!= vardas) or (slaptažodžiospėjimas!= slaptažodis)&amp;lt;/code&amp;gt;, kurių dar neįvedėme. Pabandyk suprasti šią logiką ir kaip ji veikia.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Kas čia eina? |next=Pasirinkimai}}&lt;/div&gt;</summary>
		<author><name>Artūras</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Kas_%C4%8Dia_eina%3F&amp;diff=3988</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=3988"/>
		<updated>2022-05-21T09:38:42Z</updated>

		<summary type="html">&lt;p&gt;Artūras: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{navigation |previous=Labas, Pasauli |next=Suskaičiuoti iki 10}}&lt;br /&gt;
{{BookCat}}&lt;br /&gt;
&lt;br /&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? '''Benas'''&lt;br /&gt;
 Gali praeiti, Benas&lt;br /&gt;
&lt;br /&gt;
''Pastaba: Jei paleisi kodą spausdamas &amp;quot;F5&amp;quot;, Python išvestis bus tik tokia:''&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 [http://www.ims.mii.lt/EK%C5%BD/enciklo.html?word=apvalkalas apvalkalą] 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;Benas&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 Benas&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;Benas&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;Benas&amp;quot;&amp;lt;/code&amp;gt; ir perskaitys ją kaip &amp;quot;Padėk tekstą &amp;lt;code&amp;gt;Benas&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;
=== Pratimai ===&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>Artūras</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Labas,_Pasauli&amp;diff=3987</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=3987"/>
		<updated>2022-05-21T09:36:25Z</updated>

		<summary type="html">&lt;p&gt;Artūras: &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;
&lt;br /&gt;
{{navigation |previous=Įvadas |next=Kas čia eina?}}&lt;br /&gt;
&lt;br /&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 „Labas, Pasauli!“ arba angliškai „Hello, World!“.&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 rekomenduoju naudoti kodo redaktorių &amp;lt;code&amp;gt;LR NŠA Python&amp;lt;/code&amp;gt;, kaip aprašytą skyriuje [[Python Vadovėlis/Įvadas#Python_ir_Visual_Studio_Code_diegimas|Python ir Visual Studio Code diegimas]]. Savo kompiuteryje atsidaryk šią programavimo aplinką, sukurk naują failą (File -&amp;gt; New File arba Failas -&amp;gt; Naujas failas), įkopijuok šį kodą ir tuomet failą išsaugok (File -&amp;gt; Save arba Failas -&amp;gt; Išsaugoti) pavadinimu &amp;lt;code&amp;gt;labas.py&amp;lt;/code&amp;gt;.&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;
 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;labas.py&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Dabar parašytą programą paleisk vykdyti, tiesiog konsolėje parašęs &amp;lt;code&amp;gt;python3 labas.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;
=== Eime toliau ===&lt;br /&gt;
&lt;br /&gt;
Labai rekomenduoju 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;Gyveno kadaise Paryžiuj bobutė –&amp;quot;)&lt;br /&gt;
print(&amp;quot;Prie Eifelio bokšto turėjo ji butą.&amp;quot;)&lt;br /&gt;
print(&amp;quot;Ji visko pasauly klausytis norėjo,&amp;quot;)&lt;br /&gt;
print(&amp;quot;Bet viena kairiąja ausim tegirdėjo.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kai paleidi šią programą, ji parašo J. Erlicko eilėraščio Bobutė iš Paryžiaus (2) ištrauką:&lt;br /&gt;
&lt;br /&gt;
 Gyveno kadaise Paryžiuj bobutė –&lt;br /&gt;
 Prie Eifelio bokšto turėjo ji butą.&lt;br /&gt;
 Ji visko pasauly klausytis norėjo,&lt;br /&gt;
 Bet viena kairiąja ausim tegirdėjo.&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;Gyveno kadaise Paryžiuj bobutė –&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;
 Gyveno kadaise Paryžiuj bobutė –&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;Prie Eifelio bokšto turėjo ji butą.&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;
 Prie Eifelio bokšto turėjo ji butą.&lt;br /&gt;
&lt;br /&gt;
Taip kompiuteris žiūri į kiekvieną eilutę *iš eilės*, ir ją įvykdęs - 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, angliškai 'string'). Kitas tekstinės reikšmės pavyzdys yra &amp;lt;code&amp;gt;&amp;quot;Gyveno kadaise Paryžiuj bobutė&amp;quot;&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Užrašyta funkcija su argumentais yra komanda, kurią 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, komandą 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;
====Ženklo \n naudojimas====&lt;br /&gt;
&amp;lt;code&amp;gt;\n&amp;lt;/code&amp;gt; (kaitos ženklas, angliškai - 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;
# Atkreipk dėmesį, python'e aritmetikoje skaičiai po kablelio rašomi su tašku (.)&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š kairė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'o 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;liekana&amp;quot;, 13 % 3)&lt;br /&gt;
print()&lt;br /&gt;
print(&amp;quot;Penktoji klasė&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 liekana 1&lt;br /&gt;
 &lt;br /&gt;
 Penktoji klasė&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ą, pavardę ir gimtadienį kaip atskiras eilutes.&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ą, pavardę ir gimtadienį kaip atskiras eilutes.&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;1815 m. gruodžio 10 d.&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;1879 m. kovo 14 d.&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;Styvas Džobsas&amp;quot;), (&amp;quot;gimęs&amp;quot;), (&amp;quot;1955 m. vasario 24 d.&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.C4.97s_operacijos|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>Artūras</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=3986</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=3986"/>
		<updated>2022-05-21T09:30:11Z</updated>

		<summary type="html">&lt;p&gt;Artūras: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{navigation |previous=Siekiant tobulumo|next=Įvadas į importuotas bibliotekas ir kitas funkcijas}}&lt;br /&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=Siekiant tobulumo|next=Įvadas į importuotas bibliotekas ir kitas funkcijas}}&lt;br /&gt;
{{BookCat}}&lt;/div&gt;</summary>
		<author><name>Artūras</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Siekiant_tobulumo&amp;diff=3985</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=3985"/>
		<updated>2022-05-21T09:28:53Z</updated>

		<summary type="html">&lt;p&gt;Artūras: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{navigation |previous=Failų tvarkymas |next=Įvadas į objektinį programavimą Python 3}}&lt;br /&gt;
&lt;br /&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ų tvarkymas |next=Įvadas į objektinį programavimą Python 3}}&lt;br /&gt;
{{BookCat}}&lt;/div&gt;</summary>
		<author><name>Artūras</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis&amp;diff=3984</id>
		<title>Python Vadovėlis</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis&amp;diff=3984"/>
		<updated>2022-05-21T09:27:43Z</updated>

		<summary type="html">&lt;p&gt;Artūras: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Tai - standartinės Python programavimo kalbos vadovėlis, išverstas iš [https://en.wikibooks.org/wiki/Non-Programmer%27s_Tutorial_for_Python_3 Non programmer's Tutorial for Python 3].&lt;br /&gt;
&lt;br /&gt;
Šis vadovėlis yra atvirojo kodo, [https://www.gnu.org/licenses/gpl-3.0.html GPL v3] licencija.&lt;br /&gt;
&lt;br /&gt;
==Turinys==&lt;br /&gt;
{{print version}}&lt;br /&gt;
{{PDF version}}&lt;br /&gt;
;[[Python_Vadovėlis/Autoriai|Autoriai]] &lt;br /&gt;
: Originalaus (angliško) vadovėlio autoriai ir vertėjai į lietuvių kalbą.&lt;br /&gt;
;[[Python_Vadovėlis/Įžanga|Įžanga]]&lt;br /&gt;
: Įžanginiai žodžiai&lt;br /&gt;
;[[Python_Vadovėlis/Įvadas|Įvadas]]&lt;br /&gt;
: Python'o diegimas ir naudojimas&lt;br /&gt;
;[[Python_Vadovėlis/Labas, Pasauli|Labas, Pasauli]]&lt;br /&gt;
: Garsioji pirmoji programa &amp;amp;ndash; ekrano išvestis &amp;amp;ndash; kintamieji &amp;amp;ndash; skaičiai ir skaičiavimai&lt;br /&gt;
;[[Python_Vadovėlis/Kas čia eina?|Kas čia eina?]]&lt;br /&gt;
: Interaktyvi įvestis &amp;amp;ndash; tekstinė eilutė&lt;br /&gt;
;[[Python_Vadovėlis/Suskaičiuoti iki 10|Suskaičiuoti iki 10]]&lt;br /&gt;
: Ciklai &amp;lt;tt&amp;gt;while&amp;lt;/tt&amp;gt;&lt;br /&gt;
;[[Python_Vadovėlis/Pasirinkimai|Pasirinkimai]]&lt;br /&gt;
: &amp;lt;tt&amp;gt;if&amp;lt;/tt&amp;gt; sakiniai&lt;br /&gt;
;[[Python_Vadovėlis/Derinimas|Derinimas]]&lt;br /&gt;
: Išsiaiškinti, kas negerai&lt;br /&gt;
;[[Python_Vadovėlis/Funkcijų apibrėžimas|Funkcijų apibrėžimas]]&lt;br /&gt;
: Programų struktūrizavimas naudojant funkcijas&lt;br /&gt;
;[[Python_Vadovėlis/Rekursinės funkcijos|Rekursinės funkcijos]]&lt;br /&gt;
: (Beveik) stulbinantis pavyzdys, kaip programuotojai gali mąstyti&lt;br /&gt;
;[[Python_Vadovėlis/Sąrašai|Sąrašai]]&lt;br /&gt;
: Kintamieji, kuriuose yra daugiau nei viena reikšmė&lt;br /&gt;
;[[Python_Vadovėlis/Ciklai For|Ciklai For]]&lt;br /&gt;
: Dar vienos rūšies ciklai&lt;br /&gt;
;[[Python_Vadovėlis/Loginiai reiškiniai|Loginiai reiškiniai]]&lt;br /&gt;
: Kompiuterinė logika &amp;amp;ndash; &amp;lt;tt&amp;gt;True&amp;lt;/tt&amp;gt; ir &amp;lt;tt&amp;gt;False&amp;lt;/tt&amp;gt; &amp;amp;ndash; &amp;lt;tt&amp;gt;and&amp;lt;/tt&amp;gt; ir &amp;lt;tt&amp;gt;or&amp;lt;/tt&amp;gt; &amp;amp;ndash; &amp;lt;tt&amp;gt;not&amp;lt;/tt&amp;gt;&lt;br /&gt;
;[[Python_Vadovėlis/Žodynai|Žodynai]]&lt;br /&gt;
: Kintamieji, kuriuose yra raktų/reikšmių poros&lt;br /&gt;
;[[Python_Vadovėlis/Modulių naudojimas|Modulių naudojimas]]&lt;br /&gt;
: Standartinio funkcionalumo plėtiniai&lt;br /&gt;
;[[Python_Vadovėlis/Daugiau apie sąrašus|Daugiau apie sąrašus]]&lt;br /&gt;
: Sąrašų elementų ar dalių naudojimas&lt;br /&gt;
;[[Python_Vadovėlis/Daugiau apie tekstines eilutes|Daugiau apie tekstines eilutes]]&lt;br /&gt;
: Pažangesnės teksto manipuliacijos&lt;br /&gt;
;[[Python_Vadovėlis/Failų tvarkymas|Failų tvarkymas]]&lt;br /&gt;
: Skaitymas iš failų ir rašymas į failus&lt;br /&gt;
;[[Python_Vadovėlis/Siekiant tobulumo|Siekiant tobulumo]]&lt;br /&gt;
: Kaip tvarkyti klaidas&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
;[[Python_Vadovėlis/Rekursija|Rekursija]]&lt;br /&gt;
: Rekursinės funkcijos&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
;[[Python_Vadovėlis/Įvadas į objektinį programavimą Python 3|Įvadas į objektinį programavimą Python 3]]&lt;br /&gt;
: OOP pagrindai (Objektinis programavimas, angl. ''Object-Oriented Programming'')&lt;br /&gt;
;[[Python_Vadovėlis/Įvadas į importuotas bibliotekas ir kitas funkcijas|Įvadas į importuotas bibliotekas ir kitas funkcijas]]&lt;br /&gt;
: Pagrindinės funkcijos iš įvairių bibliotekų.&lt;br /&gt;
;[[Python_Vadovėlis/Pabaiga|Pabaiga]]&lt;br /&gt;
: Ką toliau daryti&lt;br /&gt;
;[[Python_Vadovėlis/DUK|D.U.K.]]&lt;br /&gt;
: Dažnai užduodami klausimai&lt;br /&gt;
;[[Python_Vadovėlis/Terminai|Terminai]]&lt;br /&gt;
: Terminų žodynas&lt;br /&gt;
&lt;br /&gt;
{{Alphabetical|N}}&lt;br /&gt;
{{status|100%}}&lt;br /&gt;
__NOTOC__ __NOEDITSECTION__&lt;/div&gt;</summary>
		<author><name>Artūras</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Autoriai&amp;diff=3983</id>
		<title>Python Vadovėlis/Autoriai</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Autoriai&amp;diff=3983"/>
		<updated>2022-05-21T09:26:03Z</updated>

		<summary type="html">&lt;p&gt;Artūras: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Originalaus (angliško) vadovėlio autoriai&lt;br /&gt;
&lt;br /&gt;
; Josh Cogliati&lt;br /&gt;
: Jrincayc, jjcogliati-jan2007 AT yahoo.com&lt;br /&gt;
&lt;br /&gt;
=== Angliškos versijos bendraautoriai ===&lt;br /&gt;
* Mitchell Aikens, LGIT, WSIT, AAS &lt;br /&gt;
* Kiah Morante &lt;br /&gt;
* Elizabeth Cogliati&lt;br /&gt;
* James A. Brown&lt;br /&gt;
* Joe Oppegaard&lt;br /&gt;
* Benjamin Hell &lt;br /&gt;
&lt;br /&gt;
=== Lietuviškas vertimas ir modifikacija ===&lt;br /&gt;
* Artūras Nikončukas, Visma Lietuva&lt;br /&gt;
* Laura Kutovaja, Visma Lietuva&lt;br /&gt;
* Mantas Urbonas, Visma Lietuva&lt;br /&gt;
* Martynas Teleiša, Visma lietuva&lt;br /&gt;
* Mindaugas Pikelis, Visma Lietuva&lt;br /&gt;
* Modesta Jeremičienė, Visma Lietuva&lt;br /&gt;
* Monika Bijeikytė, Visma Lietuva&lt;br /&gt;
* Povilas Jeremičius, Visma Lietuva&lt;br /&gt;
* Rokas Cvirka, Visma Lietuva&lt;br /&gt;
* Živilė Bliūdžiūtė, Visma Lietuva&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=BEGINNING |next=Įžanga}}&lt;br /&gt;
{{BookCat}}&lt;/div&gt;</summary>
		<author><name>Artūras</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis&amp;diff=3982</id>
		<title>Python Vadovėlis</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis&amp;diff=3982"/>
		<updated>2022-05-21T09:25:33Z</updated>

		<summary type="html">&lt;p&gt;Artūras: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Tai - standartinės Python programavimo kalbos vadovėlis, išverstas iš [https://en.wikibooks.org/wiki/Non-Programmer%27s_Tutorial_for_Python_3 Non programmer's Tutorial for Python 3].&lt;br /&gt;
&lt;br /&gt;
Šis vadovėlis yra atvirojo kodo, [https://www.gnu.org/licenses/gpl-3.0.html GPL v3] licencija.&lt;br /&gt;
&lt;br /&gt;
==Turinys==&lt;br /&gt;
{{print version}}&lt;br /&gt;
{{PDF version}}&lt;br /&gt;
;[[Python_Vadovėlis/Autoriai|Autoriai]] &lt;br /&gt;
: Originalaus (angliško) vadovėlio autoriai ir vertėjai į lietuvių kalbą.&lt;br /&gt;
;[[Python_Vadovėlis/Įžanga|Įžanga]]&lt;br /&gt;
: Įžanginiai žodžiai&lt;br /&gt;
;[[Python_Vadovėlis/Įvadas|Įvadas]]&lt;br /&gt;
: Python'o diegimas ir naudojimas&lt;br /&gt;
;[[Python_Vadovėlis/Labas, Pasauli|Labas, Pasauli]]&lt;br /&gt;
: Garsioji pirmoji programa &amp;amp;ndash; ekrano išvestis &amp;amp;ndash; kintamieji &amp;amp;ndash; skaičiai ir skaičiavimai&lt;br /&gt;
;[[Python_Vadovėlis/Kas čia eina?|Kas čia eina?]]&lt;br /&gt;
: Interaktyvi įvestis &amp;amp;ndash; tekstinė eilutė&lt;br /&gt;
;[[Python_Vadovėlis/Suskaičiuoti iki 10|Suskaičiuoti iki 10]]&lt;br /&gt;
: Ciklai &amp;lt;tt&amp;gt;while&amp;lt;/tt&amp;gt;&lt;br /&gt;
;[[Python_Vadovėlis/Pasirinkimai|Pasirinkimai]]&lt;br /&gt;
: &amp;lt;tt&amp;gt;if&amp;lt;/tt&amp;gt; sakiniai&lt;br /&gt;
;[[Python_Vadovėlis/Derinimas|Derinimas]]&lt;br /&gt;
: Išsiaiškinti, kas negerai&lt;br /&gt;
;[[Python_Vadovėlis/Funkcijų apibrėžimas|Funkcijų apibrėžimas]]&lt;br /&gt;
: Programų struktūrizavimas naudojant funkcijas&lt;br /&gt;
;[[Python_Vadovėlis/Rekursinės funkcijos|Rekursinės funkcijos]]&lt;br /&gt;
: (Beveik) stulbinantis pavyzdys, kaip programuotojai gali mąstyti&lt;br /&gt;
;[[Python_Vadovėlis/Sąrašai|Sąrašai]]&lt;br /&gt;
: Kintamieji, kuriuose yra daugiau nei viena reikšmė&lt;br /&gt;
;[[Python_Vadovėlis/Ciklai For|Ciklai For]]&lt;br /&gt;
: Dar vienos rūšies ciklai&lt;br /&gt;
;[[Python_Vadovėlis/Loginiai reiškiniai|Loginiai reiškiniai]]&lt;br /&gt;
: Kompiuterinė logika &amp;amp;ndash; &amp;lt;tt&amp;gt;True&amp;lt;/tt&amp;gt; ir &amp;lt;tt&amp;gt;False&amp;lt;/tt&amp;gt; &amp;amp;ndash; &amp;lt;tt&amp;gt;and&amp;lt;/tt&amp;gt; ir &amp;lt;tt&amp;gt;or&amp;lt;/tt&amp;gt; &amp;amp;ndash; &amp;lt;tt&amp;gt;not&amp;lt;/tt&amp;gt;&lt;br /&gt;
;[[Python_Vadovėlis/Žodynai|Žodynai]]&lt;br /&gt;
: Kintamieji, kuriuose yra raktų/reikšmių poros&lt;br /&gt;
;[[Python_Vadovėlis/Modulių naudojimas|Modulių naudojimas]]&lt;br /&gt;
: Standartinio funkcionalumo plėtiniai&lt;br /&gt;
;[[Python_Vadovėlis/Daugiau apie sąrašus|Daugiau apie sąrašus]]&lt;br /&gt;
: Sąrašų elementų ar dalių naudojimas&lt;br /&gt;
;[[Python_Vadovėlis/Daugiau apie tekstines eilutes|Daugiau apie tekstines eilutes]]&lt;br /&gt;
: Pažangesnės teksto manipuliacijos&lt;br /&gt;
;[[Python_Vadovėlis/Failų tvarkymas|Failų tvarkymas]]&lt;br /&gt;
: Skaitymas iš failų ir rašymas į failus&lt;br /&gt;
;[[Python_Vadovėlis/Siekiant tobulumo|Siekiant tobulumo]]&lt;br /&gt;
: Kaip tvarkyti klaidas&lt;br /&gt;
;[[Python_Vadovėlis/Rekursija|Rekursija]]&lt;br /&gt;
: Rekursinės funkcijos&lt;br /&gt;
;[[Python_Vadovėlis/Įvadas į objektinį programavimą Python 3|Įvadas į objektinį programavimą Python 3]]&lt;br /&gt;
: OOP pagrindai (Objektinis programavimas, angl. ''Object-Oriented Programming'')&lt;br /&gt;
;[[Python_Vadovėlis/Įvadas į importuotas bibliotekas ir kitas funkcijas|Įvadas į importuotas bibliotekas ir kitas funkcijas]]&lt;br /&gt;
: Pagrindinės funkcijos iš įvairių bibliotekų.&lt;br /&gt;
;[[Python_Vadovėlis/Pabaiga|Pabaiga]]&lt;br /&gt;
: Ką toliau daryti&lt;br /&gt;
;[[Python_Vadovėlis/DUK|D.U.K.]]&lt;br /&gt;
: Dažnai užduodami klausimai&lt;br /&gt;
;[[Python_Vadovėlis/Terminai|Terminai]]&lt;br /&gt;
: Terminų žodynas&lt;br /&gt;
&lt;br /&gt;
{{Alphabetical|N}}&lt;br /&gt;
{{status|100%}}&lt;br /&gt;
__NOTOC__ __NOEDITSECTION__&lt;/div&gt;</summary>
		<author><name>Artūras</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Terminai&amp;diff=3981</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=3981"/>
		<updated>2022-05-21T09:22:19Z</updated>

		<summary type="html">&lt;p&gt;Artūras: Artūras perkėlė puslapį Vadovėlis/Terminai į Python Vadovėlis/Terminai be nukreipimo&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>Artūras</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/DUK&amp;diff=3980</id>
		<title>Python Vadovėlis/DUK</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/DUK&amp;diff=3980"/>
		<updated>2022-05-21T09:21:54Z</updated>

		<summary type="html">&lt;p&gt;Artūras: Artūras perkėlė puslapį Vadovėlis/DUK į Python Vadovėlis/DUK be nukreipimo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;; Kaip galiu sukurti grafinę sąsają (angl. graphical user interface, GUI) su Python? : Gali naudoti vieną iš šių bibliotekų: [https://docs.python.org/3.5/library/tkinter.html TKinter], [https://riverbankcomputing.com/software/pyqt/intro PyQt], [https://wiki.gnome.org/Projects/PyGObject PyGobject]. Itin paprastai grafikai kurti, gali naudoti vėžliuko grafikos rėžimą &amp;lt;code&amp;gt;import turtle&amp;lt;/code&amp;gt;.&lt;br /&gt;
; Kaip galiu sukurti žaidimą su Python? : Savo žaidimą ar programėlę gali sukurti pasinaudodamas lietuviška platforma [https://angis.lrt.lt/ Angis]. Šiame puslapyje taip pat gali peržiūrėti nemokamas video pamokas ir spręsti pateiktas užduotis, taip pagerindamas savo programavimo žinias. Daugiau informacijos: https://wiki.angis.net. Kitas puikus būdas yra pasinaudoti angliška platforma [http://pygame.org PyGame].&lt;br /&gt;
; Kaip galiu sukurti vykdomąjį failą iš Python programos? : Trumpas atsakymas: Python yra interpretuojama kalba, todėl tai yra neįmanoma. Ilgas atsakymas: kažkas panašaus į vykdomąjį failą gali būti sukurta sujungiant Python interpretatorių su failu. Daugiau informacijos apie tai gali rasti šiame puslapyje http://www.python.org/doc/faq/programming/#how-can-i-create-a-stand-alone-binary-from-a-python-script&lt;br /&gt;
; Ką turėčiau daryti, jei turiu klausimų dėl vadovėlio arba radau jame klaidų? : Parašyk mums laišką elektroniniu paštu ''python.vadovelis@visma.com''.&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Pabaiga |next=Terminai}}&lt;/div&gt;</summary>
		<author><name>Artūras</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Pabaiga&amp;diff=3979</id>
		<title>Python Vadovėlis/Pabaiga</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Pabaiga&amp;diff=3979"/>
		<updated>2022-05-21T09:21:37Z</updated>

		<summary type="html">&lt;p&gt;Artūras: Artūras perkėlė puslapį Vadovėlis/Pabaiga į Python Vadovėlis/Pabaiga be nukreipimo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ir štai mes pasiekėme pabaigą. O gal pradžią? Šis vadovėlis parašytas Wikipedijoje, todėl gali siūlyti įvairius patobulinimus. Jei nori išmokti daugiau apie Python kalbą, šiame [http://www.python.org/~guido/ Guido van Rossum] sukurtame [http://docs.python.org/3/tutorial/index.html The Python Tutorial] puslapyje gali rasti daug papildomų temų. Jei atidžiai skaitei šį vadovėlį, turėtum suprasti daugumą ten esančios medžiagos. Dar keli naudingi puslapiai anglų kalba:&lt;br /&gt;
&lt;br /&gt;
* [http://www.swaroopch.com/notes/Python A Byte of Python by Swaroop C H]&lt;br /&gt;
* [https://www.datacamp.com/courses/intro-to-python-for-data-science DataCamp Interactive Python 3 Tutorial - Online]&lt;br /&gt;
* [http://anh.cs.luc.edu/python/hands-on/3.1/handsonHtml/index.html Hands-on Python Tutorial by Dr. Andrew N. Harrington]&lt;br /&gt;
&lt;br /&gt;
Tikiuosi, kad ši knyga tau suteiks pakankamai žinių, kad galėtum pradėti rašyti programinį kodą.&lt;br /&gt;
&lt;br /&gt;
Tad smagaus programavimo, tegu tai pakeičia tavo gyvenimą ir pasaulį!&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Įvadas į importuotas bibliotekas ir kitas funkcijas |next=DUK}}&lt;/div&gt;</summary>
		<author><name>Artūras</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/%C4%AEvadas_%C4%AF_importuotas_bibliotekas_ir_kitas_funkcijas&amp;diff=3978</id>
		<title>Python Vadovėlis/Įvadas į importuotas bibliotekas ir kitas funkcijas</title>
		<link rel="alternate" type="text/html" href="https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/%C4%AEvadas_%C4%AF_importuotas_bibliotekas_ir_kitas_funkcijas&amp;diff=3978"/>
		<updated>2022-05-21T09:21:20Z</updated>

		<summary type="html">&lt;p&gt;Artūras: Artūras perkėlė puslapį Vadovėlis/Įvadas į importuotas bibliotekas ir kitas funkcijas į Python Vadovėlis/Įvadas į importuotas bibliotekas ir kitas funkcijas be nukreipimo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{navigation |previous=Įvadas į objektinį programavimą Python 3 |next=Pabaiga}}&lt;br /&gt;
&lt;br /&gt;
Šiame skyriuje apžvelgsime kai kurias funkcijas iš įvairių importuotų bibliotekų, kurios yra dažniausiai naudojamos Python'e. Šis skyrius nėra būtinas norint visiškai suprasti Python'o pagrindus. Šis skyrius skirtas parodyti tolesnes Python'o galimybes, kurias galima panaudoti su tuo, ką jau žinote apie kalbą.&lt;br /&gt;
&lt;br /&gt;
=== math ===&lt;br /&gt;
&lt;br /&gt;
:Matematikos biblioteka aprėpia daug naudingų ir programoms reikalingų funkcijų, kurios atlieka įvarias matematines operacijas (kai neužtenka Python'o operatorių).&lt;br /&gt;
&lt;br /&gt;
:Šiame skyriuje daroma prielaida, kad turi matematikos žinias iki trigonometrijos kurso imtinai.&lt;br /&gt;
&lt;br /&gt;
Šiame sąraše išvardintos visos matematikos bibliotekos funkcijos:&lt;br /&gt;
*math.ceil (Suapvalina skaičių iki artimiausio skaičiaus po kablelio)&lt;br /&gt;
*math.copysign (Grąžina absoliučią reikšmę &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; su ženklu, kurį turi skaičius &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;(x, y)&amp;lt;/code&amp;gt;)&lt;br /&gt;
*math.fabs (Grąžina absoliučią skaičiaus reikšmę, kaip slankiojo kablelio reikšmę)&lt;br /&gt;
*math.factorial (Grąžina skaičiaus faktorialą)&lt;br /&gt;
*math.floor (Grąžina didžiausią sveikąjį skaičių, mažesnį arba lygų duotajam skaičiui)&lt;br /&gt;
*math.fmod (Nėra pati idealiausia funkcija su kuria galima pasiekti nurodytą tikslą. Šiame skyriuje nebus detaliau paaiškinta.)&lt;br /&gt;
*math.frexp (Už šios pamokos ribų. Šiame skyriuje nebus detaliau paaiškinta.)&lt;br /&gt;
*math.fsum (Grąžina visų skliausteliuose esančių skaičių sumą)&lt;br /&gt;
*math.isfinite (Patikrina ar skaičius yra baigtinis)&lt;br /&gt;
*math.isinf (Patikrina ar skaičius yra begalinis ar ne)&lt;br /&gt;
*math.isnan (Patikrina, ar reikšmė yra NaN (ne skaičius), ar ne)&lt;br /&gt;
*math.modf  (Už šios pamokos srities ribų. Šiame skyriuje nebus detaliau paaiškinta.)&lt;br /&gt;
*math.trunc (Už šios pamokos srities ribų. Šiame skyriuje nebus detaliau paaiškinta.)&lt;br /&gt;
*math.exp (Apskaičiuoja eksponentinę funkciją e^x, kur e yra matematinė konstanta)&lt;br /&gt;
*math.expm1 (Grąžina E^x - 1)&lt;br /&gt;
*math.log (Grąžina natūralųjį skaičiaus logaritmą)&lt;br /&gt;
*math.log1p (Grąžina log(1+skaičius))&lt;br /&gt;
*math.log10 (Grąžina skaičiaus 10 bazinį logaritmą)&lt;br /&gt;
*math.pow (Grąžina x reikšmę, pakeltą laipsniu y)&lt;br /&gt;
*math.sqrt (Grąžina skaičiaus kvadratinę šaknį)&lt;br /&gt;
*math.acos (Grąžina arccos(x))&lt;br /&gt;
*math.asin (Grąžina arcsin(x))&lt;br /&gt;
*math.atan (Grąžina arctan(x))&lt;br /&gt;
*math.cos (Grąžina reikšmės kosinusą)&lt;br /&gt;
*math.hypot (Grąžina Euklido normą)&lt;br /&gt;
*math.sin (Grąžina reikšmės sinusą)&lt;br /&gt;
*math.tan (Grąžina reikšmės tangentą)&lt;br /&gt;
*math.degrees (Paverčia radianus į laipsnius)&lt;br /&gt;
*math.radians (Paverčia laipsnius į radianus)&lt;br /&gt;
*math.pi (Grąžina π reikšmę)&lt;br /&gt;
*math.e (Grąžina e reikšmę)&lt;br /&gt;
&lt;br /&gt;
:Žinoma, neapimsime visų šių funkcijų, bet padengsime didelę jų dalį.&lt;br /&gt;
&lt;br /&gt;
Pradėkime nuo dviejų konstantų matematikos bibliotekoje. &amp;lt;code&amp;gt;math.pi&amp;lt;/code&amp;gt; yra matematinė konstanta „π“, tavo kompiuteryje pasiekiamu tikslumu. &amp;lt;code&amp;gt;math.e&amp;lt;/code&amp;gt; yra matematinė konstanta „e“, tavo kompiuteryje pasiekiamu tikslumu.&lt;br /&gt;
Štai yra abiejų konstantų, įvestų interaktyviuoju režimu Python'o terminale, pavyzdys:&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; import math&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; math.e&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;2.718281828459045&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; math.pi&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;3.141592653589793&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Šios konstantos gali būti saugomos kintamajame, kaip ir bet kuris kitas skaičius. Žemiau pateikiamas būtent toks pavyzdys ir parodytos paprastos šių kintamųjų operacijos:&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; conste = math.e&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; (conste + 5 / 2) * 2.21&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;11.532402840894488&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; constpi = math.pi&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; (((7 /2.1) % constpi) * 2)&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;0.38348135948707984&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dabar pažvelk į funkcijas: pradėk nuo sąrašo viršaus ir judėk žemyn (kai kurios funkcijos bus praleistos).&lt;br /&gt;
Kai žiūrėsi kiekvieną iš pavyzdžių, pabandyk išsiaiškinti, ką kiekviena funkcija daro. Šalia bus pateiktas sakinys ar du, kurie turėtų tau padėti.&lt;br /&gt;
&lt;br /&gt;
Žemiau pateikiamas kiekvienos &amp;lt;code&amp;gt;math&amp;lt;/code&amp;gt; modulio funkcijos pavyzdys ir kaip ji naudojama (išskyrus anksčiau nurodytas funkcijas, kurių nereikia paaiškinti)&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; import math&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; math.ceil(4.5) ** Suapvalina skaičių iki artimiausio skaičiaus po kablelio **&lt;br /&gt;
 5&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; math.ceil(4.1)&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;5&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; math.copysign(4, -.4)  ** Grąžina absoliučią reikšmę &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; su ženklu, kurį turi skaičius &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;(x, y)&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;-4.0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; math.copysign(-4, 4)&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;4.0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; math.fabs(-44)  ** Grąžina absoliučią skaičiaus reikšmę, kaip slankiojo kablelio reikšmę **&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;44.0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; math.factorial(4)  **  Grąžina skaičiaus faktorialą **&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;24&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; math.floor(4.3)  ** Grąžina didžiausią sveikąjį skaičių, mažesnį arba lygų duotajam skaičiui **&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;4&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; math.floor(4.99999)&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;4&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; math.fsum([.1,.2,5,45.2,-.054,.4]) **  Grąžina visų skliausteliuose esančių skaičių sumą. Funkcija ne visada tiksli **&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;50.846000000000004&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; math.isfinite(3) ** Grąžina &amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt;, jei reikšmė nėra begalinė ar NaN. Kitu atveju, grąžina &amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt;. **&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;True&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{navigation |previous=Įvadas į objektinį programavimą Python 3 |next=Pabaiga}}&lt;br /&gt;
{{BookCat}}&lt;/div&gt;</summary>
		<author><name>Artūras</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=3977</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=3977"/>
		<updated>2022-05-21T09:21:04Z</updated>

		<summary type="html">&lt;p&gt;Artūras: Artūras perkėlė puslapį Vadovėlis/Įvadas į objektinį programavimą Python 3 į Python Vadovėlis/Įvadas į objektinį programavimą Python 3 be nukreipimo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{navigation |previous=Rekursija|next=Įvadas į importuotas bibliotekas ir kitas funkcijas}}&lt;br /&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>Artūras</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Rekursija&amp;diff=3976</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=3976"/>
		<updated>2022-05-21T09:20:07Z</updated>

		<summary type="html">&lt;p&gt;Artūras: Artūras perkėlė puslapį Vadovėlis/Rekursija į Python Vadovėlis/Rekursija be nukreipimo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{navigation |previous=Siekiant tobulumo |next=Įvadas į objektinį programavimą Python 3}}&lt;br /&gt;
&lt;br /&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 VS Code 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.&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;
    fakt = faktorialas(sk)&lt;br /&gt;
    print(&amp;quot;Skaičiaus &amp;quot;, sk, &amp;quot; faktorialas yra &amp;quot;, fakt)&lt;br /&gt;
&lt;br /&gt;
def faktorialas(sk):&lt;br /&gt;
    if sk == 0:&lt;br /&gt;
        return  1&lt;br /&gt;
    else:&lt;br /&gt;
        return sk * faktorialas(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>Artūras</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Siekiant_tobulumo&amp;diff=3975</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=3975"/>
		<updated>2022-05-21T09:18:47Z</updated>

		<summary type="html">&lt;p&gt;Artūras: Artūras perkėlė puslapį Vadovėlis/Siekiant tobulumo į Python Vadovėlis/Siekiant tobulumo be nukreipimo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{navigation |previous=Failų tvarkymas |next=Rekursija}}&lt;br /&gt;
&lt;br /&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ų tvarkymas |next=Rekursija}}&lt;br /&gt;
{{BookCat}}&lt;/div&gt;</summary>
		<author><name>Artūras</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Fail%C5%B3_tvarkymas&amp;diff=3974</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=3974"/>
		<updated>2022-05-21T09:18:23Z</updated>

		<summary type="html">&lt;p&gt;Artūras: Artūras perkėlė puslapį Vadovėlis/Failų tvarkymas į Python Vadovėlis/Failų tvarkymas be nukreipimo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{navigation |previous=Daugiau apie tekstines eilutes |next=Siekiant tobulumo}}&lt;br /&gt;
{{BookCat}}&lt;br /&gt;
&lt;br /&gt;
=== Failų įvestis/išvestis ===&lt;br /&gt;
&lt;br /&gt;
Štai paprastas failo įvesties ir išvesties (I/O, ang. Input/Output) 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 visus veiksmus su failais:&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ą spausdintuvu?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Yra keletas skirtingų būdų, kaip tai padaryti. Iš tikrųjų, pats lengviausias būdas yra atidaryti kitą programą, tada leisti viskuo pasirūpinti Python'o kodui, kad tau nereikėtų 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>Artūras</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Daugiau_apie_tekstines_eilutes&amp;diff=3973</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=3973"/>
		<updated>2022-05-21T09:17:59Z</updated>

		<summary type="html">&lt;p&gt;Artūras: Artūras perkėlė puslapį Vadovėlis/Daugiau apie tekstines eilutes į Python Vadovėlis/Daugiau apie tekstines eilutes be nukreipimo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{navigation |previous=Daugiau apie sąrašus |next=Failų tvarkymas}}&lt;br /&gt;
{{BookCat}}&lt;br /&gt;
&lt;br /&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;
=== Užduotis ===&lt;br /&gt;
Parašyk programą, kuri prašo vartotojo įvesti žodį arba sakinį. Tada programa turi pasakyti, ar įvestas žodis/sakinys yra palindromas (žodis, eilėraštis arba frazė, skaitomi iš kairės į dešinę ir iš dešinės į kairę, išlaikantys tą pačią prasmę. Pvz., lietuvių k. žodis savas, sakinys 'Abu gaišo po šia guba')&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;
&lt;br /&gt;
žodis = input(&amp;quot;Iveskite žodį&amp;quot;)​&lt;br /&gt;
​&lt;br /&gt;
def yra_palindromas(ž):&lt;br /&gt;
    ž_nuo_galo = &amp;quot;&amp;quot;&lt;br /&gt;
    for i in ž:&lt;br /&gt;
        ž_nuo_galo = i + ž_nuo_galo&lt;br /&gt;
    return ž_nuo_galo == ž​&lt;br /&gt;
​&lt;br /&gt;
ats = yra_palindromas(žodis)​&lt;br /&gt;
​&lt;br /&gt;
if ats:&lt;br /&gt;
    print(&amp;quot;Įvestas žodis yra palindromas&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Įvestas žodis nėra palindromas&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=Daugiau apie sąrašus |next=Failų tvarkymas}}&lt;br /&gt;
{{BookCat}}&lt;/div&gt;</summary>
		<author><name>Artūras</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=3972</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=3972"/>
		<updated>2022-05-21T09:17:44Z</updated>

		<summary type="html">&lt;p&gt;Artūras: Artūras perkėlė puslapį Vadovėlis/Daugiau apie sąrašus į Python Vadovėlis/Daugiau apie sąrašus be nukreipimo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{navigation |previous=Modulių naudojimas|next=Daugiau apie tekstines eilutes}}&lt;br /&gt;
&lt;br /&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 elementų kiekį + 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 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>Artūras</name></author>
	</entry>
	<entry>
		<id>https://wiki.angis.net/index.php?title=Python_Vadov%C4%97lis/Moduli%C5%B3_naudojimas&amp;diff=3971</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=3971"/>
		<updated>2022-05-21T09:17:23Z</updated>

		<summary type="html">&lt;p&gt;Artūras: Artūras perkėlė puslapį Vadovėlis/Modulių naudojimas į Python Vadovėlis/Modulių naudojimas be nukreipimo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{navigation |previous=Žodynai |next=Daugiau apie sąrašus}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Modulių naudojimas ===&lt;br /&gt;
Štai šio skyriaus pratimas. Failas, kuriame yra ši užduotis, geriausia būtų pavadinti kalendorius.py, kad nesimaišytų su importuojamu calendar.py moduliu. Modulis iš tiesų yra failas su priesaga .py, kuriame yra papildomų funkcijų rinkinys, kurį norite įtraukti ir naudoti savo programoje. Eilutė &amp;lt;code&amp;gt;import calendar&amp;lt;/code&amp;gt; iš tikrųjų ieško failo pavadinimu calendar.py ir jį su jo funkcijomis įtraukia į savo kodą, kad galėtume naudoti &amp;lt;code&amp;gt;prcal&amp;lt;/code&amp;gt; funkciją, kuri atspausdins visų metų kalendorių. Jei failas būtų pavadintas calendar.py ir matytų &amp;lt;code&amp;gt;import calendar&amp;lt;/code&amp;gt;, jis bandytų skaityti pats save, ir kodas tada 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 &amp;lt;code&amp;gt;random&amp;lt;/code&amp;gt; modulį ir &amp;lt;code&amp;gt;randint&amp;lt;/code&amp;gt; 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>Artūras</name></author>
	</entry>
</feed>