Programmeerimine. 7. loeng

Vergelijkbare documenten
Programmeerimine. 7. loeng 1 / 31

Programmeerimine. 8. loeng

Programmeerimine. 14. loeng

Programmeerimine. 15. loeng

Programmeerimine. 12. loeng

Programmeerimine. 6.loeng 1 / 1

Programmeerimine. 2. loeng

Inleiding Programmeren 2

Programmeerimiskeel. Ivari Horm Ivari Horm,

Inleiding Programmeren 2

Programmeermethoden NA. Week 6: Lijsten

Programmeermethoden NA

Programmeren PYTHON OEFENTENTAMEN 2. Schrijf jouw antwoorden op dit tentamen. Tijd: 2 uur. Maximaal aantal punten: 32. Naam: Studentnummer:

Inleiding Programmeren 2

Inleiding Programmeren 2

Toetsvoorbereiding Informatica HAVO/VWO 5 (T51) Programmeren met Python II. Duur: 70 minuten Datum: sept 2018

Inleiding Programmeren 2

Python. Informatica. Renske Smetsers

Arrays. Complexe datastructuren. Waarom arrays. Geen stijlvol programma:

Programmeermethoden NA. Week 3: Controlestructuren

Uitwerkingen. Python Assessment

Programmeermethoden NA. Week 5: Functies (vervolg)

Scala. Korte introductie. Sylvia Stuurman

A Python Crash Course

Inleiding Programmeren 2

Oefententamen 2. Tijd: 2 uur. Maximaal aantal punten: 30. Naam: Studentnummer:

Programmeermethoden NA. Week 5: Functies (vervolg)

Niet-numerieke data-types

Voorbeelden. Sorteren. Voorbeeld: n = 5. # intsort.py: sorteren van een rij getallen

Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren

Python voor Natuur- en Sterrenkundigen Week 2

Wat als je een heleboel informatie wilt opslaan? Bijvoorbeeld alle namen van iedereen die bij jouw dojo's aanwezig is? Hier gebruik je een lijst voor:

Javascript oefenblad 1

OEFENINGEN PYTHON REEKS 1

Gelijktijdigheid: Wederzijdse Uitsluiting & Synchronisatie Concurrency: Mutual Exclusion & Synchonization (5e ed: , Appendix A.

Code Voorbeeld Resultaat. print(6, end="") print(7) print(type(6)) <class 'int'> + optelling - aftrekking * vermenigvuldiging / deling 8 16 % modulo

Geeft de lengte van een object (string, lijst, tupel) terug als integer

Tentamen Programmeren in C (EE1400)

Programmeren en Wetenschappelijk Rekenen in Python. Wi1205AE I.A.M. Goddijn, Faculteit EWI 22 mei 2014

OEFENINGEN PYTHON REEKS 1

ALGORITMIEK: answers exercise class 7

Tentamen Programmeren in C (EE1400)

Python voor Natuur- en Sterrenkundigen Week 1

MINICURSUS PHP. Op dit lesmateriaal is een Creative Commons licentie van toepassing Sebastiaan Franken en Rosalie de Klerk Bambara

is eigenlijk overbodig!

Demo document template available on the Rapptorlab website

TOPIC G: RECORD TOPIC G: RECORD TOPIC G: RECORD TOPIC G: RECORD 23/12/2010 MODULE D1; <* NOOPTIMIZE + *> <* NOOPTIMIZE + *>

Derde college algoritmiek. 22 februari Complexiteit Toestand-actie-ruimte

Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, , Technische Universiteit Delft, Faculteit EWI, Afdeling 2.

Tentamen Programmeren in C (EE1400)

Testondersteuning in frameworks voor webapplicaties

Tentamen Formele Methoden voor Software Engineering (213520)

Algoritmen, Datastructuren en Complexiteit ( ) Uitwerkingen

Methode: Verdeel en heers

Modelleren en Programmeren

Persistentie via bestanden. Bestanden

Modelleren en Programmeren

Voorbeeld: Simulatie van bewegende deeltjes

Software 1. php mysql. bachelor grafische en digitale media cross-media ontwerp & grafimediatechnologie academiejaar semester 1

Derde college algoritmiek. 23 februari Complexiteit Toestand-actie-ruimte

Programmeren met Python

Uitwerking Tweede deeltentamen Imperatief programmeren - versie 1 Vrijdag 21 oktober 2016, uur

Een korte samenvatting van enkele FORTRAN opdrachten

Recursion. Introductie 37. Leerkern 37. Terugkoppeling 40. Uitwerking van de opgaven 40

ContentSearch. Deep dive

OEFENINGEN PYTHON REEKS 1

Programmeermethoden. Talen: Python,... Walter Kosters. week 14: december kosterswa/pm/

Zelftest Inleiding Programmeren

Vierde college algoritmiek. 23/24 februari Complexiteit en Brute Force

[13] Rondjes draaien (loops)

ASRemote WebService. Via deze webservice kunt u:

Objective-C Basis. 23 april 2005, Eindhoven Patrick Machielse

extra oefeningen - antwoorden

Uitwerkingen Tweede deeltentamen Imperatief programmeren Vrijdag 15 oktober 2010, uur

Ruwe uitwerkingen proeftentamen Bioinformatica deel B(8C078), 12 januari 2007, u.

Programmeermethoden NA

Programmeermethoden. Recursie. Walter Kosters. week 11: november kosterswa/pm/

DEEL 3 : De LOGO taalwereld

Programmeren. a. 0, 0, 0 b. 0, 0, 27 c. 15, 12, 0 d. 15, 12, 27

LES 12 : Karel Heymans. Taalwereld in LOGO

Inhoud leereenheid 4. Inleiding JavaScript. Introductie 99. Leerkern 100. Zelftoets 108. Terugkoppeling 109

Modelleren en Programmeren

Imperatief programmeren

8C080 deel BioModeling en bioinformatica

BELGIA KUNINGRIIK ABIKS UUEL ALGUSEL

Uitwerkingen derde deeltentamen Gameprogrammeren Vrijdag 6 november 2015, uur

UNIVERSITEIT ANTWERPEN FACULTEIT WETENSCHAPPEN DEPARTEMENT WISKUNDE-INFORMATICA OBERON CODE CONVENTIONS

SQL Aantekeningen 3. Maarten de Rijke 22 mei 2003

HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren

Methode: Verdeel en heers

Programmeermethoden NA. Week 10: NumPy, Python module showcase

[12] Tupels, lijsten en woordenboeken

Opgaven. Python Assessment

Invullen in HOOFDLETTERS en LEESBAAR aub. Belgische Informatica-olympiade (duur : 2u maximum)

Ingebouwde klassen & methodes

Project Embedded Linux Domaza. Elektronica-ICT. Dimitri Kozakiewiez Jonas Govaerts. Academiejaar

Invullen in HOOFDLETTERS en LEESBAAR aub. Belgische Informatica-olympiade (duur : 2u maximum)

Reguliere talen: overzicht

Les 3. Gebruik in volledige programma Default argumenten Vergelijken van objecten

Transcriptie:

Programmeerimine 7. loeng

Tana loengus Jadaiterator ja maaratud tsuklid Jarjendid ja massiivid Listid, ennikud ja s~oned Massiivide tootlemine Eeldeneeritud operatsioonid jarjenditel

Jadaiteraator Pythonis on for-tsukkel uldine jadaiteraator: for var in list: body var on tsuklimuutuja ning list on mingi jada. Tsuklimuutuja saab algul vaartuseks jada esimese elemendi vaartuse ja igal jargneval iteratsioonisammul jada jargmise elemendi vaartuse. Tsukkel l~opeb, kui jadas rohkem elemente pole.

Jadaiteraator Naide { jada elementide valjatrukkimine for c in "Hello, World!": print(c) for i in [1,7,2,3,12]: print(i)

Jadaiteraator Naide { kataloogi sisu valjatrukkimine import os for le in os. listdir ("."): print( le )

Jadaiteraator Naide { arvude lugemine failist ja summeerimine myfile = open("arvud.txt") sum = 0 for arv in myfile: sum += int(arv) print("arvude summa on: ", sum)

Maaratud tsuklid Maaratud tsukli tarvis saab jada genereerimiseks kasutada funktsiooni range. K~oige uldisem versioon, range(start, stop, step), saab kolm taisarvulist argumenti: { argument start on jada esimene element; { argument stop on jada ulemine piir (k~oik jada elemendid on sellest "vaiksemad"); { argument step on samm, mille v~orra jada jargmine element on eelmisest "suurem". Kaheargumendilisena, range(start, stop), on step uks. Uheargumendilisena, range(stop), on start vaartuseks null. range(5) =) [0; 1; 2; 3; 4] range(1; 6) =) [1; 2; 3; 4; 5] range(1; 6; 2) =) [1; 3; 5]

Naiteid maaratud tsuklitest Maaratud tsuklid for i in range(6): print(i, end=" ") # Trukib: 0 1 2 3 4 5 for i in range( 2): print(i, end=" ") # Ei truki midagi for i in range( 2,2): print(i, end=" ") # Trukib: 2 1 0 1 for i in range(2, 2): print(i, end=" ") # Ei truki midagi for i in range(2, 2, 1): print(i, end=" ") # Trukib: 2 1 0 1

Maaratud tsuklid sum = 0 for i in range(1; 5): sum = sum + i...

Maaratud tsuklid sum = 0 for i in range(1; 5): sum = sum + i sum 0...

Maaratud tsuklid sum = 0 for i in range(1; 5): sum = sum + i sum i 0 1...

Maaratud tsuklid sum = 0 for i in range(1; 5): sum = sum + i sum i 1 1...

Maaratud tsuklid sum = 0 for i in range(1; 5): sum = sum + i sum i 1 1...

Maaratud tsuklid sum = 0 for i in range(1; 5): sum = sum + i sum i 1 2...

Maaratud tsuklid sum = 0 for i in range(1; 5): sum = sum + i sum i 3 2...

Maaratud tsuklid sum = 0 for i in range(1; 5): sum = sum + i sum i 3 2...

Maaratud tsuklid sum = 0 for i in range(1; 5): sum = sum + i sum i 3 3...

Maaratud tsuklid sum = 0 for i in range(1; 5): sum = sum + i sum i 6 3...

Maaratud tsuklid sum = 0 for i in range(1; 5): sum = sum + i sum i 6 3...

Maaratud tsuklid sum = 0 for i in range(1; 5): sum = sum + i sum i 6 4...

Maaratud tsuklid sum = 0 for i in range(1; 5): sum = sum + i sum i 10 4...

Maaratud tsuklid sum = 0 for i in range(1; 5): sum = sum + i sum i 10 4...

Maaratud tsuklid sum = 0 for i in range(1; 5): sum = sum + i sum i 10 4...

Maaratud tsuklid Naide { faktoriaal def factorial (n): fact = 1 for i in range(1,n+1): fact = i return fact

Trukkida tarnidest puramiid Maaratud tsuklid korgus = int(input("sisesta pyramiidi korruste arv: ")) for rida in range(korgus): for i in range(korgus rida 1): print(" ", end="") for i in range(2 rida+1): print(" ", end="") print()

P~ohim~oisted Jarjendid Jarjend on mingite elementide l~oplik jada. Massiiv (ingl. array) on sama tuupi elementidega ja kseeritud suurusega jarjend, kus elementidele juurdepaas (indekseerimine) toimub konstantse ajaga. Massiivi elemendid on identitseeritavad taisarvuliste indeksite kaudu. Klassikaliselt on massiivid muteeritavad (ingl. mutable); so. mingi elemendi muutmisel, muudetakse selle vaartus olemasolevas massiivis. M~onedes keeltes v~oivad massiivid olla mittemuteeritavad (ingl. immutable); so. elemendi "muutmisel" luuakse uus massiiv.

Jarjendid Pythonis NB! Jarjendid Pythonis klassikalisi massiive keeles otseselt ei ole. Selle asemel on kaks uldist jarjendituupi: listid ja ennikud. { Sarnaselt massiividega toimub elementide indekseerimine taisarvudega ning konstantse ajaga. { M~olemal juhul p~ohierinevuseks, et elemendid ei pea olema sama tuupi. { Listide korral ka see, et suurus ei ole kseeritud (so. saab lisada uusi elemente ning olemasolevaid eemaldada). Lisaks on ka s~oned Pythonis jarjendituubiks. Edaspidi nimetame massiivideks liste, kus k~oik elemendid on sama tuupi.

Listid NB! Jarjendid Pythonis List on dunaamilise pikkusega muteeritav jarjend. Esitatakse elementide loendina kandiliste sulgude vahel. [ expr 1, expr 2,..., expr n ] Listiavaldis tekitab n-elemendilise listi, kus elementide vaartused on vastavalt avaldiste expr i vaartused. Avaldised expr i v~oivad olla erinevat tuupi. Teisetes keeltes nimetatakse listideks tavaliselt dunaamilise pikkusega jarjendeid, kus elementidele juurdepaas toimub jarjestikku (so. lineaarse ajaga).

Ennikud S~oned Jarjendid Pythonis Ennik (ingl. tuple) on kseeritud pikkusega mittemuteeritav jarjend. Esitatakse elementide loendina (umar-)sulgude vahel. ( expr 1, expr 2,..., expr n ) Ennikuavaldis tekitab n-elemendilise korteezi, kus elementide vaartused on vastavalt avaldiste expr i vaartused. Avaldised expr i v~oivad olla erinevat tuupi. S~one (ingl. string) on tahemarkidest koosnev mittemuteeeritav jarjend. Esitatakse ulakomade v~oi jutumarkide vahel.

Jarjendid Pythonis Naiteid listidest ja ennikutest a = [1, 7, 3, 5] b = [2, 8, 0, 2] d = ["Hello", 1, 5] e = [ ] f = (1, 'World', a) g = (3,) h = () # erinevat tuupi elementidega # tuhi list # uheelemendiline ennik # tuhi ennik

Jarjendid Pythonis Jarjendi elementidele juurdepaas Naide seqname [index ] seqname on jarjendimuutuja nimi (v~oi suvaline avaldis, mis vaartustub jarjendiks). index on taisarvuline avaldis, mis naitab mitmendale elemendile juurdepaasu soovime. Jarjendite indekseerimine algab nullist. Listide korral v~oib indeksavaldist kasutada ka L-vaartusena (so. omistuslause vasakul poolel). a = [1, 7, 3, 5] b = a[0] + a[3] # b = 6 a [2] = 0 # a = [1, 7, 0, 5]

Jarjendid Pythonis Jarjendi elementidele juurdepaas Kasutada v~oib ka negatiivseid indekseid, misjuhul indekseeritakse paremalt. { Indeksiga 1 on parempoolseim element. Indeks i peab olema vahemikus N i N 1 (kus N on listi elementide arv), vastasel korral on taitmisaegne viga. Naide a = [1, 7, 3, 5] d = a[ 1] # d = 5 e = a[ 4] # e = 1

a = [1:0; 2:0; 3:0; 4:0] a [3] = 3:1 b = [0; 0; 0; 0; 0] b [3] = 6 b [0] = b [3] + 3 Listid Pythonis

Listid Pythonis a = [1:0; 2:0; 3:0; 4:0] a [3] = 3:1 b = [0; 0; 0; 0; 0] b [3] = 6 b [0] = b [3] + 3 a[0] a[1] a[2] a[3] a 1:0 2:0 3:0 4:0

Listid Pythonis a = [1:0; 2:0; 3:0; 4:0] a [3] = 3:1 b = [0; 0; 0; 0; 0] b [3] = 6 b [0] = b [3] + 3 a[0] a[1] a[2] a[3] a 1:0 2:0 3:0 3:1

Listid Pythonis a = [1:0; 2:0; 3:0; 4:0] a [3] = 3:1 b = [0; 0; 0; 0; 0] b [3] = 6 b [0] = b [3] + 3 a a[0] a[1] a[2] a[3] 1:0 2:0 3:0 3:1 b b[0] b[1] b[2] b[3] b[4] 0 0 0 0 0

Listid Pythonis a = [1:0; 2:0; 3:0; 4:0] a [3] = 3:1 b = [0; 0; 0; 0; 0] b [3] = 6 b [0] = b [3] + 3 a a[0] a[1] a[2] a[3] 1:0 2:0 3:0 3:1 b b[0] b[1] b[2] b[3] b[4] 0 0 0 6 0

Listid Pythonis a = [1:0; 2:0; 3:0; 4:0] a [3] = 3:1 b = [0; 0; 0; 0; 0] b [3] = 6 b [0] = b [3] + 3 a a[0] a[1] a[2] a[3] 1:0 2:0 3:0 3:1 b b[0] b[1] b[2] b[3] b[4] 9 0 0 6 0

Massiivide tootlemine Massiivi elementide summeerimine def sumlistvalues(a): sum = 0 for elem in a: sum += elem return sum Naide A = [7, 2, 4] s = sumlistvalues(a) print(s) # Trukib: 13

Massiivide tootlemine Massiivi elementide summeerimine (ver. 2) def sumlistvalues(a): sum = 0 for i in range(len(a )): sum += a[i] return sum Naide A = [7, 2, 4] s = sumlistvalues(a) print(s) # Trukib: 13

Massiivide tootlemine Massiivi negatiivsete elementide loendamine def countnegvalues(a): count = 0 for i in range(len(a )): if a[ i ] < 0: count += 1 return count Naide A = [7, 2, 4, 1] n = countnegvalues(a) print(n) # Trukib: 2

Massiivist otsimine Massiivide tootlemine def ndlistvalue(x, a): for i in range(len(a )): if a[ i ] == x: return True return False Naide A = [7, 2, 4] if ndlistvalue(2, A): print("arv leiti!") else: print("arvu ei leitud!") # Trukib: "Arv leiti!"

Massiivide tootlemine Massiivist minimaalse elemendi leidmine def minlistvalue(a): min = a[0] for i in range(1,len(a)): if (a[ i ] < min): min = a[i] return min Naide A = [7, 2, 4, 1] m = minlistvalue(a) print(m) # Trukib: 2

Listi umberpooramine def reverselist (a): n = len(a) b = list (range(n)) for i in range(n): b[i ] = a[n 1 i] return b Massiivide tootlemine Naide A = [7, 2, 4] B = reverselist(a) print(a[0]) # Trukib: 7 print(b[0]) # Trukib: 4

Eeldeneeritud operatsioone jarjenditel Eeldeneeritud operaatorid Naide Liitmine: avaldis s1 + s2 konkateneerib jarjendid s1 ja s2. { Jarjendid s1 ja s2 peavad olema sama tuupi. Korrutamine: avaldis s * n "paljundab" jarjendit n-korda. Jadasse kuuluvus: avaldis x in s kontrollib, kas x on jarjedi s element. { S~onede korral v~oib x olla mitmetaheline s~one. { "Mittekuuluvust" saab kontrollida operaatoriga not in. a = [1, 2, 3] + [4, 5] # a = [1, 2, 3, 4, 5] b = [1, 2] 3 # b = [1, 2, 1, 2, 1, 2] c = 3 in a # c = True d = 3 in b # d = False

Eeldeneeritud operatsioone jarjenditel Eeldeneeritud funktsioone Funktsioon Kirjeldus len(s) leiab jarjendi pikkuse list(s) teisendab jarjendi listiks tuple(s) teisendab jarjendi ennikuks min(s) tagastab minimaalse elemendi max (s) tagastab maksimaalse elemendi sorted(s) tagastab sorteeritud listi Naide a = list ('Hello') b = tuple('hello') c = min('hello, World') d = max('hello, World') e = sorted('world') # a = ['H', 'e', 'l ', ' l ', 'o'] # b = ('H', 'e', 'l ', ' l ', 'o') # c = ' ' # d = 'r' # e = ['W', 'd', 'l', 'o', 'r']

Eeldeneeritud operatsioone jarjenditel Alamjadade selekteerimine Naide Pythonis on v~oimalik jarjendist alamjada selekteerimiseks kasutada nn. viilutamist (ingl. slicing). Viilutamine on analoogiline indekseerimisega, kuid indeksavaldises on kaks kooloniga eraldatud taisarvulist indeksit. seqname [index1 : index2 ] index1 on selekteeritava alamjada esimese elemendi indeks. index2 on selekteeritava alamjada ulempiir. a = 'myle.txt' b = a[2:6] # b = 'le' c = a[:6] # c = 'myle' d = a[ 3:] # d = 'txt'

Eeldeneeritud operatsioone jarjenditel Eeldeneeritud meetode listidel Meetod Kirjeldus L.index (x) tagastab elemendi x esimese indeksi L.count(x) tagastab elemendi x esinemiste arvu

Naide Eeldeneeritud operatsioone jarjenditel L = list(range(3)) # L = [0, 1, 2] L.append(1) # L = [0, 1, 2, 1] b = L.index(2) # b = 4 c = L.index(1) # c = 1

Eeldeneeritud operatsioone jarjenditel Eeldeneeritud meetode s~onedel (1) Meetod S.capitalize() S.title() S.upper () S.lower () S.center (w) S.ljust(w) S.rjust(w) S.lstrip() S.rstrip() Kirjeldus kopeerib s~one ja muudab esitahe suureks teeb k~oigi s~onade esitahed suureks teeb k~oik tahed suureks teeb k~oik tahed vaikeseks tsentreerib s~one w margi laiuseks vasakjoondab s~one w margi laiuseks paremjoondab s~one w margi laiuseks eemaldab s~one alguses olevad tuhikud eemaldab s~one l~opus olevad tuhikud

Eeldeneeritud operatsioone jarjenditel Eeldeneeritud meetode s~onedel (2) Meetod Kirjeldus S.split(c) tukeldab s~one sumboli c esinemiskohtadelt s~onade listiks (vaikimisi c = ' ') S.join(L) konkateneerib s~onede listi (eraldajaks S) S.nd(c) leiab alams~one c esimese indeksi S.rnd(c) leiab alams~one c viimase indeksi

Suur tanu osalemast ja kohtumiseni!