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>
 |