190 lines
5.5 KiB
HTML
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č -> 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>
|