python-radionica/cas8.html
Branko Kokanovic db2560742e osmi cas
2023-04-27 15:43:55 +02:00

190 lines
5.5 KiB
HTML

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>Uvod u programiranje - 8. čas</title>
<link rel="stylesheet" href="dist/reset.css">
<link rel="stylesheet" href="dist/reveal.css">
<link rel="stylesheet" href="dist/theme/black.css">
<!-- Theme used for syntax hPighlighted code -->
<link rel="stylesheet" href="plugin/highlight/monokai.css">
</head>
<body>
<div class="reveal">
<div class="slides">
<section>
<p>Uvod u programiranje</p>
<p>8. čas</p>
</section>
<section>
Da ponovimo<br/><br/>
<ul>
<li class="fragment">Domaći / pitanja</li>
</ul>
</section>
<section>
Rečnici (dictionaries)<br/>
<ul>
<li class="fragment">Dictionary je novi tip podataka</li>
<li class="fragment">Kolekcija neuređenih parova <code>ključ -&gt; vrednost</code></li>
<pre class="fragment" style="font-size: 0.85em;;width: 100%">
<code data-trim data-noescape>
recnik = dict()
drugi_recnik = {} # moze i ovako
</code>
</pre>
<li class="fragment">ili sa početnim vrednostima:</li>
<pre class="fragment" style="font-size: 0.85em;;width: 100%">
<code data-trim data-noescape>
recnik = {
"foo": "bar",
"kljuc": "vrednost"
}
</code>
</pre>
</ul>
</section>
<section>
Primeri<br/>
<ul>
<pre class="fragment" style="font-size: 0.8em;;width: 100%">
<code data-trim data-noescape>
ocene = {
"srpski": 5,
"matematika": 4,
"likovno": 3
}
</code>
</pre>
</ul>
</section>
<section>
Primeri<br/>
<ul>
<pre class="fragment" style="font-size: 0.6em;;width: 100%">
<code data-trim data-noescape>
covek = {
"ime": "Petar",
"prezime": "Petrovic",
"zanimanje": "Moler",
"godiste": 1950,
"imena dece": ["Mika", "Zika"],
"adresa": {
"grad": "Beograd",
"ulica": "Stolarska"
"broj": 35
}
}
</code>
</pre>
<li class="fragment">Ključ je uvek string, a vrednost može biti bilo koji tip iz Pythona!</li>
</ul>
</section>
<section>
Veličina dictionary-ja<br/>
<ul>
<li class="fragment">Funkcija len(), isto kao kod liste</li>
<pre class="fragment" style="font-size: 0.85em;;width: 100%">
<code data-trim data-noescape>
print('broj ocena', len(ocene))
</code>
</pre>
</ul>
</section>
<section>
Pristupanje elementima<br/>
<ul>
<li class="fragment">Mora da se zna "ključ" elementa kome se pristupa</li>
<li class="fragment">Vrednosti se pristupa sa uglastim zagradama</li>
<pre class="fragment" style="font-size: 0.75em;;width: 100%">
<code data-trim data-noescape>
# dodeljuje vrednost 5 promenljivoj
ocena_srpski = ocene["srpski"]
# ispisuje 5
print(ocene["srpski"])
# dictionary unutar dictionaryja!
print(covek["adresa"]["grad"]
# program se raspada ako kljuc ne postoji!
print(covek["nepostojeci_kljuc"])
</code>
</pre>
</ul>
</section>
<section>
Kako proveriti postojanje elementa<br/>
<ul>
<li class="fragment">U većini slučajeva ne želimo da oborimo ceo program ako ključ ne postoji</li>
<li class="fragment">Rezervisana reč "in", isto kao kod listi</li>
<pre class="fragment" style="font-size: 0.85em;;width: 100%">
<code data-trim data-noescape>
ima_srpski = "srpski" in ocene
</code>
</pre>
<pre class="fragment" style="font-size: 0.85em;;width: 100%">
<code data-trim data-noescape>
if "srpski" in ocene:
print('srpski ocena:', ocene["srpski"])
</code>
</pre>
</ul>
</section>
<section>
Dodavanje elemenata u listu<br/>
<ul>
<li class="fragment">Kao dodeljivanje promenljive, samo sa uglastim zagradama</li>
<pre class="fragment" style="font-size: 0.85em;;width: 100%">
<code data-trim data-noescape>
ocene["fizicko"] = 5
# postojeca vrednost isto ovako moze da se promeni
ocene["srpski"] = 1
</code>
</pre>
</ul>
</section>
<section>
Iteriranje kroz dictionary<br/>
<ul>
<li class="fragment">Nekad ne znamo ključeve, samo želimo da obiđemo ceo dictionary</li>
<pre class="fragment" style="font-size: 0.85em;;width: 100%">
<code data-trim data-noescape>
prosek = 0
for predmet in ocene:
print("predmet", predmet, ", ocena", ocene[predmet])
ocena = ocene[predmet]
prosek = prosek + ocena
prosek = prosek / len(ocene)
</code>
</pre>
</ul>
</section>
<section>
Domaći<br/>
<ul>
<li class="fragment">
Pitati korisnika da unese broj predmeta i pitati ga u while petlji da unese sve predmete u dictionary i onda izračunati prosek
</li>
</ul>
</section>
</div>
</div>
<script src="dist/reveal.js"></script>
<script src="plugin/highlight/highlight.js"></script>
<script>
// More info about initialization & config:
// - https://revealjs.com/initialization/
// - https://revealjs.com/config/
Reveal.initialize({
hash: true,
// Learn about plugins: https://revealjs.com/plugins/
plugins: [ RevealHighlight ]
});
</script>
</body>
</html>