Loeng 3: Ülevaade: andmetüübid ja operatorid, numbrisüsteemid, tehete ja avaldiste prioriteetsus, lausend def, if laused, voodiagramm, algoritm¶

Viimati uuendatud 15.09.2025.

Koodinäited¶

1  Pythoni sisseehitatud andmetüübid¶

1.1  Ülevaade¶

Pythoni sisseehitatud andmetüübid saab grupeerida järgmiselt:

  • None 'NoneType' — Tühimärk, null
  • Numbrid
    • Integer 'int' — Täisarv
    • Floats 'float' — Kümmnendmurdarv
    • Complex 'complex' — Kompleksarv
    • Boolean 'bool' — Tõeväärtus
  • Jadad
    • String 'str' — Sõne
    • List 'list' — List, loend
    • Tuple 'tuple' — Korteež, ennik
    • Range 'range' — Vahemik
  • Set 'set' — Hulk
  • Map — Kujutus
    • Dictionary 'dict' — Sõnastik

1.2  Andmetüüpidega seotud konstruktorfunktsioonid¶

Pythoni sisseehitatud andmetüüpide objekte saab deklareerida/defineerida/luua ja teiste andmetüüpide objekte muuta/teisendada soovitud andmetüübi objektiks kasutades sisseehitatud funktsioone: int, float, complex, bool, str, list, tuple, range, set, dict.

Hoiatus: NB! Ära kasuta eelmainitud funktsiooninimesid enda loodud muutujate nimedena. Seda tehes kirjutad funktsiooni üle.

In [1]:
numbrid = 1, 2, 3  # Andmetüüp on korteež.
minu_list = list(numbrid)  # Defineerin listi.
minu_list
Out[1]:
[1, 2, 3]
In [2]:
tpl = (1, 2, 3)
list(tpl)  # Teisendasime korteeži listiks.
Out[2]:
[1, 2, 3]
In [3]:
list('Hello')
Out[3]:
['H', 'e', 'l', 'l', 'o']
In [4]:
tuple([2, 3, 4])
Out[4]:
(2, 3, 4)
In [5]:
tuple('Hello')
Out[5]:
('H', 'e', 'l', 'l', 'o')
In [6]:
set('Hello')  # Unikaalsus ja järjestuse puudumine.
Out[6]:
{'H', 'e', 'l', 'o'}
In [7]:
set([1, 1, 2, 2])  # Unikaalsus.
Out[7]:
{1, 2}
In [8]:
str(2)
Out[8]:
'2'
In [9]:
int(2.8888)  # NB! Ümardamist ei toimu.
Out[9]:
2
In [10]:
float(2)
Out[10]:
2.0

1.3  Meie jaoks uued andmetüübid¶

1.3.1  Tühimärk¶

Ühe objektiga (väärtusega) andmetüüp.

In [11]:
a = None
print(a)
None

Andmetüübi järgivaatamiseks kasuta sisseehitatud funktsiooni type:

In [12]:
type(a)
Out[12]:
NoneType
In [13]:
print(type(a))
<class 'NoneType'>

Nime class kasutatakse siin kategooria (andmetüübi) tähenduses.

1.3.2  Kompleksarvud¶

In [14]:
z = (-2-3j)
z
Out[14]:
(-2-3j)
In [15]:
z2 = 2.0 + 4.0j
z2
Out[15]:
(2+4j)
In [16]:
1j
Out[16]:
1j
In [17]:
z3 = 2.1 + 4.1 * 1j  # Toetab ka süntaksit 1J.
z3
Out[17]:
(2.1+4.1j)
In [18]:
z4 = complex(-1, -2)  # Konstruktorfunktsioon.
z4
Out[18]:
(-1-2j)
In [19]:
z5 = complex(22)
z5
Out[19]:
(22+0j)
In [20]:
type(z)
Out[20]:
complex
No description has been provided for this image
Joonis 1: Programmeerimine Pythonis ja Pythoni programmi osad.

Kompleksarvu reaal- ja imaginaarosa saab järgi vaadata järgmiselt:

In [21]:
z = (2-4j)
z.real  # Objektimuutuja ehk atribuut. NB! Argumendi sulud puuduvad: reaalosa.
Out[21]:
2.0
In [22]:
z.imag  # Objektimuutuja ehk atribuut: imaginaarosa.
Out[22]:
-4.0
In [23]:
#dir(z)  # Funktsioon dir väljastab seotud meetodid ja ka atribuudid.

Süntaksi erinevus objektimuutuja ehk atribuudi (sarnaselt ka klassimuutuja) ja objekti meetodi vahel on järgmine. (Üldjuhul) meetodi nimele järgnevad argumendi sulud koos või ilma argumentideta ja atribuutidel sulud puuduvad kuna argumente pole võimalik atribuudile edastada.

Leia Jooniselt 1 objekti- ja klassimuutujad ning klassid (klassid defineerivad andmetüüpe).

1.3.3  Booli tõeväärtus¶

Booli tõeväärtusi on kaks: tõene (True) ja väär (False). Miks numbrite all? Omab numbrilist väärtust.

In [24]:
int(True)  # Teisendan täisarvuks, et näha numbrilist väärtust.
Out[24]:
1
In [25]:
int(False)
Out[25]:
0
In [26]:
10 * False
Out[26]:
0
In [27]:
10 + True
Out[27]:
11
In [28]:
muutuja = True
print(type(muutuja), type(False))
<class 'bool'> <class 'bool'>

Sisseehitatud funktsiooni bool kasutamine, triviaalne ja mittetriviaalne argumendi väärtus:

In [29]:
bool(1)  # Mittetriviaalne.
Out[29]:
True
In [30]:
bool('Python')  # Mittetriviaalne.
Out[30]:
True
In [31]:
bool([])  # Triviaalne.
Out[31]:
False
In [32]:
bool(0)  # Triviaalne.
Out[32]:
False

1.3.4  Vahemik¶

Sisseehitatud funktsioon range:

In [33]:
type(range(3))
Out[33]:
range
In [34]:
list(range(10))  # Algab 0-st ja lõpeb 10-ga (mitte kaasa arvatud).
Out[34]:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
In [35]:
list(range(3, 10))
Out[35]:
[3, 4, 5, 6, 7, 8, 9]
In [36]:
list(range(3, 10, 2))  # NB! Ei toeta murdarvulist sammu.
Out[36]:
[3, 5, 7, 9]
In [37]:
list(range(10, 0, -2))  # Toetab negatiivset sammu.
Out[37]:
[10, 8, 6, 4, 2]

2  Pythoni operaatorid¶

2.1  Ülevaade¶

  • Arithmetic operators — aritmeetika operaatorid (tehtemärgid): +, -, *, /, @, %, //
    • Operaatorit - kasutame ka muutuja märgi muutmiseks: a = 3, siis -a = -3.
    • Maatrikskorrutis @ ei tööta ühegi Pythoni andmetüübiga (loodud kolmandate osapoolte teekides kasutamiseks).
  • Assignment operators — omistuslaused: =, +=, -=, *=, /=, @=, %=, //=, **=, &=, |=, ^=, >>=, <<=, :=
    • Mitme väärtuse samaaegne omistamine: x, y = 3, 5, a, b, c = [1, 2, 3], d = e = 4, jne.
  • Comparison operators — võrdlus operaatorid: ==, !=, >, <, >=, <=
  • Logical operators — loogika tehtemärgid: and, or, not
  • Identity operators — identiteedi operaatorid: is, is not
  • Membership operators — koosseisu operaatorid: in, not in
  • Bitwise operators — bitioperatsioonide operaatorid: &, |, ^, ~, <<, >>

2.1.1  Omistuslaused ja operaatorid: +=, *=, jne., := ning teised¶

Operaatori += tähendus:

In [38]:
x = 2
x = x + 1  # Võrdluseks, vt. alla.
x
Out[38]:
3
In [39]:
x += 1  # Operaatori += kasutus: lühem kirjapilt.
x
Out[39]:
4
In [40]:
x -= 1  # Operaatori -= kasutus: lühem kirjapilt.
x
Out[40]:
3

Operaatori := tähendus. Seda operaatorit nimetatakse morsa operaatoriks. Kasutatakse muutujatele väärtuste omistamiseks teiste avaldiste sees, nii-öelda samalt realt.

In [41]:
print(x := 'Python')  # Loob muutuja ja omistab väärtuse argumendi sulgude sees.
Python

2.1.2  Võrdlus operaatorid: ==, !=, >, <, >=, <=¶

In [42]:
5 == 5  # On võrdne.
Out[42]:
True
In [43]:
5 != 2  # Mitte võrdne.
Out[43]:
True
In [44]:
2 > 5  # Suurem kui.
Out[44]:
False
In [45]:
2 < 5  # Väiksem kui.
Out[45]:
True
In [46]:
5 >= 5  # Suurem või võrdne.
Out[46]:
True
In [47]:
6 <= 5  # Väiksem või võrdne.
Out[47]:
False

Python luban võrrelda sama tüüpi jadasid. Võrdlemisel kasutatakse leksikograafilist järjestust (see teemat eksamile ei tule). Eriveva pikkusega jadade võrdlemisel peetakse lühemat (ja võrdset) jada väiksemaks. Sõnede sümolite korral võrreldakse nende kodeeringu ordinaale (sisseehitatud funktsiooniga ord järgi vaadatav).

Märkus: NB! See teema pole eksami osa.

In [48]:
[1, 2, 3] == [1, 2, 3]  # Element-element haaval ja vasakult paremale.
Out[48]:
True
In [49]:
(1, 2, 3) != (1, 2, 4)
Out[49]:
True
In [50]:
(1, 2, 3) < (1, 2, 3, -1)
Out[50]:
True
In [51]:
(1, 2, 3) < (1, 2, 4)
Out[51]:
True
In [52]:
'ABC' < 'C' < 'Pascal' < 'Python'
Out[52]:
True
In [53]:
(1, 2, 3, 4) < (1, 2, 4)
Out[53]:
True
In [54]:
(1, 2) < (1, 2, -1)
Out[54]:
True
In [55]:
(1, 2, 3) == (1.0, 2.0, 3.0)
Out[55]:
True
In [56]:
(1, 2, ('aa', 'ab')) < (1, 2, ('abc', 'a'), 4)
Out[56]:
True

2.1.3  Loogika tehtemärgid: and ja or¶

Operaatoreid paigutame lisaks booli tõeväärtust tagastavete tehete, lausete ja avaldiste vahele, ka booli tõeväärtust omavate objektide vahel:

  • True = 1 või mittetriviaalsed andmetüübide väärtused (nt. mittetühi list, jt.).
  • False = 0 või triviaalsed andmetüübide väärtused (nt. tühi list, None, jt.).

Allolevas tabelis on lisatud tehtemärgi ehk operaatori and tõeväärtustabel.

x y Tulem: x and y
0 0 0
0 1 0
1 0 0
1 1 1
In [57]:
True and True
Out[57]:
True
In [58]:
True and False
Out[58]:
False
In [59]:
False and False
Out[59]:
False
In [60]:
1 and 1
Out[60]:
1
In [61]:
1 and 0
Out[61]:
0

Allolevas tabelis on näidatud tehtemärgi or tõeväärtustabel.

x y Tulem: x or y
0 0 0
0 1 1
1 0 1
1 1 1
In [62]:
True or True
Out[62]:
True
In [63]:
True or False
Out[63]:
True
In [64]:
False or False
Out[64]:
False
In [65]:
1 or 1
Out[65]:
1
In [66]:
1 or 0
Out[66]:
1

Lausend not tähistab eitust:

In [67]:
not True
Out[67]:
False
In [68]:
not False
Out[68]:
True

2.1.4  Identiteedi operaatorid: is, is not¶

Kontrollib kas objektid jagavad sama mälukohta (aadressi).

In [69]:
x, y = 1000, 1000
x is y  # Kaks muutujat viitavad samale väärtusele.
Out[69]:
True
In [70]:
x = y = 1000
x is y  # Kaks muutujat viitavad samale väärtusele.
Out[70]:
True

Kontrollime saadud tulemust kasutades sisseehitatud funktsiooni id.

In [71]:
print(id(x), id(y), id(x) - id(y))  # Funktsioon mis tagastab argumendi identiteedi.
4423311856 4423311856 0

Lausendi not kasutamine antud kontekstis:

In [72]:
x is not y
Out[72]:
False

2.1.5  Koosseisu operaatorid: in, not in¶

Kontrollib kas andmetüübi objekt sisaldab elementi.

In [73]:
s = 'Python'
'P' in s
Out[73]:
True
In [74]:
'hon' in s
Out[74]:
True
In [75]:
33 in [1, 2, 3]
Out[75]:
False

Lausendi not kasutamine antud kontekstis:

In [76]:
'Q' not in [1, 2, 3, 4]
Out[76]:
True

3  Numbrisüsteemid ja nendega seotud operaatorid¶

3.1  Erinevate numbrisüsteemide numbrite esitus ja nendevahelised teisendused¶

Pythoni standardteek toetab kahend- või binaar-, kaheksand-, kümmnend-, ja kuueteistkümnendiksüsteeme. Sisseehitatud funktsioonide bin, oct ja hex abil deklareerime või teisendame arve kahendsüsteemi arvuks, kaheksandiksüsteemi arvuks ja kuueteistkümnendiksüsteemi arvuks.

In [77]:
a = 7
bin(a)  # Binaarsüsteemi ehk kahendsüsteemi arv.
Out[77]:
'0b111'
In [78]:
oct(a)  # Kaheksandsüsteemi arv.
Out[78]:
'0o7'
In [79]:
a  # Kümnendsüsteemi ehk detsimaalsüsteemi arv.
Out[79]:
7
In [80]:
hex(a)  # Kuueteistkümnendiksüsteemi arv.
Out[80]:
'0x7'

Lisaks saame deklareerida ja opereerida erinevate süsteemide arvudega järgmiselt:

In [81]:
0b010010110101  # Binaarsüsteemi arv.
Out[81]:
1205
In [82]:
0o123  # Kaheksandsüsteemi arv.
Out[82]:
83
In [83]:
23  # Kümnendsüsteemi arv.
Out[83]:
23
In [84]:
0x121b  # Kuueteistkümnendiksüsteemi arv.
Out[84]:
4635
In [85]:
0b01001 + 0b01001  # Proovi ka teisi operaatoreid.
Out[85]:
18
In [86]:
0x121b / 0b01011  # Segatehe.
Out[86]:
421.3636363636364
In [87]:
oct(0x121b)  # Süsteemide vaheline teisendus.
Out[87]:
'0o11033'

3.2  Bitioperatsioonide operaatorid: &, |, ^, ~, <<, >>¶

3.2.1  Binaarse ehk kahendsüsteemi meeldetuletus¶

No description has been provided for this image
Joonis 2: Kümnendsüsteemi arv 6 kahendsüsteemis (neljabitine esitus).

3.2.2  biti JA - bitwise and: &¶

Siin rakendame and tõeväärtustabelit (esitatud eespool) binaarsete arvude vastavatele bittidele paarikaupa.

No description has been provided for this image
Joonis 3: Tehte esitus kümnendsüsteemis 5 & 3 = 1.
In [88]:
bin(0b0101 & 0b0011)
Out[88]:
'0b1'
In [89]:
5 & 3
Out[89]:
1

3.2.3  biti VÕI - bitwise or: |¶

Siin rakendame or tõeväärtustabelit (esitatud eespool) binaarsete arvude vastavatele bittidele paarikaupa.

No description has been provided for this image
Joonis 4: Tehte esitus kümnendsüsteemis 5 | 3 = 7.
In [90]:
bin(0b0101 | 0b0011)
Out[90]:
'0b111'
In [91]:
5 | 3
Out[91]:
7

3.2.4  biti välistav VÕI - bitwise xor (exclusive or): ^¶

Tehtemärgi ^ tõeväärtustabel:

Allolevas tabelis on $0$ ja $1$ arvude $P$ ja $Q$ bittide väärtused.

P bitt Q bitt Tulem
0 0 0
0 1 1
1 0 1
1 1 0

Näide kus $P = 0101_2 = 5_{10}$ ja $Q = 0011_2 = 3_{10}$:

No description has been provided for this image
Joonis 5: Tehe esitatuna kümnendsüsteemis $P$ ^ $Q = 6$ ehk 5 ^ 3 = 6.
In [92]:
P = 0b0101
Q = 0b0011
bin(P ^ Q)
Out[92]:
'0b110'
In [93]:
P = 5
Q = 3
P ^ Q
Out[93]:
6

3.2.5  Täiend - complement: ~, bitwise NOT, bitwise inversion¶

Operaator muudab sellele järgneva arvu bitiväärtused vastupidisteks.

No description has been provided for this image
Joonis 6: Tehte esitus kümnendsüsteemis ~6 = -7. Negatiivsete kümnendarvude binaarne esitus erineb positiivsete omast.

Seos kümnendsüsteemiga: ~x = -x - 1, kus x on täisarv.

In [94]:
bin(~0b0110)  # Negatiivsete arvude bin. representatsioon erineb eelmainitust.
Out[94]:
'-0b111'
In [95]:
~6
Out[95]:
-7

3.2.6  Binaarne nihe vasakule - binary shift: <<¶

Operaator nihutab arvu bitid täisarv $n$ kohti vasakule.

No description has been provided for this image
Joonis 7: Tehte esitus kümnendsüsteemis 6 << 1 = 12, bitid nihestati 1 koha võrra vasakule.

Seos kümnendsüsteemiga: $x << n = 2^n x$, kus arv $x$ ja nihe $n$ on täisarvud.

In [96]:
bin(0b0110 << 1)  # 1d nihkuvad vasakule.
Out[96]:
'0b1100'
In [97]:
6 << 1
Out[97]:
12

3.2.7  Binaarne nihe paremale - binary shift: >>¶

Operaator nihutab arvu bitid täisarv $n$ kohti paremale.

No description has been provided for this image
Joonis 8: Tehte esitus kümnendsüsteemis 6 >> 1 = 3, bitid nihestati 1 koha võrra paremale.

Seos kümnendsüsteemiga: $x >> n = x / 2^n$, kus arv $x$ ja nihe $n$ on täisarvud.

In [98]:
bin(0b0110 >> 1)
Out[98]:
'0b11'
In [99]:
6 >> 1
Out[99]:
3

4  Tehete ja avaldiste prioriteetsus¶

  • Tehete aritmeetiline prioriteetsus määrab ära nende rakendamise järjekorra
  • Prioriteetust saab hallata kasutades sulge ()
  • Võrdse prioriteetsuse korral määrab tehete tulemuse tehete järjekord, reeglina vasakult paremale, näiteks:
expr1, expr2, expr3, expr4
(expr1, expr2, expr3, expr4)
{expr1: expr2, expr3: expr4}
expr1 + expr2 * (expr3 - expr4)
expr1(expr2, expr3, *expr4, **expr5)
expr3, expr4 = expr1, expr2

Erand: Astendamise leidmise järjekord on paremalt vasakule. Näide:

a = 2**3**5 != (2**3)**5

Lisainfo: https://docs.python.org/3/reference/expressions.html#

Allolev tabel näitab kõigi Pythoni operaatorite ja avaldiste prioriteetsuse hierarhiat.

Tehe, operaator, avaldis Operatsioon
(expressions...), [expressions...], key: value..., expressions... avaldised (konstruktorid)
x[index], x[index:index], x(arguments...), x.attribute indekseerimine, funktsiooni väljakutsumine, atribuut
await x võtmesõna await (ei käsitle)
** astendamine
+x, -x, ~x positiivne, negatiivne, biti NOT (täiend)
*, @, /, //, % korrutamine, maatriksite korrutamine, jagamine, jääk
+, - liitmine, lahutamine
<<,>> biti nihked
& bititehte AND
^ bititehte XOR
\| bititehte OR
in, not in, is, is not, <, <=, >, >=, !=, == võrdlused, samasused, sisaldavused
not x tõeväärtuslik MITTE
and tõeväärtuslik JA
or tõeväärtuslik VÕI
if-else if tingimus avaldis
lambda anonüümne funktsioon
:= omistus avaldis (morsa operaator)

5  Funktsioonid, enda kirjutatud¶

5.1  Lausend def ja konstruktsioon def-return¶

Pythoni funktsioon on alamprotseduur (subroutine) mida saab taaskasutada. Pythoni funktsioon on sarnane matemaatika tunnist tuntud funktsioonidega. Funktsioon on eeskiri või reeglite kogum mis seob valitud eeldused ja sisendid funktsiooni väljundiga, väljunditega või mingi tegevusega. Pythoni funktsioon võib omada argumente või mitte. Funktsioon saab argumendina vastu võtta kõiki Pythoni sisseehitatud ja muid objekte.

Laias laastus saab Pythoni funktsioone jagada kaheks:

  • Funktsioonid mis väljastavad väärtuse või väärtusi (amdmetüübi objekti väärtusi) ja
  • funktsioonid mis ei väljasta midagi vaid teostavad mingi tegevuse.

Pythoni funktsiooni defineerime kasutades lausendit def. Funktsiooni koosseisu kuuluv kood eristatakse taande abil. Taane defineerib nn. def bloki. Funktsiooni koodi sees saame teostada teiste funktsioonide väljakutseid.

In [100]:
def name():                # PEP8: Väikse tähaega nimi, kirjeldav.
    print('Hello World!')  # NB! TAANE.

name()                     # Funktsiooni/protseduuri väljakutse.
Hello World!
In [101]:
def function_name(argument):
    print(argument)  # Muutuja argument kehtib lokaalselt funktsiooni sees.

arg = 'Hello World!'
    
function_name(arg)
Hello World!
In [102]:
def function2(argument, argument2):
    name()  # Eelnevalt defineeritud funktsioon.
    print(argument, argument2)
    
arg = 'Hello'
    
function2(arg, 'World!')
Hello World!
Hello World!

Konkreetse tulemuse või tulemuste (erista komaga) väljastamiseks kasutame lausendit return. Lausendi return interpreteerimisel loetakse funktsioon töö tehtuks.

In [103]:
def function3():
    return 2 + 5

function3()
Out[103]:
7
In [104]:
def function4():
    result = 2 + 5  # Muutuja on lokaalne.
    return result, 77  # Kaks väljundit.

function4()  # Vaikimisi väljastati tulemused ennikusse.
Out[104]:
(7, 77)
In [105]:
def my_summation(a, b, c):
    return a + b + c

summa = my_summation(4, 5, 6)
summa
Out[105]:
15

Tulevastes loengutes laiendame funktsiooni argumendi mõistet. Pythoni funktsioonid toetavad erinevat tüüpi argumente.

Mõned autorid eristavad funktsioone mis väljastavad väärtusi nendest mis ei väljasta. Nimetades viimaseid protseduuriks. Seega kui funktsiooni defineerimisel kasutatakse lausendit return siis eelistatakse nime funktsioon ja kui see puudub siis eelistatakse nime protseduur.

5.2  Funktsiooni dokumentatsioon ja abiinfo (DocString)¶

DocString või docstring on inimloetav dokumentatsioon mida saame loodud funktsioonile lisada. See aitab programmi kasutajatel, k.a. sind ennast, sinu enda loodud funktsioone paremini taaskasutada. Docstring kirjutatakse alati kolme jutumärgi vahele olenemata sellest kas see on üherealine või mitmerealine. Docstringi vormistamise, hea tava ja soovituste kohta loe lisaks PEP 257.

In [106]:
def summation(a, b):
    """This is a quick summary."""  # Minimaalne näide.
    
    return a + b

summation?
Signature: summation(a, b)
Docstring: This is a quick summary.
File:      /var/folders/6f/s4mf78z90cb953k7l1fgw8mh0000gn/T/ipykernel_37574/4122679038.py
Type:      function
In [107]:
def my_summation(a, b, c):
    '''Function that calculated sum of 3 numbers.
    
    Additional info on arguments a, b, and c.
    Returns a number (integer, float, complex)
    '''
    
    return a + b + c

help(my_summation)
Help on function my_summation in module __main__:

my_summation(a, b, c)
    Function that calculated sum of 3 numbers.

    Additional info on arguments a, b, and c.
    Returns a number (integer, float, complex)

Docstringi lugemiseks võid ka vajutada: Shift+Tab.

6  Tingimuslaused ja programmivoo juhtimine¶

6.1  Lausendid ja konstruktsioonid: if, if-else ja if-elif-else¶

Tingimuslausete abil saame juhtida programmi käitumist sõltuvalt booli tõeväärtustehete tulemustele.

No description has been provided for this image
Joonis 9: Neli põhilist vooskeemi elemendi mida kujutatake kasutades ovaali, rööpkülikut, nelinurka ja rombi ning nenede tähendused.

Vooskeem või voodiagramm on programmis esinevate juhiste jada graafiline esitus. Diagrammi koostamisel kasutatakse neli põhilist kujundit millel on kindel tähendus. Need kujundid on kujutatud Joonisel 9. Nooled ühendavad põhikujundeid vooskeemis. Vooskeemi kujundid ja nooled kirjeldavad programmi kulgu selle algolekust lõppolekuni.

6.1.1  if blokk¶

No description has been provided for this image
Joonis 10: If bloki vooskeem.
In [108]:
if True:                          # Tingimuslause siia.
    print('Tingimus rahuldatud')  # Tegevus, NB! TAANE.
Tingimus rahuldatud
In [109]:
if False:
    print('Tingimus rahuldatud')

6.1.2  if-else blokk¶

No description has been provided for this image
Joonis 11: If-else bloki vooskeem.
In [110]:
if True:  # Sama mis not False.
    print('Tegevus 1')
else:
    print('Tegevus 2')
Tegevus 1
In [111]:
if False:  # not True
    print('Tegevus 1')
else:
    print('Tegevus 2')
Tegevus 2

6.1.3  if-elif-else blokk/konstruktsioon¶

No description has been provided for this image
Joonis 12: If-elif-else bloki vooskeem.
In [112]:
if False:
    print('Tegevus 1')
elif False:
    print('Tegevus 2')
elif True:
    print('Tegevus 3')  # Soovitud valik.
else:
    print('Tegevus 4')
Tegevus 3

NB! Peale konkreetse elif lausendiga seotud tegevuse teostust ülejäänuid elif tingimuslauseid (alumisi) enam ei kontrollita, vt. Joonis 12.

6.1.4  if bloki näiteid¶

In [113]:
if 4 < 5 and 3 < 6:
    print('Mõlemad tingimused.')
else:
    print('Vähemalt üks tingimus.')
Mõlemad tingimused.
In [114]:
if len('Python') == 6:  # Funktsioon len leiab erinevate jadade elemendid.
    print('Kuus tähte.')
Kuus tähte.
In [115]:
num = 6
if num % 2 == 0:
    print(f'{num} on paaris.')
else:
    print(f'{num} on paaritu.')
6 on paaris.

7  Algoritmi mõiste¶

Algoritm ( = lahenduseeskiri) on fikseeritud juhiste jada, millega teisendatakse algoritmi sisendandmed algoritmi väljundandmeteks. Algoritmi esitatakse kas juhiste loendina või graafiliselt kasutades voodiagrammi. Algoritmi rakendatakse probleemi lahendamiseks.

















☻   ☻   ☻