Python Zanke Matija Lokar FMF Izpii tevila od

  • Slides: 32
Download presentation
Python Zanke Matija Lokar, FMF

Python Zanke Matija Lokar, FMF

Izpiši števila od 1 do 20 Izpis >>> print(izpis) 1 2 3 4 5

Izpiši števila od 1 do 20 Izpis >>> print(izpis) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 >>> print Kako do vsebine izpisa tipkanje izpis = "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20" Kaj pa, če bi želeli izpisati števila med 1 in 1000? Matija Lokar, FMF

Kaznovani Janezek je bil v šoli poreden. Zelo poreden. In zato mu je učiteljica

Kaznovani Janezek je bil v šoli poreden. Zelo poreden. In zato mu je učiteljica naročila, naj sestavi program, ki 5 x izpiše "V šoli se moram lepo obnašati!" Janezek hitro piše. . . print("V šoli se moram lepo obnašati!") print("V šoli se. . . a se spomni in. . . print("V šoli se moram lepo obnašati!n" * 5) Matija Lokar, FMF

Kaznovani Janezek II In ker kazen ni bila dovolj vzgojna, se Janezek še vedno

Kaznovani Janezek II In ker kazen ni bila dovolj vzgojna, se Janezek še vedno ne obnaša lepo. Zato sledi nova kazen, tokrat pa bo potrebno izpisati 10 stavkov, pa še z zaporednimi številkami jih bo potrebno opremiti. Janezek malo škrta z zobmi, saj trik od zadnjič ne bo več uspel. Ampak Copy/Paste, malo urejanja in. . . print("1. V šoli se moram lepo obnašati!") print("2. V šoli se moram lepo obnašati!") print("3. V šoli se moram lepo obnašati!") print("4. V šoli se moram lepo obnašati!") . . . print("10. V šoli se moram lepo obnašati!") Matija Lokar, FMF

Kaznovani Janezek III Janezka pa nič ne izuči Ker pa se Janezek še vedno

Kaznovani Janezek III Janezka pa nič ne izuči Ker pa se Janezek še vedno ne obnaša lepo, sledi nova kazen. Ker učiteljica ve, da je ravnatelj Janez, ki na šoli med drugim opravlja tudi nalogo vzdrževalca programske opreme, uspel "sesuti" operacijski sistem tako, da se enostavno ne da več kopirati besedila, Janezku pa ni nič bolj zoprnega kot veliko tipkanja, je kazen vzgojna. Sedaj mora 100 x izpisati omenjeni stavek. Janezek je sprva obupan. Ampak bistra glavica, v Google natipka "Python ponavljanje istih ukazov" in kaj hitro se mu razvedri čelo … Matija Lokar, FMF

ZANKE Seštej 10 števil, izpiši 20 zvezdic, nariši n krogov, seštej dosežene točke vsakega

ZANKE Seštej 10 števil, izpiši 20 zvezdic, nariši n krogov, seštej dosežene točke vsakega dijaka, izračunaj plačo zaposlenih, … Ponavljanje isti postopek, spremenjeni podatki osnovna zanka while Matija Lokar, FMF

while Sintaksa: while pogoj : stavek 1. . . stavekn Zamikanje! Izvajanje Preveri pogoj.

while Sintaksa: while pogoj : stavek 1. . . stavekn Zamikanje! Izvajanje Preveri pogoj. Če je resničen, izvedi stavke v telesu zanke (zamik). Preveri pogoj. Če je resničen, ponovno izvedi stavke. Preveri pogoj … Dokler je logični pogoj izpolnjen, izvajaj "zamaknjene" stavke Matija Lokar, FMF

While – shematski prikaz Matija Lokar, FMF

While – shematski prikaz Matija Lokar, FMF

Zgled - Janezek kaj ponavljamo: izpis stavka pogoj: dokler ne izpišemo 100 stavkov torej

Zgled - Janezek kaj ponavljamo: izpis stavka pogoj: dokler ne izpišemo 100 stavkov torej moramo šteti izpisane stavke izpisanih. Stavkov < 100 pred začetkom ponavljanja izpisanih stavkov še ni izpisanih. Stavkov = 0 v zanki izpišemo stavek števec izpisanih stavkov povečamo za 1 izpisanih. Stavkov = izpisanih. Stavkov + 1 Matija Lokar, FMF

Janezek : program izpisanih. Stavkov = 0 while (izpisanih. Stavkov < 100) : izpis

Janezek : program izpisanih. Stavkov = 0 while (izpisanih. Stavkov < 100) : izpis = str(izpisanih. STavkov + 1) + ". V šoli se moram lepo obnašati!" print(izpis) # nov izpisani stavek izpisanih. Stavkov = izpisanih. Stavkov + 1 Matija Lokar, FMF

Kvaliteta računalniške kocke Zanima nas, koliko dobra je "računalniška kocka". V ta namen bomo

Kvaliteta računalniške kocke Zanima nas, koliko dobra je "računalniška kocka". V ta namen bomo računalniku naročili naj 6 000 krat vrže kocko in šteje, koliko je vrgel denimo 2 ali pa 6 pik. Če je kocka "poštena", se obe vrednosti ne smeta veliko razlikovati od 1 000. zanka znotraj zanke izvedemo en met če je met 6 ali 2, povečamo ustrezni spremenljivki Matija Lokar, FMF

Kvaliteta računalniške kocke : program kateri. Met = 1 stevec 2 = 0 #

Kvaliteta računalniške kocke : program kateri. Met = 1 stevec 2 = 0 # kolikorat smo vrgli 2 stevec 6 = 0 # kolikorat smo vrgli 6 while kateri. Met <= 6000000 : kocka = int(random() * 6 + 1) if (kocka == 2) : stevec 2 = stevec 2 + 1 if (kocka == 6) : stevec 6 = stevec 6 + 1 kateri. Met = kateri. Met + 1 # nov met Matija Lokar, FMF

While – zgled while x > 1 : x = x / 2 Kaj

While – zgled while x > 1 : x = x / 2 Kaj se zgodi, če je v x na začetku vrednost 4. 2 ustavitev zaciklanje Matija Lokar, FMF

While – zgled while x <= 10 : x = x + 1 Kaj

While – zgled while x <= 10 : x = x + 1 Kaj se dogaja, če je v x na začetku 1? Kaj se dogaja, če je x na začetku 100? Matija Lokar, FMF

Izpiši števila od 1 do 20 Števec od 1 do 20 Zanka Pogoj: dokler

Izpiši števila od 1 do 20 Števec od 1 do 20 Zanka Pogoj: dokler je števec manjši ali enak 20 while stevec <= 20 Na vsakem koraku števec dodamo k izpisu izpis = izpis + " " + str(stevec) Povečamo števec stevec = stevec + 1 Matija Lokar, FMF

Izpiši števila od 1 do 20 izpis = "" stevec = 1 while stevec

Izpiši števila od 1 do 20 izpis = "" stevec = 1 while stevec <= 20 : izpis = izpis + " " + str(stevec) stevec = stevec + 1 print(izpis) Matija Lokar, FMF

Števec ponovitev stevec = 1 while stevec <= stevilo. Ponovitev : . . #

Števec ponovitev stevec = 1 while stevec <= stevilo. Ponovitev : . . # naredimo nekaj stevec = stevec + 1 Števec je zaporedoma: 1, 2, 3, . . . , stevilo. Ponovitev, stevilo. Ponovitev + 1 Matija Lokar, FMF

Izpis števil od a do b Izpiši števila od a do b (a in

Izpis števil od a do b Izpiši števila od a do b (a in b podatka, ki ju preberemo) Ne moremo narediti z direktnim izpisom obvezna zanka Števec od a do b Začetna vrednost števca: a stevec = a Zanka Pogoj: dokler je števec manjši ali enak b while stevec <= b : Na vsakem koraku števec dodamo k izpisu izpis = izpis + " " + str(stevec) Povečamo števec stevec = stevec + 1 Matija Lokar, FMF

Izpis števil od a do b - program izpis = "" #branje podatkov beri

Izpis števil od a do b - program izpis = "" #branje podatkov beri = input("Od kje naprej = ") od. Kje = int(beri) beri = input("Do kam = ") do. Kam = int(beri) # izpisna zanka stevec = od. Kje while stevec <= do. Kam izpis = izpis + " " + str(stevec) # dodajamo k izpisu stevec = stevec + 1 print(izpis) Matija Lokar, FMF

Koliko metov do šestice Sestavimo program, ki bo ugotovil, koliko metov smo morali vreči,

Koliko metov do šestice Sestavimo program, ki bo ugotovil, koliko metov smo morali vreči, da smo vrgli 6. pogoj: vrženi met je različen od 6 met != 6 kaj ponavljamo met kocke met = int(random() * 6 + 1) štetje metov koliko. Metov = koliko. Metov + 1 Kako začeti dogajanje pred zanko koliko. Metov = 0 kako "vstopiti" v zanko pogoj mora biti izpolnjen (met != 6) zato postavimo spremenljivko met na karkoli (razen na 6 seveda)! Matija Lokar, FMF

Koliko metov do šestice : program koliko. Metov = 0 met = 0 //

Koliko metov do šestice : program koliko. Metov = 0 met = 0 // karkoli, le 6 ne # mečemo, dokler ne vržemo 6 while met != 6 : met = int(random() * 6 + 1) # nov met koliko. Metov = koliko. Metov + 1 # konec zanke, ker smo vrgli 6 odg = "Do šestice je bilo potrebno " + str(koliko. Metov ) odg = odg + " metov!" print(odg) Matija Lokar, FMF

Kako sestavljamo program z zanko Premislimo, kaj se dogaja v splošnem Tekoča ponovitev zanke

Kako sestavljamo program z zanko Premislimo, kaj se dogaja v splošnem Tekoča ponovitev zanke Rišemo i-ti krog Pregledujemo tekočo vrstico . . . Dogajanje na začetku (pred vstopom v zanko) Posebni pogoji. . . Nastavitev števcev vrednost kontrolne spremenljivke taka, da se zanka sploh začne, . . . Dogajanje na koncu Ali je potrebno z zadnjim elementom kaj posebnega narediti Smo števec po "nepotrebnem" preveč povečali . . . Matija Lokar, FMF

Zgledi Prodaja limon Ugibanje števil Prodaja limon II V Butalah menjajo valuto Matija Lokar,

Zgledi Prodaja limon Ugibanje števil Prodaja limon II V Butalah menjajo valuto Matija Lokar, FMF

Prodaja limon - nadaljevanje Prej smo vsakič prebrali število limon – sedaj pa bi

Prodaja limon - nadaljevanje Prej smo vsakič prebrali število limon – sedaj pa bi našega robota radi naučili, da bo štel limone (seveda slovnično pravilno): 98 limon, 99 limon, 100 limon, 101 limona, 102 limoni, 103 limone, 104 limone, 105 limon, … povedali mu bomo od kje do kam naj šteje zacetno. Stevilo. Limon, koncno. Stevilo. Limon, trenutno. Stevilo. Limon zanka trenutno. Stevilo. Limon se spreminja za 1 od zacetno. Stevilo. Limon do koncno. Stevilo. Limon trenutno. Stevilo. Limon = zacetno. Stevilo. Limon while (trenutno. Stevilo. Limon <= koncno. Stevilo. Limon) v zanki tisti slovnično pravilni del iz primera s pogojnim stavkom… Ali vemo število ponovitev? da: koncno. Stevilo. Limon – zacetno. Stevilo. Limon + 1 Matija Lokar, FMF

Ugibanje števila Računalnik si "izmisli" število med 1 in 100! Koliko korakov bomo potrebovali,

Ugibanje števila Računalnik si "izmisli" število med 1 in 100! Koliko korakov bomo potrebovali, da ga uganemo? Računalnik nam bo odgovarjal z "hladno", če bomo za več kot 15 proč, s "toplo", če se bo naše število od računalnikovega razlikovalo za 14 – 6 in "vroče", če bomo le še največ 5 oddaljeni od števila. Seveda bo povedal tudi, če bomo število uganili! Ali vemo koliko bo ponovitev? ne, število ponovitev ne kontrolira števec, ampak naša uspešnost ugibanja! Matija Lokar, FMF

Ugibanje števila - zanka ali. Smo. Uganili = False while ali. Smo. Uganili ==

Ugibanje števila - zanka ali. Smo. Uganili = False while ali. Smo. Uganili == False : ali while !ali. Smo. Uganili : V zanki: vnos našega števila (input, int) razlika = abs(nase. Stevilo – rac. Stevilo) if razlika == 0 : # uganili smo! Izpišemo obvestilo Končamo zanko: ali. Smo. Uganili = true if razlika <= 5 : Izpišemo "Vroče" if 5 < razlika < 15 : Izpišemo "Toplo" if razlika >= 15 : Izpišemo "Hladno" Matija Lokar, FMF

Prodaja limon – nadaljevanje 2 Če sta začetno in kočno število limon narazen za

Prodaja limon – nadaljevanje 2 Če sta začetno in kočno število limon narazen za več kot 20, je štetje predolgo. Zato: šteje naj po 10, le zadnjih 10 - 20 limon naj prešteje po 1 od 46 do 108 46 limon, 56 limon, 66 limon, 76 limon, 86 limon, 97 limon, 98 limon, 99 limon, 100 limon, 101 limona, 102 limoni, 103 limone, 104 limone, 105 limon, 106 limon, 107 limon, 108 limon. zacetno. Stevilo. Limon, koncno. Stevilo. Limon, trenutno. Stevilo. Limon zanka po 10 trenutno. Stevilo. Limon se spreminja po 10 do kam? zanka po 1 kot prej! Ali vemo število ponovitev obeh zank? da, a če nočemo "mučiti" z matematiko, le približno prva zanka: (koncno. Stevilo. Limon – zacetno. Stevilo. Limon) // 10 druga zanka: med 10 in 20 Matija Lokar, FMF

V Butalah menjajo valuto V Butalah je prava panika. 1. januarja bodo butalske cekine

V Butalah menjajo valuto V Butalah je prava panika. 1. januarja bodo butalske cekine zamenjali za novo valuto, še vedno pa ni znano, kakšen bo menjalni tečaj. No, panika je odveč, saj so iz Banke Butale sporočili, da so vladni modreci odločili, da bo menjalni tečaj odvisen od obnašanja Šprince Marogaste, glavne butalske uši, opoldne na Slivestrovo. Tako bodo imeli celo popoldne in celo noč, da bodo lahko pripravili nove cenike. No, na srečo pa so v Butalah v veljavi samo cene 50, 100, 150, 200, …, 1000 cekinov. Zato bo glavni butalski informatik pripravil program, ki bo takoj, ko bo znan menjalni tečaj, za vse te cene izpisal njihovo vrednost v novi valuti. Ampak razbojnik Cefizelj je ravno tiste dni ukradel edino miško v Butalah. Zato pomagaj Butalcem in ti sestavi ustrezni program. Pri tem upoštevaj, da bo menjalni tečaj dan na decimalke, a nova valuta pozna le cele vrednosti. A pozor, Butalci imajo malo drugačno zaokrožanje – če so desetinke sode, se zaokroži navzdol, če pa lihe, pa navzgor. Matija Lokar, FMF

V Butalah menjajo valuto : ideja za vsako ceno je potrebno narediti isti postopek

V Butalah menjajo valuto : ideja za vsako ceno je potrebno narediti isti postopek izračunati vrednost v novi valuti pravilno zaokrožiti Izpisati vrednost v cekinih in novi valuti cene se lepo "urejeno" spreminjajo naraščajo po 50 while cena <= 1000 : cena = cena + 50 Matija Lokar, FMF

V Butalah menjajo valuto : program cena = 50 # najnižja cena menjalni. Tecaj

V Butalah menjajo valuto : program cena = 50 # najnižja cena menjalni. Tecaj = int(input('Menjalni tečaj: ')) while cena <= 1000 : # cene so manjše od 1000 nova. Vrednost = cena / menjalni. Tecaj // zaokrožanje zac. Vred = int(nova. Vrednost * 10) enice = zac. Vred % 10 prava. Nova. Vrednost = zac. Vred // 10 if (enice % 2 == 1) # lihe destinke, popravek navzgor prava. Nova. Vrednost = prava. Nova. Vrednost + 1 # izpis print("Cena " + str(cena) + " je sedaj " + / str(prava. Nova. Vrednost)) cena = cena + 50 // nova cena Matija Lokar, FMF

Zanke ponavljanje stavka v odvisnosti od pogoja while <pogoj> : stavek obvezno : za

Zanke ponavljanje stavka v odvisnosti od pogoja while <pogoj> : stavek obvezno : za pogojem zamikanje preverimo pogoj. Če je pogoj izpolnjen, izvedemo stavek. Ponovno preverimo pogoj, … Matija Lokar, FMF

Zanke ponavljaj notranje stavke, dokler je pogoj izpolnjen (ima vrednost True) while <pogoj> :

Zanke ponavljaj notranje stavke, dokler je pogoj izpolnjen (ima vrednost True) while <pogoj> : stavek 1 … stavekn while stevilka. Poskusa < n : izvedi. Poskus(stevilka. Poskusa) stevilka. Poskusa = stevilka. Poskusa + 1 Matija Lokar, FMF