Programski jezik
Python
separat uz udžbenik za 5. – 6. razred
SysPrint • 2014.
Programski jezik
Python
separat uz udžbenik za 5. – 6. razred
SysPrint • 2014.
2
6.C.
5. razred
Programiranje – Python
Osim što pomoću računala crtamo i pišemo, možemo načiniti upute koje računalo razumije i izvršava baš kako smo mi zamislili. Tome služe programski jezici. Kao što se ljudi služe jezicima u međusobnom razgovoru, tako računalo razumije programske jezike. Primjerice, svaka igrica na računalu ili vašem mobitelu zapravo je program napisan u programskom jeziku. Ključni pojmovi
print, input, int, float, import, math, turtle, forward, back, left, right, reset, penup, pendown, hideturtle, showturtle, write
1. Upoznajmo Python Pokrenimo Python Kliknite na gumb Start, pa na Svi programi te u mapi Python 3.3 kliknite na IDLE (Python GUI).
Pokazivač teksta postavljen je iza znaka >>>. Ovdje možemo pisati naredbe koje će Python izvršiti.
Slika 1. Pokretanje Pythona.
Slika 2. Prozor Pythona. Zašto Python pokrećemo klikom na IDLE (Python GUI), a nema jednostavno Python? IDLE je kratica od Integrated DeveLopment Environment (integrirano razvojno okruženje), a GUI je kratica od Graphics User Interface (grafičko korisničko sučelje). Inače, sučelje IDLE dobilo je naziv po prezimenu komičara Erica Idlea iz grupe Monty Python, od kuda izvire i ime programskog jezika (a ne po zmiji pitonu, engl. python).
Slika 3. Osnovne računske operacije u Pythonu.
6. Programiranje – Python Promotrite sliku 3. Koji se znakovi koriste za pojedine računske operacije? Primijetite da znak za dijeljenje / uvijek daje rezultat u obliku decimalnog broja. Iako je 45 : 5 = 9, Pyhon ispisuje 45 / 5 = 9.0, dakle kao decimalni broj s jednom decimalom (u našem primjeru 0). Želimo li brojeve podijeliti kao prirodne brojeve moramo pisati //. Sada će rezultat biti prirodan broj, ali ako brojevi nisu djeljivi, znak // daje nam djelomični količnik.
3
Računska operacija
Znak
zbrajanje oduzimanje množenje
+ *
dijeljenje
/
djelomični količnik
//
ostatak pri dijeljenju
%
Osim računanja, možemo jednostavno i ispisivati tekst. Promotrite sliku 4. Sigurno ste zaključili da tekst koji želimo ispisati pišemo pod navodnicima (‘ ‘). 2 Ako ih zaboravimo Python će javiti poruku o greški. 3 Želimo li pisati tekst pod navodnicima, možemo ih koristiti unutar jednostrukih navodnika. 4 Tekst možemo umnožiti pomoću znaka *. Želimo li razmak između riječi, moramo ostaviti jedan razmak na kraju teksta koji umnažamo. 4
Primjer Operacija Rezultat 2+3 5 13 - 6 7 7*5 35 45 / 5 9.0 17 / 5 3.4 45 // 5 9 17 // 5 3 14 % 3
2
Tablica 1. Primjeri računskih
1
Primijetite da se ispisuju i navodnici koji Pythonu govore da se unutar njih nalazi tekst koji treba ispisati. Ako želimo da Python nešto ispiše, ne želimo vidjeti navodnike.
operacija.
1 2 3
4 Slika 4. Ispis teksta u Pythonu.
Vježba 1. Upišite sljedeću naredbu:
>>> print('Učimo programski jezik Python.') Učimo programski jezik Python.
Pritisni tipku Enter
Rješenje: Tekst koji želite ispisati treba napisati pod navodnicima, u okrugloj zagradi i ispred zagrade napisati naredbu print. Međutim, mogli smo istu rečenicu napisati i s dvostrukim navodnicima:
>>> print("Učimo programski jezik Python.") Učimo programski jezik Python. Rješenje u datotekama 56Cvje1.py i 56Cvje1_1.py.
Pritisni tipku Enter
6. Programiranje – Python
4
Naredba print služi za ispis teksta. Ono što želimo ispisati pišemo u okruglim zagradama. Tekst koji želimo ispisati pišemo pod navodnicima. Vježba 2. Upišite sljedeću naredbu: >>> print('Čitali smo "Paunaša" Tite Bilopavlovića.') Čitali smo "Paunaša" Tite Bilopavlovića.
Pritisni tipku Enter
Kada je u udžbeniku program napisan u plavom okviru, kao ovaj u vježbi 2, u stvarnosti ćete ga upisivati u glavnom prozoru Python Shell, što će izgledati ovako:
Rješenje: Želimo li ispisati tekst pod navodnicima, kao što je naslov bajke, navodnike navodimo unutar teksta. Čitav tekst koji ispisujemo sada mora biti pod jednostrukim navodnicima. Naime ako napišete: >>> print("Čitali smo "Paunuša" Tite Bilopavlovića.") SyntaxError: invalid syntax Python će javiti pogrešku jer je prepoznao da treba ispisati samo "Čitali smo " tj. spario je najbliže navodnike, a ostatak nije prepoznao kao tekst. Rješenje u datoteci 56Cvje2.py. Vježba 3. Upišite sljedeću naredbu: >>> print('Tekst možemo \n ispisivati u \n više redaka.') Tekst možemo ispisivati u više redaka.
Pritisni tipku Enter
Rješenje: \n - prelazak u novi red
Znak \ piše se pomoću AltGr+Q.
Želimo li neki tekst ispisati u više redova, za prelazak u novi red pišemo \n. Rješenje u datoteci 56Cvje3.py.
6. Programiranje – Python
5
2. Moj prvi program Na prošlom satu naučili smo ispisivati tekst i izvoditi osnovne računske operacije. Međutim, naredbe koje smo pisali nismo mogli spremiti i kasnije ponovno koristiti. Kao što smo svoje crteže i tekstove mogli spremiti i nastaviti kasnije, tako i naredbe u Pythonu možemo spremiti, ako ih napišemo u obliku programa. Program pišemo u uređivaču teksta koji otvaramo tako da iz izbornika File odaberemo naredbu New Window…(slika 5.) Nakon toga otvori se prozor kao na slici 6. u kojem pišemo program.
Slika 5. Otvaranje uređivača teksta.
Slika 6. Uređivač teksta.
Vježba 4. Napišite sljedeći program u uređivaču teksta: print('Rijeka \t Duljina u Hrvatskoj') print('Sava \t \t 940 km') print('Drava \t \t 725 km') print('Kupa\t \t 296 km') print('Odra \t \t 83 km')
Kada je u udžbeniku program napisan u žutom okviru, kao ovaj u vježbi 4, u stvarnosti ćete ga upisivati u uređivaču teksta, što će izgledati ovako:
print('Rijeka \t Duljina u Hrvatskoj') print('Sava \t \t 940 km') print('Drava \t \t 725 km') print('Kupa\t \t 296 km') print('Odra \t \t 83 km')
Nakon što ste prepisali program, treba ga izvršiti. Python se brine da ne izgubite svoj uradak, pa zahtjeva da program prvo spremite. Iz izbornika File odaberite Save (ako spremate prvi puta ili je već od ranije upisano ime programa). Ako želite promijeniti ime programa ili mjesto spremanja programa odabrat ćete Save As ili Save Copy As..
Podsjetite se (poglavlje 6B.1): Što je naredba? Što je algoritam? Što je program?
6. Programiranje – Python
6
Slika 7. Spremanje programa.
Slika 8. U polje Naziv datoteke: upišite ime programa. Sada program možete pokrenuti. Iz izbornika Run odaberite Run Module ili jednostavno pritisnite tipku F5.
Slika 9. Pokretanje programa.
Slika 10. Rezultat programa. Pišući program sigurno ste primijetili neobičnu oznaku \t. Ona omogućuje preskok za više praznih mjesta – sljedeći znak ispisuje se iza bloka praznih mjesta. Budući da smo kod ispisa duljine rijeka trebali više razmaka, oznaku \t upotrijebili smo dvaput. Rješenje u datoteci 56Cvje4.py.
Ispis podataka Za ispis koristimo naredbu print(). U okruglim zagradama slijede podaci koje treba ispisati i to: • • • •
tekst pišemo pod navodnicima želimo li navoditi tekst koristimo se dvostrukim navodnicima za prelazak u novi red koristimo \n želimo li ostaviti više mjesta razmaka (kao tabulatorom) koristimo \t
Vježba 5. Napišimo program za zbrajanje brojeva a = 80 i b = 30. .
6. Programiranje – Python
7
Rješenje: Algoritam: a=80 b=30 zbroj = a +b ispiši a ispiši b ispiši zbroj
Program:
Dijagram toka:
a=80 b=30 zbroj=a+b print('a=',a) print('b=',b) print('zbroj=',zbroj)
Prve naredbe programa(a=80 i b=30) zovemo naredbe pridruživanja. Ako u varijablu a želimo staviti vrijednost 80, tada jednostavno pišemo a=80. Znak jednakosti sada je operator pridruživanja, jer varijabli a pridružuje broj 80.
Naredba oblika a=80 zove se naredba pridruživanja. Njome kažemo programu da u varijabli a zapamti broj 80. Varijabla a označava mjesto u memoriji u kojem je pohranjen broj 80.
Mali rječnik File - datoteka Open – otvori Save - spremi Save As – spremi kao Save Copy As – spremi kopiju kao Recent Files – prethodne datoteke
Želimo li ovim programom zbrojiti neka druga dva broja, moramo se vratiti u uređivač teksta i izmijeniti brojeve pridružene varijablama a i b. To ćemo najlakše učiniti tako da iz izbornika File odaberemo Recent Files. Izmijenite sada brojeve tako da bude a = 180 i b = 100. Ne zaboravite da program prije pokretanja morate Slika 11. Otvaranje ranije napisanih programa. prvo spremiti(File > Save), pa onda pokrenuti(Run > Run Module ili tipka F5.)
Želite li biti brži u spremanju i pokretanju programa prilikom njihovog mijenjanja, možete to učiniti pomoću tipkovnice kombinacijom tipki CTRL+S za spremanje programa i tipkom F5 pokrenuti program.
Rješenje u datoteci 56Cvje5.py. Vježba 6. Napišimo program koji računa umnožak i količnik brojeva a = 12 i b = 3. Rezultat ispisati u obliku jednakosti: 12 * 3 = 36 i 12 : 3 = 4.
Dijagram toka:
Rješenje: Algoritam: a=12 b=3 umnozak = a*b kolicnik = a // b ispiši umnozak ispiši kolicnik
Program: a=12 b=3 umnozak=a*b kolicnik=a//b print(a,'*',b,'=',umnozak) print(a,':',b,'=',kolicnik)
Aritmetičke operacije množenje - * dijeljenje - / djelomični količnik - // ostatak - %
6. Programiranje – Python
8
Promotrite print naredbu. One podatke koje smo ispisivali iz varijabli a, b, umnozak i kolicnik napisali smo bez navodnika, a znakove računskih operacija (koje program ovdje vidi kao tekst) pod navodnicima. Rješenje u datoteci 56Cvje6.py.
Dijagram toka:
Vježba 7. Napišimo program koji računa umnožak i količnik brojeva a = 15 i b = 4. Rješenje: Program:
Algoritam: a=15 b=4 umnozak = a*b kolicnik = a / b djelomicni=a//b ostatak= a % b ispiši umnozak ispiši kolicnik ispiši djelomicni, ostatak
a=15 b=4 umnozak=a*b kolicnik=a/b djelomicni=a//b ostatak= a % b print(a,'*',b,'=',umnozak) print(a,':',b,'=',kolicnik) print(a,':',b,'=',djelomicni,'(',ostatak,')') Rješenje u datoteci 56Cvje7.py.
3. Upis podataka s tipkovnice Pomoću naredbe pridruživanja u programu prvo zadajemo brojeve, a zatim s njima možemo izvoditi npr. računske operacije. Međutim, u svakom programskom jeziku postoji naredba koja nam omogućuje upis podataka s tipkovnice. Vježba 8. Napišite program za izračunavanje zbroja dva broja i ispisivanje dobivenog zbroja. Dijagram toka:
Rješenje: Algoritam: upiši a upiši b zbroj=a+b ispiši zbroj
Program: print('Upiši prvi pribrojnik:') a=input() print('Upiši drugi pribrojnik:') b=input() zbroj=a+b print('Zbroj je', zbroj)
Naredba a=input() omogućuje da nakon pokretanja programa upišete neki broj koji se pamti u varijabli a. Sada ne moramo mijenjati program ako želimo računati s različitim brojevima. Kada program naiđe na naredbu input stat će
6. Programiranje – Python
9
i čekati podatak s tipkovnice sve dok ga ne upišemo i pritisnemo tipku Enter. Zato je uvijek dobro ispisati poruku kakav podatak program očekuje.
Pozor: nakon upisa broja morate pritisnuti tipku Enter.
Zato smo u ovom primjeru ispred naredbe input napisali naredbu print koja ispisuje poruku o tome što treba upisati. Da li program točno zbraja dva broja? Pokrenimo ga (F5) i provjerimo:
Znamo da 12+22 nije 1222. Možete li se dosjetiti što je napravio program? Pogledajte sliku 13. Umjesto brojeva Slika 12. Izvršenje programa za zbrajanje za a=12 i b= 22. upisali smo riječi Marica, Ivica. Program ih je jednostavno “slijepio”, odnosno združio. Sada je jasno da upravo to radi i s brojevima: ne zbraja ih, već ih sljepljuje jer ih prihvaća kao riječi, a ne kao brojeve. Zato prije zbrajanja moramo od riječi napraviti broj. To radi naredba int. Najlakše je samo izmijeniti naredbu za zbrajanje: zbroj=int(a)+int(b). Program možemo još malo poboljšati tako da poruku o tome koji podatak upisujemo napišemo u input naredbi.
Slika 13. Izvršenje programa za zbrajanje za a=’Ivica’ i b= ‘Marica’.
print('Upiši prvi pribrojnik:') a=input() print('Upiši drugi pribrojnik:') b=input() zbroj=int(a)+int(b) print('Zbroj je', zbroj)
a=input('Upiši prvi pribrojnik:') b=input('Upiši drugi pribrojnik:') zbroj=int(a)+int(b) print('Zbroj je', zbroj)
Naredba za upis podataka je input. Najčešće je koristimo u obliku x=input(‘poruka’), gdje je x mjesto u memoriji na kojem pamtimo podatak, a poruka opis podatka koji učitavamo. Naredba učitani podatak shvaća kao tekst, pa ga prije računanja moramo pretvoriti u broj.
Pravila za imenovanje varijabli: 1. Ime varijable sastoji se od slova, znamenki i podvlake _ 2. Python razlikuje velika i mala slova. Dakle, zbroj, Zbroj i ZBROJ označavaju tri različite varijable. 3. Primjeri nedozvoljenih imena: a) a$, x.7, 7€ - sadrže nedozvoljene znakove b) 7as, 90a – počinju znamenkom c) if, else, and, or – ključne riječi koje imaju već svoju namjenu u Pythonu
Rješenja u datotekama 56Cvje8.py, 56Cvje8_1.py, 56Cvje8_2.py.
input - naredba za upis podataka
6. Programiranje – Python
10 Vježba 9.
Napišite program za računanje opsega trokuta kome su zadane duljine stranica trokuta a, b i c. Rješenje: Dijagram toka:
Algoritam:
Program:
upiši a upiši b upiši c opseg=a+b+c ispiši opseg
a=input('a=') b=input('b=') c=input('c=') opseg=int(a)+int(b)+int(c) print('Opseg je', opseg)
Rješenje u datoteci 56Cvje9.py. Vježba 10. Često puta se u programiranju pojavljuje potreba zamjene vrijednosti dvije varijable. Ako imamo niz brojeva koje treba poredati po veličini tada moramo moći zamijeniti vrijednosti dviju varijabli. Napišite program koji upisuje dva broja prvi i drugi i zamjenjuje njihove vrijednosti. Rješenje: Promotrite algoritam i program: Prikažimo što se događa u memoriji:
prvi
prvi=input('prvi=')
65 drugi
drugi=input('drugi=') 72 65 drugi
prvi
prvi
drugi
72
65
prvi,drugi=drugi,prvi
72 prvi 72
print('prvi=',prvi)
drugi 65
print('drugi=',drugi)
Rješenje u datoteci 56Cvje10.py. Vježba 11. Napišite program koji traži da upišete svoje ime, a zatim vas pozdravi.
6. Programiranje – Python
11
Rješenje: Algoritam: upiši ime ispiši Drago mi je ime da smo se upoznali! Slika 15. Primjer izvršenja
Program:
programa za pozdravljanje.
ime=input('Kako se zoveš?') print('Drago mi je', ime,'da smo se upoznali!') Rješenje u datoteci 56Cvje11.py.
Decimalni brojevi Vježba 12. Napišite program koji upisuje decimalan broj, pa: a) ispisuje njegov cijeli dio. b) zaokružuje ga na prirodan broj. Rješenje: Promotrite algoritam i program: Algoritam: upiši a a= decimalni(a) cijeli = cijeli(a) zaokruži= zaokruži(a) ispiši cijeli ispiši zaokruži
Slika 16. Primjer ispisa
Program:
programa u vježbi 12.
a=input ('Upiši decimalan broj:') a=float(a) cijeli=int(a) zaokruži=round(a) print ('Cijeli dio od',a, 'je',cijeli) print (a,' je približno',zaokruži)
Ulazni podatak a sada je decimalan, a ne prirodan broj, pa ga iz teksta moramo pretvoriti u decimalan broj naredbom: a=float(a). Cijeli dio decimalnog broja dobit ćemo naredbom int(a). Naredba za zaokruživanje decimalnog broja je round (a). Rješenje u datoteci 56Cvje12.py.
4. Crtanje pomoću kornjače Osim računanja, u Pythonu možete i jednostavno crtati. Pogledate sliku na početku poglavlja o Pythonu. Kućice u bojama nacrtao je jedan mali trokutić kojeg ćemo u Pythonu zvati kornjača (engl. turtle). Python raspolaže naredbama koje možemo koristiti odmah prilikom njegovog pokretanja. Međutim, postoje i skupine naredbi koje prije korištenja moramo učitati, odnosno unijeti u Python.
Mali rječnik: round – zaokruži integer – cijeli broj
6. Programiranje – Python
12 Modul – skupina programa određene namjene Import – naredba za unošenje modula engl. turtle - kornjača
Takve skupine programa zovu se moduli. Svaki modul ima svoje ime. Na primjer, želimo li crtati, unijeti ćemo modul za crtanje. Budući ćemo crtati pomoću malog trokutića koji ćemo zvati “kornjača”, modul za crtanje zove se turtle. Module unosimo u glavni program pomoću naredbe import. Modul je skupina naredbi i programa koji imaju zajednička svojstva i namjenu. Modul unosimo naredbom import. Da biste mogli početi crtati, slijedite ove korake: 1. Na lijevu polovicu zaslona smanjite prozor Python Shell. 2. Unesite modul s naredbama za crtanje: from turtle import * 3. Imenujte prozor u kojem ćemo crtati: title('Kornjača') – pojavit će se prozor Kornjača. Kliknite na njega i smjestite ga na desnu polovicu zaslona 4. Pokažite kornjaču naredbom st()(kratica od showturtle – pokaži kornjaču).
Slika 17. Prve naredbe za crtanje pomoću kornjače.
Kornjača je okrenuta prema desnom rubu prozora. Želimo li je okrenuti prema gore pisat ćemo: lt(90)
Pozor: iza svake naredbe pritisni Enter.
Kornjača se okrenula ulijevo za 90. Naredba lt je kratica od engleske riječi left što znači lijevo. Pomaknimo je sada naprijed za 100 točaka naredbom fd (engl. forward – naprijed): fd(100) Sada je lako pogoditi da ćemo kornjaču udesno za pravi kut okrenuti naredbom rt (engl. right – desno) i opet pomaknuti naprijed za 60.
Pomaknimo se još ovako:
rt(90) fd(60)
6. Programiranje – Python
13
Sada je lako zaključiti da je naredba bk(120) pomakla kornjaču unazad, a crta je dulja od već nacrtanih, jer smo napisali veći broj pokraj naredbe (engl. back nazad). Prozor u kojem crta kornjača brišemo naredbom: bk(120) Nakon te naredbe kornjača se ponovno nalazi u središtu prozora. reset() Vježba 13. Nacrtajte dva kvadrata jedan unutar drugog. Veći kvadrat neka ima duljinu stranice 80, a manji kvadrat duljinu stranice 30. Rješenje: 1. Nacrtajte kvadrat sa stranicom duljine 80. Kvadrat ima 4 jednaka kuta, a puni okret kornjače je 360°, pa se u svakom vrhu kvadrata okrećemo za 360°: 4 = 90°. Možete pisati dvije naredbe u istom redu ako između stavite znak ;(točka-zarez). >>> >>> >>> >>> >>>
lt(90) fd(80);rt(90) fd(80);rt(90) fd(80);rt(90) fd(80);rt(90)
Želite li napisati dvije naredbe u istom retku, između njih stavite točku-zarez(znak ;). Iste naredbe ne morate prepisivati četiri puta . Pomoću kursorske strelice prema gore(na tipkovnici) pomaknite se u gornji redak i pritisnite Enter. Naredbe iz tog retka dopisat će se u novom retku. Sada još samo pritisnite Enter i napisane naredbe će se izvršiti.
2. Pomaknite kornjaču unutar kvadrata, ali tako da kornjača ne ostavi trag. Da biste to postigni, dignite pero kornjače naredbom pu() (pen up, što znači “pero gore”) . Budući da je stranica manjeg kvadrata duljine 30, onda ćete se pomaknuti gore i desno za(80-30): 2 = 50: 2=25 i zatim spustiti pero naredbom pd() (pen down, što znači “pero dolje”)
>>> >>> >>> >>>
pu() fd(25);rt(90) fd(25);lt(90) pd()
Slika 18. Dva kvadrata.
6. Programiranje – Python
14
3. Nacrtajte unutarnji kvadrat duljine stranice 30. >>> >>> >>> >>>
fd(30);rt(90) fd(30);rt(90) fd(30);rt(90) fd(30);rt(90)
Primijetite da se kornjača, crtajući kvadrat, okrenula za ukupno 3600, odnosno učinila je okret za puni kut. Rješenje u datoteci 56Cvje13.py. Osnovne naredbe za crtanje pomoću kornjače Priprema za crtanje: >>> from turtle import * >>> title('Ime prozora') >>> st()
Tablica 2. Osnovne kornjačine naredbe.
Naredba fd(50) rt(40) lt(40) bk(100) pu() pd() st() ht() reset()
Puni naziv forward(50) right(40) left(40) back(100) penup() pendown() showturtle() hideturtle() reset()
Opis pomiče kornjaču naprijed za 50 točaka okreće kornjaču udesno za 40 stupnjeva okreće kornjaču ulijevo za 40 stupnjeva pomiče kornjaču unazad za 100 točaka diže pero kornjače spušta pero kornjače pokazuje kornjaču skriva kornjaču briše crtež i postavlja kornjaču u sredinu prozora
Vježba 14. Napišite program koji crta jednakostraničan trokut stranice duljine 50. Rješenje: Puni okret kornjače je 360°.
Puni okret kornjače iznosi 360°. Trokut ima 3 jednake stranice i 3 jednaka kuta. Znači, da biste nacrtali trokut morate se ukupno okrenuti za 360°, odnosno u svakom vrhu Slika 19. Trokut. trokuta morate se okrenuti za 360°: 3 = 120° (vidi sliku 19.) Duljina stranice trokuta je 50, pa treba tri puta ponoviti naredbe fd(50) i rt(120). from turtle import * Napišimo program u uređivaču teksta st(); lt(90) koji crta trokut. fd(50); rt(120) fd(50); rt(120) Uočite da je sada priprema kornjače fd(50); rt(120) malo jednostavnija: ne moramo davati ime prozora da bi nam se otvorio. Kornjačin prozor otvara se samim pokretanjem kornjače. Pisanje programa u uređivaču teksta omogućuje nam njegovo lagano mijenjanje. Ako želite pomoću ovog programa nacrtati trokut stranice duljine 70, ponovno ćete otvoriti uređivač teksta, izmijeniti duljinu stranice, spremiti program i pokrenuti ga tipkom F5. Rješenje u datoteci 56Cvje14.py.
6. Programiranje – Python
15
Vježba 15. Napišite program koji crta 3 šesterokuta sa zajedničkim vrhom. Duljina stranice šesterokuta je 50, a debljina linije neka je 5. Rješenje: Budući da je puni okret kornjače 360° a šesterokut ima 6 vrhova, u svakom vrhu okrenut ćete se za 360°:6 = 60°. Da biste nacrtali šesteSlika 20. Tri šesterokuta. rokut trebate napisati 6 puta naredbe fd(50) i rt(60). Ali, treba nacrtati 3 šesterokuta. Moramo li toliko puta ponavljati iste naredbe? Možemo li nekako “naučiti program” da crta šesterokut, pa mu kasnije samo zadati da ga nacrta, svaki put pod drugim kutom? I to je moguće. Pogledajte program: Promotrite dio označen crvenom vitičastom zagradom. Započinje riječju def, slijedi ime sesterokut(): Zatim slijede naredbe koje crtaju šesterokut duljine stranice 50. Nakon toga jednostavno smo pokazali kornjaču, okrenuli je prema gore i tri puta nacrtali šesterokut, te okrenuli kornjaču udesno za 120°(jer je 360° : 3 = 120°, pa smo opet napravili puni okret u točki u kojoj se dodiruju sva 3 šesterokuta). Naredba width(5)postavlja debljinu pera na 5 točaka. Dio programa kojim smo crtali šesterokut predstavlja potprogram. Kako svaki potprogram mora imati svoje ime, imenovali smo ga sesterokut.
Slika 21. Shema crtanja šesterokuta.
from turtle import * title('Šesterokut') def sesterokut(): fd(50); rt(60) fd(50); rt(60) fd(50); rt(60) fd(50); rt(60) fd(50); rt(60) fd(50); rt(60) st(); lt(90) width(5) sesterokut(); rt(120) sesterokut(); rt(120) sesterokut(); rt(120)
Rješenje u datoteci 56Cvje15.py. Svaki potprogram ima svoje ime. Zadavanje potprograma započinje riječju def, slijedi ime potprograma i dvotočka : . Potprogram pišemo uvučeno 4 mjesta. Kad završimo pisanje potprograma radi preglednosti dobro je ostaviti jedan prazan redak. Potprogram pozivamo navodeći njegovo ime.
Vježba 16. Pomozimo Ivici nacrtati kućice i izračunati ukupnu duljinu linije koju će kornjača nacrtati. Rub kućice je debljine 5 točaka. Svaka kućica sastoji se od kvadrata i trokuta koji imaju duljinu stranice 80. Slika 22. Kućice se sastoje od kvadrata i trokuta.
6. Programiranje – Python
16 Rješenje:
potprogram – dio programa koji pozivamo unutar glavnog programa
Ovo je već malo složeniji zadatak pa ga prvo rastavimo na dijelove: Potrebno je napisati tri potprograma: • Potprogram kvadrat() crta kvadrat duljine stranice 80 • Potprogram trokut() crta trokut duljine stranice 80 • Potprogram kuca() crta kućicu koja se sastoji od kvadrata(crta ga kvadrat()) i trokuta (crta ga trokut()) i pomiče kornjaču uz desni donji vrh kućice(od te točke crta se sljedeća kućica). Kućicu želimo obojiti, pa ćemo na početku potprograma zadati begin_fill() (što znači “počni bojati”), a na kraju potprograma end_fill() (što znači “završi bojati”)
kvadrat
trokut
kuca
Ostatak programa zvat ćemo glavni program. U njemu pokazujemo kornjaču st() i pomičemo je uz lijevi rub prozora pu(); bk(200); pd(); lt(90), te namještamo debljinu linije width(5). Preostaje nacrtati pojedinu kućicu. Prvo zadajemo boju crtanja i boju bojenja naredbom color, npr. color('red','yellow') ako želimo crveni rub i žutu ispunu (engl. red – crveno, yellow - žuto) i nacrtamo kuću pomoću kuca(). Te dvije naredbe ponovimo još 3 puta, svaki puta s drugim bojama.
Program treba ispisati ukupnu duljinu linije koju je kornjača nacrtala. Ako je duljina jedne stranice trokuta ili kvadrata 80, onda je na jednoj kući duljina linije 6*80, a budući imamo 4 kućice to treba pomnožiti s 4, dakle: duljina= 6*80*4. Budući možemo ispisati samo jedan podatak, pretvorit ćemo broj pohranjen u varijabli duljina u tekst i dodati tekst koji treba ispisati: duljina='Duljina linija:'+ str(duljina) Sada još moramo ispisati poruku kao na slici 25. U kornjačinom prozoru ispisujemo pomoću naredbe write koja ima 3 ulazne vrijednosti: 1. podatak koji se ispisuje: duljina 2. položaj teksta(ovdje je ulijevo u odnosu na trenutni položaj kornjače): align='left' 3. vrsta, veličina i oblikovanje pisma: font=("Arial",18,"bold")
6. Programiranje – Python
17
Naredba za ispis u cijelosti izgleda ovako: write(duljina,align='left', font=("Arial",18,"bold")) from turtle import * title('Kućice') def kvadrat(): fd(80); rt(90) fd(80); rt(90) fd(80); rt(90) fd(80); rt(90) def trokut(): fd(80); rt(120) fd(80); rt(120) fd(80); rt(120) def kuca(): begin_fill() kvadrat(); fd(80) rt(30); trokut() lt(30); bk(80) rt(90); fd(83); lt(90) end_fill()
st(); pu(); bk(200); pd(); lt(90) width(5) color('red','yellow') kuca() color('blue','skyblue') kuca() color('grey','violet') kuca() color('green','brown') kuca() duljina= 6*80*4 duljina='Duljina linija:'+str(duljina) pu(); lt(90); fd(300); rt(90); bk(40); pd() color('black') write(duljina, align='left', font=("Arial",18,"bold"))
Rješenje u datoteci 56Cvje16.py. Boja
Naziv
Boja
Naziv
Boja
Naziv
Boja
Naziv
Aquamarine
Chocolate
Gray
Sienna
Black
Cyan
Green
SkyBlue
Blue
DarkBlue
Peru
Yellow
BlueViolet
DarkCyan
Red
Violet
Brown
DarkGreen
Salmon
White
Tablica 3. Nazivi nekih boja. Naredbe za pretvorbe tipova int(a) – pretvara podatak iz varijable a u prirodan broj float(a) – pretvara podatak iz varijable a u decimalan broj str(a) – pretvara podatak iz varijable a u tekst
Vježba 17. Napišite program koji crta kvadrat čiju duljinu stranice a upisujemo preko tipkovnice. Slika 23. Kvadrat zadane duljine stranice.
Naredba za boju: color(boja pera, boja ispune)
6. Programiranje – Python
18 Rješenje:
Najprije odgovorimo na pitanje zašto su pokraj imena potprograma do sada stajale prazne zagrade. To je zato jer unutar zagrada možemo upisati ime varijable čiju vrijednost ćemo koristiti u potprogramu. Promotrite potprogram kvadrat(a) koji crta kvadrat čija je duljina stranice a. Duljinu stranice kvadrata upisat ćemo u prozorčiću koji nam daje naredba
from turtle import * title('Kvadrat') def kvadrat(a): fd(a); rt(90) fd(a); rt(90) fd(a); rt(90) fd(a); rt(90)
a=textinput('Duljina stranice','a='). Naredba textinput ima dvije ulazne vrijednosti:
a=textinput('Duljina stranice','a=') a=int(a) lt(90); st() kvadrat(a)
• naslov prozora (to je ‘Duljina stranice') • tekst koji se ispisuje u prozoru koji nam govori što treba upisati (to je ‘a=’). Na taj način možemo crtati crteže različitih veličina. Rješenje u datoteci 56Cvje17.py. Vježba 18. Napišite program koji crta 8 kvadrata sa zajedničkim vrhom, ako je duljina stranice kvadrata a. Kvadrati su tako raspoređeni da ravnomjerno popunjavaju puni kut u zajedničkoj točki.
Slika 24. Osam kvadrata sa zajedničkom točkom.
Rješenje: Kvadrat ćete nacrtati pomoću istog potprograma kvadrat(a), kao u prošloj vježbi. Osam kvadrata sa zajedničkom točkom nacrtat ćete tako da se nakon crtanja jednog kvadrata okrenete udesno za 45, jer je 3600 : 8 = 450. Dakle, puni okret kornjače podijelimo s 8 i kvadrati će biti ravnomjerno raspoređeni. Rješenje u datoteci 56Cvje18.py.
from turtle import * title ('Kvadrati') def kvadrat (a): fd(a); rt(90) fd(a); rt(90) fd(a); rt(90) fd(a); rt(90)
Naredba za upis podataka u modulu turtle Za upisivanje podatka pri crtanju pomoću kornjače, upotrebljava se naredba textinput koja ima dvije ulazne vrijednosti: • naslov prozora
a=textinput('Duljina stranice','a=') a=int(a) lt(90); st() for k in range(8): kvadrat(a) rt(45)
• tekst koji se ispisuje u prozoru Npr. želite li u varijablu a upisati duljinu stranice, pisat ćete: a=textinput('Duljina stranice','a=')
6. Programiranje – Python
Sova zna Ispis podataka – naredba print() U okruglim zagradama slijede podaci koje treba ispisati. Upis podataka – naredba input Najčešće je koristimo u obliku x=input('poruka') Naredba učitani podatak shvaća kao tekst, pa ga prije računanja moramo pretvoriti u broj. Moduli – zbirke naredbi Modul je skupina naredbi i programa koji imaju zajednička svojstva i namjenu. Unosimo ga naredbom import. Osnovne naredbe za crtanje pomoću kornjače Priprema za crtanje: >>> from turtle import * >>> title('Ime prozora') >>> st() Za upisivanje podatka koji se koristiti pri crtanju pomoću kornjače, upotrebljava se naredba textinput koja ima dvije ulazne vrijednosti: naslov prozora i tekst koji se ispisuje. Potprogrami Zadavanje potprograma započinje riječju def, slijedi ime potprograma i dvotočka : . Potprogram pišemo uvučeno 4 mjesta. Potprogram pozivamo navodeći njegovo ime. def ime(): naredbe Naredbe za pretvorbe tipova int(a) – pretvara podatak iz varijable a u prirodan broj float(a) – pretvara podatak iz varijable a u decimalan broj str(a) – pretvara podatak iz varijable a u tekst
19
20
3.C.
6. razred
Programiranje – Python
U petom razredu prvi puta ste se susreli s programiranjem u Pythonu. Upoznali ste naredbe za upis i ispis podataka i osnovne naredbe za crtanje pomoću kornjače. Ove godine naučit ćete kako se ponavljaju zadane naredbe. Također, programiranjem ćete naučiti jednostavno i brzo riješiti neke računske i geometrijske zadatke, kao na primjer: • Koliko iznosi zbroj svih četveroznamenkastih brojeva? • Kako nacrtati 12 rombova sa zajedničkim vrhom? • Kako nacrtati kocke nad stranicama osmerokuta? Ključni pojmovi
odluka, petlja, petlja s korakom, lista, if, else, elif, for, in, range, colormode, color, append, extend, insert, remove, index, sort
1. Kako donosimo odluke U petom razredu upoznali ste algoritam grananja, crtali ste dijagrame toka za te algoritme, ali nismo napisali niti jedan program u kojem se donose odluke. Prisjetite se da je simbol za odluku u dijagramu toka: Program može donijeti odluku koje naredbe će izvršiti ako mu postavimo njemu razumljivo „pitanje“. Program razumije samo ona pitanja na koja može dati odgovor istina ili laž. Takva pitanja koja razumije računalo zovemo logički uvjeti. Evo nekoliko primjera „pitanja“ u programu i odgovora jesu li to logički uvjeti: Primjer 13>7 69<17
Je li logički uvjet? DA DA
a+b
NE
c=a+b
DA
Objašnjenje 13>7 je istinit logički uvjet. 69<17 je lažan logički uvjet a+b nije logički uvjet(ako su a i b varijable u programu, njihov zbroj je jedan broj, a za jedan broj ne možemo reći je li istinit ili lažan) c=a+b je logički uvjet, ako su a, b i c varijable u programu, pa je moguće provjeriti je li zbroj brojeva na varijablama a i b jednak broju na varijabli c.
Tablica 1. Što može biti logički uvjet u programu Tablica 2. Pri pisanju
Matematika < > = ³ ≤ ≠
Python < > == >= <= !=
Ako se pitate zašto matematički logičkih uvjeta koristimo znak jednakosti u Pythonu pišematematičke znakove za mo s „==“, a ne jednostavno s „=“ uspoređivanje. Postoje male razlike u pisanju nekih to je zato što se znak „=“ u Pytznakova u matematici i honu koristi za pridruživanje vriPythonu jednosti varijabli, pa ako želimo u varijablu a staviti broj 5 pišemo: a = 5, a ako želimo provjeriti je li u varijabli a pohranjen broj 5 pišemo uvjet a == 5.
3. Programiranje – Python
21
Razlikujemo: Naredba odluke:
Naredba pridruživanja:
a==5
a = 5 a
5
Navedite nekoliko primjera donošenja odluka u svakodnevnom životu. Uvjet postavite tako da na njega možete odgovoriti s DA(ako je uvjet istinit) ili s NE(ako je uvjet lažan).
Vježba 1. Napišite algoritam i program koji će provjeriti jesu li dva broja a i b jednaka ili ne. Rješenje: upiši a,b ako je a=b: ispiši Brojevi su jednaki. inače ispiši Brojevi su različiti. Slika 1. Provjera jesu li brojevi a=input('a=') b=input('b=') a=int(a) b=int(b) if a==b: print('Brojevi su jednaki.') else: print('Brojevi su različiti.')
jednaki ili različiti.
Rješenje u datoteci 63Cvje1.py.
Vježba 2. Napišite program koji za dva zadana broja n i k ispisuje poruku ako je broj n djeljiv s brojem k. Ako n nije djeljiv s k ne ispisuje se ništa. Rješenje: Dva broja su djeljiva ako im je ostatak jednak 0. Znači ako je n % k == 0, onda treba ispisati poruku oblika: n je djeljiv s k. U zadatku piše da se poruka ispisuje samo ako su brojevi djeljivi, znači ako brojevi nisu djeljivi nećete ispisati ništa. Koristit ćete if naredbu bez else. upiši n, k ako je ostatak(n,k)=0: ispiši n je djeljiv s k
Rješenje u datoteci 63Cvje2.py.
n=input('n=') k=input('k=') n=int(n) k=int(k) if n % k==0: print(n,'je djeljiv s',k)
Slika 2. Primjer različitih ispisa vježbe 2.
3. Programiranje – Python
22 Vježba 3.
Napišite program koji uspoređuje dva broja a i b. Rješenje: Ako imamo neka dva broja a i b, kakvi oni mogu biti međusobno? Iz matematike znamo da mora biti jedna od ove tri mogućnosti: 1. prvi broj može biti manji od drugog(ab) 3. brojevi su jednaki(a = b). Tu imamo 3 mogućnosti, pa nam jedna naredba odluke neće biti dovoljna. Pogledajmo algoritam: upiši a,b ako je a>b: ispiši a je veći od b inače ako je a
Slika 3. Program za uspoređivanje brojeva
Ako je a>b, ispisujemo poruku „a>b“. Inače moramo provjeriti ako je a
Rješenje u datoteci 63Cvje3.py. Vježba 4. Napišite program koji upisuje tri broja a, b i c i ispisuje ih u rastućem redoslijedu, od manjeg prema većem.
a=input('a=') b=input('b=') a=int(a) b=int(b) if ab: print(a,'>',b) else: print(a,'=',b)
Rješenje: Razmišljat ćemo ovako: 1. Ako je a>b, onda zamijenimo vrijednosti od a i b. Sada je sigurno ac, onda zamijenimo vrijednosti od a i c. Sada je sigurno ac, onda zamijenimo vrijednosti od b i c. Sada je sigurno b
Slika 5. Primjer ispisa vježbe 4.
3. Programiranje – Python Evo programa i dijagrama tijeka:
23
a=input("a=") b=input("b=") c=input("c=") a=int(a);b=int(b);c=int(c) if a>b: a,b = b,a if a>c: a,c = c,a if b>c: b,c = c,b print(a,b,c)
Rješenje u datoteci 63Cvje4.py.
Oblici naredbe odluke if uvjet: naredbe koje se izvršavaju ako je uvjet istinit
if uvjet: naredbe koje ako je uvjet else: naredbe koje ako je uvjet
se izvršavaju istinit se izvršavaju lažan
if uvjet: naredbe koje se izvršavaju ako je uvjet istinit elif uvjet1: naredbe koje se izvršavaju ako je uvjet lažan, a uvjet1 istinit else: naredbe koje se izvršavaju ako su uvjet i uvjet1 lažni
Vježba 5. Napišite program koji upisuje broj dana u mjesecu u varijablu dani, pa ispisuje koji mjeseci u godini imaju toliko dana. Uputa: Siječanj, ožujak, svibanj, srpanj,kolovoz, listopad ili prosinac imaju 31 dan. Travanj, lipanj, rujan ili studeni imaju 30 dana. Veljača u prestupnoj godini ima 29 dana, a inače 28 dana.
Izbrišite naredbe a=int(a), b=int(b) u vježbi 3. i ponovno je pokrenite. Sada su podaci u varijablama a i b u obliku teksta, pa osim brojeva možemo “uspoređivati” riječi (slika 4.). U prvom primjeru čini nam se da Python uspoređuje riječi abecednim redom. Međutim, pogledajte drugi primjer: riječ mama veća je od riječi Mama. To je zato jer Python zapravo uspoređuje slova po njihovu ASCII kodu. Budući da je ASCII kod od M 77, a od m 109, Mama < mama. Ali, kako će program sada Slika 4. „Uspousporediti ređivanje“ riječi 11 i9? Ispisat će 11 < 9 jer uspoređuje redom znamenke, a 1 < 9. Rješenje u datoteci 63Cvje3_1.py.
3. Programiranje – Python
24 Rješenje:
Ako upišete dani=31, tada ispisujete nazive mjeseca s 31 dan, inače ako upišete dani=30, tada ispisujete nazive mjeseca s 30 dan, inače ako upišete dani=29, tada ispisujete poruku: Mjesec veljača u prestupnoj godini, inače ako upišete dani=28, tada ispisujete poruku: Mjesec veljača, inače (upisan je broj koji nije broj dana u mjesecu) ispisujete poruku: Niti jedan mjesec u godini nema toliko dana. dani=input('Upiši broj dana u mjesecu') dani=int(dani) if dani=31: print ('Mjesec: siječanj, ožujak, svibanj, srpanj,kolovoz, listopad ili prosinac .') elif dani=30: print ('Mjesec: travanj, lipanj, rujan ili studeni') elif dani = 29: print ('Mjesec veljača u prestupnoj godini') elif dani=28: print ('Mjesec veljača') else: print ('Niti jedan mjesec u godini nema toliko dana.')
Rješenje u datoteci 63Cvje5.py.
2. Kako ponavljati naredbe? U svakom programskom jeziku postoje naredbe koje nam omogućuju ponavljanje određenih naredbi. Štoviše, možemo ponavljati i cijele skupine naredbi. Prepišite ove naredbe:
engl. range - domet
for k in range(10): print(k)
Pritisnite dva puta tipku Enter. Program ispisuje brojeve od 0 do 9 (vidi sliku 9 ). Naredbu oblika for k in range(10): zovemo petlja. Varijablu k zvat ćemo kontrolna varijabla petlje. Nakon dvotočke(:) Slika 6. Ispis brojeva od 0 do 9 Python zna da ćemo pisati naredbe koje će se izvršavati „unutar petlje“, pa je odmah uvukao početak retka 4 znaka. U ovom primjeru jedina naredba koja se izvršava unutar petlje je print(k), pa možemo zaključiti sljedeće: 1. Na početku varijabla petlje (k) ima vrijednost 0. 2. Pri svakom prolazu petljom varijabla petlje se povećala za 1. 3. Naredbe unutar petlje izvršile su se 10 puta , jer smo zadali range(10). Ova naredba omogućila je jednostavan ispis brojeva manjih od 10. Jasno je da pomoću ove petlje lako možemo ispisati i jako puno brojeva, npr. sve brojeve
3. Programiranje – Python
25
manje od 1000. No, budući da se svaki broj ispisuje na zaslonu u zasebnom retku, vidjet ćemo samo nekoliko posljednjih brojeva. Zato dopunimo naredbu print ovako: print(k, end=' '), što znači da nakon ispisa vrijednosti sljedeći ispis neće biti u novom redu već će se nakon znaka ‘ ‘ nastaviti u istom redu ostavivši jedno prazno mjesto. Sljedećom naredbom lako ćemo ispisati brojeve od 0 do 999
for k in range(1000): print(k, end=' ') Vježba 6. Napišite program koji upisuje prirodan broj n i ispisuje sve prirodne brojeve od 1 do n, uključujući i n. Rješenje:
Pišući for petlju sigurno ste primijetili sljedeće. Nakon što ste napisali redak for k in range (10): i pritisnuli tipku Enter, pokazivač je prešao u novi redak, ali ne na početak već se pomaknuo četiri mjesta udesno. Zašto baš četiri mjesta? U izborniku Options kliknite na naredbu Configure IDLE. Otvorit će se dijaloški okvir: U okviru Indentation Width zadano je Python standard: 4
Slika 7. Ispravan ispis prvih 10 prirodnih brojeva
Ako upišemo vrijednost od n, i u petlji umjesto broja 10 stavimo n, dobit ćemo sljedeći program: n=input('n=') n=int(n) for k in range(n): print(k, end=' ') Slika 8. U ispisu nedostaje 10, a viška je 0. To nije ono što smo željeli. Ispisala se 0, a posljednji broj je 10. Želimo li da varijabla petlje počne od 1, to ćemo zadati ovako: n=input('n=') n=int(n) for k in range(1, n): print(k, end=' ') Ali sad se nije ispisao posljednji broj, pa ćemo n povećati za 1: n=input('n=') n=int(n) for k in range(1, n+1): print(k, end=' ')
Slika 9. Sada u ispisu nedostaje 10. Ovaj program konačno ispisuje brojeve od 1 do n. Rješenje u datotekama 63Cvje6.py, 63Cvje6_1.py, 63Cvje6_2.py.
Vježba 7. Napišite program koji računa zbroj prvih n prirodnih brojeva, ako se n upisuje na početku programa.
Spaces!. To znači da će naredbe unutar petlje ili unutar jedne procedure biti uvučene 4 mjesta udesno, što možete povećati ili smanjiti. Uvlačenjem pojedinih redaka program će biti pregledniji, odnosno lakše ćete uočiti koje se naredbe nalaze unutar petlje. Pozor! Ako naredbe unutar petlje ne uvučete točno onoliko mjesta koliko je ovdje zadano, te se naredbe neće izvršiti onako kako ste očekivali.
3. Programiranje – Python
26 Rješenje:
Prije nego promotrite algoritam i dijagram toka, razmislite kako bi zbrojili prvih 10 prirodnih brojeva. Krenuli bi od 1 i računali: 1+2=3, 3 + 3 = 6, 6+ 4 = 10, 10 + 5 = 15, 15 + 6 = 21. Ako je broj 21 zbroj prvih upiši n 6 brojeva, onda zbroj prvih 7 brojeva dobijemo zbroj=0 tako da zbroju prvih 6 brojeva dodamo 7. Postuza k ide(1, n+1): pak ponavljamo dok ne dođemo do posljednjeg zbroj = zbroj + k zadanog broja. ispiši zbroj n=input('n=') n=int(n) zbroj=0 for k in range(1, n+1): zbroj=zbroj + k print('Zbroj prvih',n,'prirodnih brojeva je',zbroj,'.')
Rješenje u datoteci 63Cvje7.py. Vježba 8. U naredbeni prozor upišite sljedeće for petlje i pronađite niz brojeva koji ispisuju. Razmislite zašto se ispisuju baš ti nizovi brojeva.
1
for k in range(1,21,5): print(k, end=' ')
a
2
for k in range(10,100,11): print(k, end=' ')
b
3
for k in range(10,0,-2): print(k, end=' ')
c
4
for k in range(1,40,-10): print(k, end=' ')
d
Rješenje: Obratite pažnju na brojeve u zagradi iza riječi range: 1. c) Brojevi u zagradi su:(1,21,5) što znači da k počinje s 1, završava s 20, a pri svakom prolazu k se povećao za 5: 1 + 5 = 6, 6+ 5 = 11, 1 + 5 = 16. 2. d) Brojevi u zagradi su:(10,100,11) što znači da k počinje s 110, završava s 99, a pri svakom prolazu k se povećao za 11: 10 + 11 = 21, 21+ 11 = 32, 32 + 11 = 43, ….. 3. b) Brojevi u zagradi su:(10,0,-2) što znači da k počinje s 10, završava s 1, a pri svakom prolazu k se smanjio za 2: 10 +(-2) =10 – 2 = 8, 8+(-2) = 8 – 2 = 6, 6 +(-2) = 6 – 2 = 4, 4 +(-2) = 4 – 2 = 2.
3. Programiranje – Python
27
4. a) Brojevi u zagradi su:(1,40,-10) što znači da k počinje s 1, završava s 40, a pri svakom prolazu k se treba smanjiti za 10 i pritom doći do 40: program je prepoznao da je to nemoguće, pa nije ispisao ništa. Petlju oblika for k in range(1,21,5): zovemo petlja s korakom. Posljednji broj u zagradi zovemo korak petlje. Vježba 9. Napišimo program koji ispisuje prvih n višekratnika broja k. Brojeve n i k upisati na početku programa. Rješenje: Npr. Višekratnici broja 10 počinju brojem 10 i zatim se ispisuje svaki deseti broj. Ako ispisujemo niz od n brojeva, onda je zadnji broj koji treba ispisati 10*n. Znači, želimo li ispisati prvih n višekratnika broja k možemo koristiti petlju s korakom oblika: for m in range(k, n*k+1,k):
Rješenje u datoteci 63Cvje9.py.
n=input('n=') n=int(n) k=input('k=') k=int(k) for m in range(k, n*k+1,k): print(m, end=' ')
Naredba for k in range(n): print(k, end=' ') zove se programska petlja ili jednostavno petlja. Ona nam omogućuje ponavljanje naredbi zadani broj puta. Varijabla k zove se varijabla petlje i ona mijenja vrijednost pri svakom pr olazu petljom. Tri osnovna oblika for naredbe: 1. Naredba for k in range(20): print(k, end=' ') Varijabla k počinje s 0 i završava s brojem 19. Pri svakom prolazu petljom se povećava za 1. 2. Naredba for k in range(1, 20): print(k, end=' ') Varijabla k počinje s 1 i završava s brojem 19. Pri svakom prolazu petljom povećava se za 1. 3. Naredba for k in range(2, 20,2): print(k, end=' ') Varijabla k počinje s 2 i završava s brojem 18. Pri svakom prolazu petljom povećava se za 2.
Slika 10. Deset višekratnika broja 4 i dvanaest višekratnika broja 45
Ispis prvih n višekratnika broja k može se napraviti i bez petlje s korakom ovako: n=input('n=') n=int(n) k=input('k=') k=int(k) for m in range (1, n+1): print (m*k, end=' ')
Rješenje u datoteci 63Cvje9_1.py.
3. Programiranje – Python
28
Leonardo Fibonacci ili Leonardo od Pise (oko 1170. – oko 1250.), također poznat kao Leonardo Bonacci, bio je talijanski matematičar, kojeg su neki uzimali za najtalentiranijeg matematičara srednjeg vijeka. Danas je najpoznatiji po tome što je raširio uporabu arapskih brojaka u Europi i po nizu Fibonaccijevih brojeva, koje nije on izmislio, nego ih spominje u svojoj knjizi Liber Abaci (Knjiga računanja)
Vježba 10. Napišite program koji ispisuje prvih n članova niza: 1, 1, 2, 3, 5, 8, 13, 21, … i računa njihov zbroj. Prva dva člana niza su 1, a svaki sljedeći član niza jednak je zbroju prethodna dva člana niza. Pretpostavite da je n>2.
Slika 11. Vježba 10. Rješenje:
Neka je a=1 i b= 1. To su prva dva člana niza. Prvo ih ispišemo. Zatim ih zbrojimo: neka je zbroj = a + b. Prva dva člana smo riješili. Sada preostaje pronaći preostala n-2 člana niza # Pretpostavimo da je n veći od 3. i dodati ih u varijablu zbroj. n=input('n=') Ako je sljedeći član niza c= n=int(n) a + b, onda ga ispišemo a=1 i dodamo u zbroj pomoću b=1 print('Prvih', n, 'Fibonaccijevih brojeva:') zbroj=zbroj + c. Sada print(a,b, end=' ') drugi član niza(b) postaje prvi zbroj= a+b član: a=b i treći član niza for k in range (n-2): postaje drugi član: b=c. Na c=a+b kraju se samo ispiše rezultat, print(c, end=' ') vrijednost varijable zbroj. zbroj=zbroj+c a=b Rješenje u datoteci b=c print(' ') 63Cvje10.py. print ('Zbroj prvih',n,'članova niza je', zbroj, '.')
3. Kornjača u petlji Ponovimo Osnovne naredbe za crtanje pomoću kornjače Priprema za crtanje: from turtle import * title('Ime prozora') st()
Puni okret kornjače je 360°.
Naredba fd(50) rt(40) lt(40) bk(100) pu() pd() st() ht() reset()
Puni naziv forward(50) right(40) left(40) back(100) penup() pendown() showturtle() hideturtle() reset()
Opis pomiče kornjaču naprijed za 50 točaka okreće kornjaču udesno za 40 stupnjeva okreće kornjaču ulijevo za 40 stupnjeva pomiče kornjaču unazad za 100 točaka diže pero kornjače spušta pero kornjače pokazuje kornjaču skriva kornjaču briše crtež i postavlja kornjaču u sredinu prozora Tablica 3. Osnovne kornjačine naredbe
3. Programiranje – Python
29
Vježba 11. Napišite program koji crta jedrilicu kao na slici:
Slika 12. Jedrilica. Rješenje: Slijedeći duljine linija i veličine kutova kao na slici 13. lagano sastavimo program za crtanje jedrilice: Rješenje u datoteci 63Cvje11.py.
Slika 13. Shema jedrilice. from turtle import * title('Jedrilica') st(); lt(90) lt(45); fd(60); rt(135); fd(180); rt(135) fd(60); rt(45); fd(96); rt(45); fd(60); rt(135); fd(60); lt(90); fd(60); rt(135); fd(86)
Vježba 12. Napišite program koji crta pravokutnik duljine a i širine b. Duljinu i širinu pravokutnika upisati na početku programa. Uputa: duljinu stranice pravokutnika upisujemo u posebnom prozorčiću, naredbom textinput.
Slika 14. Pravokutnik duljine 100 i širine 50. Rješenje: Promotrite shemu na slici 15. Pravokutnik ima sve kutove prave, a nasuprotne stranice jednake duljine. Ako krećemo od točke označene kornjačom, onda dva puta ponavljamo iste naredbe(jednom za plave, drugi put za zelene stranice), pa pravokutnik možemo nacrtati for petljom koju ponavljamo dvaput. Rješenje u datoteci 63Cvje12.py.
Slika 15. Shema pravokutnika.
from turtle import * title('Pravokutnik') st(); lt(90) a=textinput('Duljina','a=') b=textinput('Duljina','b=') a=int(a) b= int(b) for k in range(2): fd(b); rt(90) fd(a); rt(90)
3. Programiranje – Python
30 Vježba 13.
Napišite program za crtanje paralelograma kome su duljine stranica a i b, a kut među njima kut. Potrebne veličine upisati na početku programa. Napisati potprogram za crtanje paralelograma.
Slika 16. Paralelogram duljine
Slika 17. Shema paralelograma.
100, širine 50 i kuta 45°.
from turtle import * def paralelogram(a,b,kut): rt(90-kut) for k in range(2): fd(b); rt(kut) fd(a); rt(180-kut) lt(90-kut) title('Paralelogram') st(); lt(90) a=textinput('Duljina','a=') b=textinput('Duljina','b=') kut=textinput('Kut','kut=') a=int(a) b=int(b) kut=int(kut) paralelogram(a,b,kut)
Rješenje: Potprogram za paralelogram pišemo na početku programa, navodeći riječ def, pa ime potprograma – paralelogram i popis varijabli koje se koriste u potprogramu: a, b, kut. Želite li nacrtati paralelogram kome je stranica a vodoravna, potrebno je kornjaču prvo okrenuti udesno za 90–kut. Zatim ponavljamo crtanje 2 puta, slično kao kod pravokutnika, samo su ovdje 2 različita kuta (vidi sliku 17.). U glavnom programu upisujemo ulazne vrijednosti i crtamo paralelogram. Rješenje u datoteci 63Cvje13.py. U sljedećoj vježbi upoznat ćemo kako zadati boju kornjače.
Slika 18. Neke od 16 milijuna boja koje možete odabrati
boja
crvena
zelena
plava
0
0
255
crvena
zelena
plava
0
0
127
127
0
0
127
0
127
0
255
0
127
127
127
0
0
255
255
255
0
255
255
255
0
255
255
127
127
0
255
0
255
Tablica 4. Primjeri miješanja boja
boja
Python omogućuje nekoliko načina zadavanja boje. Jedan od njih je zadavanje boje riječima, npr. color('red', 'blue') – sada je boja linije crvena(red), a boja ispune plava(blue). Ovaj način je nespretan jer moramo znati imena boja. Međutim, svaka boja na zaslonu, od crne do bijele nastaje kao kombinacija triju boja: crvene, zelene i plave.
Svaka boja određena je jednim brojem od 0 do 255. Na taj način možemo dobiti ukupno 256 · 256 · 256 = 16 777 216 boja. Želimo li boju kornjače opisivati kao kombinaciju triju boja: crvene, zelene i plave, naredbom colormode(255) najavljujemo Pythonu takvo zadavanje boja.
3. Programiranje – Python
31
Vježba 14. Napišite program koji crta obojani kvadrat stranice duljine 100. Upisati količinu crvene boje c, zelene boje z i plave boje p. Kvadrat crtamo pomoću potprograma. Rješenje: Potprogram crta kvadrat ispunjen bojom. Naredbe begin_fill()i end_fill() kažu kornjači da sve što nacrta između tih naredbi treba obojiti trenutnom bojom ispune. U glavnom programu upisujemo količine crvene boje c, zelene boje z i plave boje p. Uključujemo colormode(255), zadajemo boju kornjače
from turtle import * def kvadrat(a): begin_fill() for n in range(4): fd(a);rt(90) end_fill() title('Boja') c=textinput('Crvena','c=') z=textinput('Zelena','z=') p=textinput('Plava','p=') c=int(c); z=int(z); p=int(p) colormode(255) color(c,z,p) kvadrat(100)
color(c,z,p)i crtamo kvadrat naredbom kvadrat(100). Rješenje u datoteci 63Cvje14.py. Može li boje zadavati sam program, ali tako da svaki puta bira neku drugu, nasumično neku boju? To je moguće, ako na početku programa učitate još jedan modul: from random import * koji ima naredbu randrange za zadavanje nekog nasumičnog broja. Onda će naredba randrange(0,256) dati neki broj između 0 i 255.
Slika 19. Dvadeset pet upisanih kvadrata
Vježba 15. Napišite program koji crta kvadrat stranice 250 i kvadrate unutar njega, tako da svaki sljedeći kvadrat ima za 10 kraću stranicu. Svi kvadrati imaju jednu zajedničku točku – njihovo sjecište dijagonala. Rješenje: Sada i određivanje boje kvadrata možete staviti u potprogram kvadrat(a). U glavnom programu treba pozvati potprogram koji crta kvadrate, ali tako da se crta prvo najveći kvadrat, pa redom smanjivati stranicu petljom oblika: for a in range(250,0,-10): Rješenje u datoteci 63Cvje15.py.
from turtle import * from random import * def kvadrat(a): c=randrange(0,256) z=randrange(0,256) p=randrange(0,256) color(c,z,p) begin_fill() for n in range(4): fd(a);rt(90) end_fill() title('Kvadrati'); pu(); bk(50); lt(90) bk(50); pd() colormode(255) for a in range(250,0,-10): kvadrat(a) pu(); fd(5); rt(90); fd(5); lt(90)
3. Programiranje – Python
32 Vježba 16.
Napišite program koji crta cvijet od n rombova, ako je duljina stranice romba a. Svi rombovi imaju zajedničku točku u početnom položaju kornjače i obojani su nasumično određenim bojama. Rješenje:
Slika 20. Cvijet od deset rombova
Romb je paralelogram koji ima sve stranice jednake duljine, a. Kut romba
from turtle import * from random import * def romb(a,kut): c=randrange(0,256) z=randrange(0,256) p=randrange(0,256) color(c,z,p) begin_fill() for x in range(2): fd(a);rt(kut) fd(a);rt(180-kut) end_fill() title ('Cvijet') a=textinput ('Duljina stranice','a=') n=textinput ('Broj cvjetova','n=') a=int(a); n=int(n) colormode(255); lt(90) kut=360/n for br in range (n): romb(a,kut); rt (kut)
from turtle import * def paralelogram(a,b,kut): rt(90-kut) for k in range(2): fd(b); rt(kut) fd(a); rt(180-kut) lt(90-kut) title('Kocka') st(); lt(90) a=textinput('Duljina brida','a=') a=int(a) paralelogram(a,a,90) paralelogram(a,a/2,45) fd(a) paralelogram(a,a/2,45) bk(a); rt(45), fd(a/2); lt(45) paralelogram(a,a,90) rt(45), bk(a/2); lt(45)
Slika 21. Cvijet od trideset šest rombova određuje se iz uvjeta da svih n rombova ima jednu zajedničku točku, a ispunjavaju puni kut. Dakle, kut romba je 360/n. Romb crtamo i bojimo u potprogramu romb(a,kut). Kut romba ovisi o broju latica, pa je kut = 360/n. Cvijet crtamo u glavnom programu jednostavnom petljom: for br in range(n): romb(a,kut); rt(kut) Rješenje u datoteci 63Cvje16.py.
4. Crtanje kocke i kvadra Vježba 17. Napišite program koji crta kocku duljine brida a, prema shemi na slici 22.
Rješenje: Uočite da se crtež kocke sastoji od 4 paralelograma: prednji i stražnji paralelogram su zapravo kvadrati stranice a, a gornji i donji su Slika 22. Kocka paralelogrami sa stranicama a i a/2 i kutom 45°. Rješenje u datoteci 63Cvje17.py.
3. Programiranje – Python from turtle import * def paralelogram(a,b,kut): rt(90-kut) for k in range(2): fd(b); rt(kut) fd(a); rt(180-kut) lt(90-kut) title('Kvadar') st(); lt(90) a=textinput('Duljina brida','a=') b=textinput('Duljina brida','b=') c=textinput('Duljina brida','c=') a=int(a); b=int(b);c=int(c); paralelogram(a,c,90) paralelogram(a,b,45) fd(c) paralelogram(a,b,45) bk(c); rt(45), fd(b); lt(45) paralelogram(a,c,90) rt(45), bk(b); lt(45)
33 Vježba 18. Napišite program koji crta kvadar s duljinama bridova a,b i c prema shemi na slici 23.
Rješenje: Kvadar također crtamo pomoću četiri paralelograma. Umjesto a/2 pišemo b, a umjesto vertikalnih crta duljine a pišemo c.
Slika 23. Kvadar
Rješenje u datoteci 63Cvje18.py.
Vježba 19. Napišite program koji crta 8 raznobojnih kocaka nad stranicama osmerokuta. Duljina brida kocke a upisuje se u programu, a boje se biraju nasumično. Vidi from turtle import * sliku 24. from random import * def paralelogram(a,b,kut): rt(90-kut) Rješenje: for k in range(2): U ovom prografd(b); rt(kut) fd(a); rt(180-kut) mu koristimo dva lt(90-kut) potprograma: def kocka(a): • paralelogram - za c=randrange(0,256) crtanje paraleloz=randrange(0,256) grama (to su strap=randrange(0,256) color(c,z,p) ne kocke) paralelogram(a,a,90) Slika 24. Kocke nad stranicama • kocka – za crtanje paralelogram(a,a/2,45) osmerokuta obojene kocke. fd(a) paralelogram(a,a/2,45) Opet je glavni program jednostavan: u petlji koju ponavljabk(a); rt(45), fd(a/2); lt(45) mo 8 puta: for n in range(8): paralelogram(a,a,90) crtamo kocku kocka(a), pomičemo se naprijed za duljinu rt(45), bk(a/2); lt(45) brida kocke fd(a) i okrećemo se ulijevo za 360° : 8 = 45°, title('Kocke') tj. lt(45). st(); lt(90); colormode(255) a=textinput('Duljina brida','a=') a=int(a) Rješenje u datoteci 63Cvje19.py. for n in range(8): kocka(a); fd(a);lt(45)
3. Programiranje – Python
34
5. Liste Problem 1. Radi se anketa o zdravoj prehrani i učiteljica želi doznati koje voće djeca vole. Ona zadaje popis voća, a svaki učenik treba upisati koje voće iz tog popisa ne voli, a može u popis dodavati i voće koje voli. Učiteljica želi popis voća koje voli pojedini učenik ispisan abecednim redom. Problem 2. Promotrite sljedeće crteže nacrtane pomoću kornjače. Obratite pažnju na boje:
Slika 25. Spirale nacrtane pomoću sedam boja Spirale na slici zadane su pomoću 7 boja koje su zadane njihovim nazivima: ‘Sk yBlue’,’Black’,’Green’,’Yellow’,’Blue’,’Red’,’Violet’. Želimo da se boje redom mijenjaju, od ‘SkyBlue’ do ‘Violet’, a zatim sljedeća crta bude opet boje ‘SkyBlue’. Primijetili ste da smo, zadajući boje nasumično, često dobili presvijetle ili vrlo slične boje jednu za drugom. Na ovaj način možemo navesti točno koje boje želimo koristiti u zadatku. U oba problema susrećemo se s popisom: popis voće i popis boja. Do sada smo u Pythonu programirali koristeći brojeve (prirodne i decimalne) i riječi, odnosno tekst (npr. podaci koje upisujemo u input ili textinput naredbi) . Tip podataka koji omogućuje pohranjivanje više podataka različitog tipa (brojeva, riječi…) zove se lista. Podaci koji čine listu pišu se unutar uglatih zagrada odvojeni zarezom. Primjeri lista su: >>> brojevi=[1,3,5,7,9] >>> print(brojevi) [1, 3, 5, 7, 9] >>> print (brojevi [2]) 5 >>> print (brojevi [0]) 1 >>> brojevi.append(11) >>> print(brojevi) [1, 3, 5, 7, 9, 11] >>> brojevi.append(13) >>> print(brojevi) [1, 3, 5, 7, 9, 11, 13]
broj_dana_u_mjesecu=[28, 29, 30, 31] boje=['SkyBlue','Black','Green','Yellow','Blue','R ed','Violet'] samoglasnici=['a', 'e', 'i', 'o', 'u'] Naredbe za rad s listama najbolje ćete upoznati upisujući naredbe u naredbenom prozoru Python Shell. Upisujte naredbe koje počinju s >>> i nakon svakog retka pritisnite Enter. Naredba print(brojevi[2]) ispisala je treći član liste, a naredba print(brojevi[0]) prvi član liste. Članovi u listi označeni su svojim rednim brojem počevši od 0.
3. Programiranje – Python Naredba brojevi.append(11) dodala je broj 11 na kraj liste brojevi. Naredba brojevi.extend([2,4,6,8, 10,12])dodala je listu [2,4,6,8,10,12] na kraj liste brojevi.
35
>>> >>> [1, >>> >>> [1,
brojevi.extend([2,4,6,8,10,12]) print(brojevi) 3, 5, 7, 9, 11, 2, 4, 6, 8, 10, 12] brojevi.sort() print(brojevi) 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
Naredba brojevi.sort()razvrstala je listu brojevi od najmanjeg prema najvećem broju. Naredba brojevi.remove(10) izbrisala je 10 iz liste brojevi.
>>> >>> [1, >>> 12
brojevi.remove(10) print(brojevi) 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13] print len (brojevi)
Naredba len (brojevi)vratila je broj članova liste brojevi. Liste brojeva možemo brzo kreirati pomoću for petlje na sljedeći način: Ispis svih članova liste možemo dobiti uporabom jednostavne for petlje: for k in range (0, len(lista)): print (lista[k]) Neke od najčešćih naredbi za rad s listama navedene su u tablici 5.
>>> jednoznamenkasti=[k for >>> print(jednoznamenkasti) [0, 1, 2, 3, 4, 5, 6, 7, 8, >>> neparni_manji_20=[k for >>> print(neparni_manji_20) [1, 3, 5, 7, 9, 11, 13, 15, >>> djeljivi_15=[k for k in >>> print(djeljivi_15) [15, 30, 45, 60, 75, 90]
k in range(10)] 9] k in range(1,20,2)] 17, 19] range(15,100,15)]
Naredba Primjer upotrebe
Rezultat
Opis
append
lista.append(7)
Dodaje broj 7 na kraj liste.
extend
lista.extend([6,8])
remove
lista.remove(2)
lista=[1, 2, 3, 4, 5, 7] lista=[1, 2, 3, 4, 5, 7, 6, 8] lista=[1, 3, 4, 9, 5, 7, 6, 8]
sort
lista.sort()
lista=[1, 3, 4, 5, 7, 6, 8, 9]
len
len (lista)
8
Razvrstava članove liste od najmanjeg do najvećeg. Vraća broj članova liste.
Dodaje članove liste [6,8] na kraj liste. Izostavlja broj 2 iz liste.
Tablica 5. Naredbe za rad s listama Vježba 20. Radi se anketa o zdravoj prehrani i učiteljica želi doznati koje voće djeca vole. Ona zadaje popis voća, a svaki učenik treba upisati koje voće iz tog popisa ne voli, a može u popis dodavati i voće koje voli. Učiteljica želi popis voća koje voli pojedini učenik ispisan abecednim redom. Na početku programa zadana je lista: voće=['ananas', 'jabuka', 'naranča','šljiva', 'avokado', 'mango'] Program treba ispisati tu listu i zatim tražiti od učenika da napiše koliko voća (upisati n) iz te liste ne voli, pa treba upisati koje je to voće i izostaviti upisano voće iz liste voće. Zatim treba upitati koliko voća koje učenik voli treba upisati u popis (opet upisati n), pa upisati voće koje učenik voli i dodati ga u listu voće. Na kraju ispišite tako dobivenu listu voće.
Slika 26. Vježba 20.
3. Programiranje – Python
36
voće=['ananas', 'jabuka', 'naranča','šljiva', 'avokado', 'mango'] print('Ja volim ovo voće:',voće) #Upis koliko voća ne voliš n=input('Koliko voća iz ovog popisa ti ne voliš?') n=int(n) for k in range(n): ne_voli=input ('Voće koje ne volim:') voće.remove(ne_voli) #Upis koliko voća voliš n=input('Koliko želiš vrsta voća dodati u popis?') n=int(n) for k in range(n): upis=input ('Upiši voće koje voliš:') voće.append(upis) #Poredaj učenike po abecedi voće.sort() #Popis voća koje voliš print ('Znači ti voliš ovo voće:') for k in range(0, len(voće)): print (voće[k])
Rješenje: Naredbe za rad s listama ste upoznali, a unutar programa upisani su komentari koji vam olakšavaju razumijevanje programa. To su reci crvene boje koji počinju znakom #. Rješenje u datoteci 63Cvje20.py.
Vježba 21. Napišite program koji crta spirale linija kao na slikama 27-29. Linije su crtane naizmjenično sa 7 boja: popis= ['SkyBlue','Black','Green','Yellow ','Blue','Red','Violet' ].
Slika 27. Spirala crtana s n=10, kut=20, korak=3
Duljina prve linije je a=5, a svaka sljedeća linija je za korak dulja. Upisuju se sljedeći podaci:
Slika 28. Spirala crtana s n=15, kut=92, korak=1,5
n – broj ponavljanja iste boje, prirodan broj kut – kut okreta udesno iza svake linije, prirodan broj korak – broj za koji se poveća duljina sljedeće linije, decimalan broj Rješenje: Evo programa:
Slika 29. Spirala crtana s n=20, kut=63, korak=1
from turtle import * title('Spirala') popis=['SkyBlue','Black','Green','Yellow','Blue','Red','Violet'] n=textinput('Broj ponavljanja','n='); n= int(n) kut=textinput('Broj ponavljanja','kut='); kut= int(kut) korak=textinput('Stanica a','Za koliko će se povećati duljina crte=') korak= float(korak) a=5; width(2); lt(90) for k in range (n*len(popis)): boja= popis [k%len(popis)] color(boja); fd(a); rt(kut) a +=korak
3. Programiranje – Python
37
Promotrite for petlje koje crtaju linije. Petlja for k in range(n*len(popis)):se izvršava n puta više nego ima boja u listi popis. for k in range (n*len(popis)): boja= popis [k%len(popis)] color(boja); fd(a); rt(kut) a +=korak Boje se mijenjaju redom, jer ih dobijete kao ostatak pri dijeljenju varijable petlje k s brojem boja u listi popis. Tako uvijek dobijete neki broj od 0 do len(popis)-1 , tj. redni broj člana liste popis. Ova petlja izvršava se onoliko puta koliko ima članova u listi popis, tj. koliko smo boja naveli. Osim crtanja jedne linije u toj petlji vrijednost varijable a povećavamo za korak naredbom a +=korak. Rješenje u datoteci 63Cvje21.py.
Sova zna Naredba odluke
Liste
Naredba odluke omogućuje nam donošenje odluka u programu. Uvjet koji slijedi iza if mora biti istinit ili lažan. Osnovni oblik naredbe je:
Lista je tip podataka koji omogućuje pohranjivanje više podataka različitog tipa (brojeva, riječi…). Podaci koji čine listu pišu se unutar uglatih zagrada odvojeni zarezom.
if uvjet: naredbe koje se izvršavaju ako je uvjet istinit else: naredbe koje se izvršavaju ako je uvjet lažan
Primjer liste: a=[1, 2, 3, 4, 5].
Petlja Naredba for k in range(n): print(k, end=' ') zove se programska petlja ili jednostavno petlja. Ona nam omogućuje ponavljanje naredbi zadani broj puta. Varijabla k zove se varijabla petlje i ona mijenja vrijednost pri svakom prolazu petljom. POJMOVNIK
Naredba odluke – omogućuje donošenje odluka u programu. Kažemo da se program “grana”, tj. neke naredbe izvršavaju se ako je uvjet istinit,a neke druge naredbe se izvršavaju ako je uvjet lažan. Petlja – naredba koja omogućuje ponavljanje određenih naredbi zadani broj puta Lista – vrsta podataka koja može sadržavati brojeve, riječi ili druge liste. Podaci koji čine listu pišu se unutar uglatih zagrada.