Ĉi tio estas maŝine tradukita teksto kiu povas enhavi erarojn!
Ĉu vi luktas kun tro multaj variabloj, tro multaj listoj, tro da ĉio? Tiam la solvo por vi ekzistas: Vortaroj kaj Klasoj!
Vortaroj - Listo kun nomoj 📖
“Vortaro” (Norvega: ordbok 📖) estas datumstrukturo, kiu permesas vin teni spuron de pluraj valoroj, en multaj manieroj simile al listo, sed male al listoj, vi povas doni al ĉiu elemento “nomon”.
- ✅ Ĉi tio estas utila ĉar ĝi permesas nin kolekti datumojn, kiuj devas esti kunligitaj en la sama loko!
- ✅ Estas malpli da variabloj por teni spuron.
Jen ekzemplo de vortaro por uzanto:
user = {
"username": "TheCoder27",
"age": 17,
"premium": False,
"progress": 0.75
}
# Dette er en ordbok som representerer en bruker.
# Ĉi tio estas vortaro kiu reprezentas uzanton.
Kio okazas ĉi tie?
Vortaroj atendas la jenan strukturon:
variable_name = {
"key_name": key_value,
"key_name2": key_value,
# ankaŭ plu malsupren
}
variable_name estas nur variablo, do la kutimaj reguloj por variabloj sekvas ĉi tie.
Tiam ni uzas kramparentezojn {} por diri al Python ke tio estu leksikono.
Poste listiĝas tio, kio estas konata kiel “ŝlosilo-valora” paroj. Do, ŝlosilo 🗝️ kaj valoro 🪙. Ĉi tio ĉio signifas, ke valoro ricevas nomon, kaj ĉi tiu valoro estu nur teksto, do string.
Se vi rigardas la uzantekzemplon supre, vi povas klare vidi kion tio signifas. Ekzemple: "username" en la uzanto estas "TheCoder27". Tiam la ŝlosilo 🗝️ estas "username", kaj la valoro 🪙 "TheCoder27".
Valoroj
Valoroj 🪙 en vortaro povas esti ajna datotipo. Rememoru al kiuj datotipoj ni havas.
| Datotipo | Skribmaniero |
|---|---|
string | "TheCoder27" |
integer | 17 |
boolean | False |
float | 4.5 |
Vi povas do supozi ĝuste ke Listo kaj Vortaroj estas ankaŭ datatipoj: list kaj dict, do ĉi tiuj ankaŭ povas esti lokitaj ene de Vortaro. Ĉiuj tipoj funkcias!
Elpreni valorojn 🤔
- ✅ Se ni volas elprinti nur unu el la valoroj de ĉi tiu vortaro, vi povas uzi krampojn, kiel kun listoj:
# Skriver ut brukernavnet
# Elskribu la uzantanomon
print(user["username"])
- ✅ Ĉi tiu kodo elprintos
TheCoder27.- ❓ Kion vi kredas okazas se vi ŝanĝas de
"username"al"age"?
- ❓ Kion vi kredas okazas se vi ŝanĝas de
Ĝisdatigi valorojn 🪙
- ✅ Vi povas ĝisdatigi valorojn ene de Vortaro uzante
=. Jen ekzemplo kie laratingde la uzanto estas ĝisdatigita:
# Brukerens fremgang er satt til 4.7
# La progreso de la uzanto estas metita al 4.7
user["progress"] = 4.7
Aldoni valorojn ➕
- ✅ Por aldoni novan valoron en vortaron, vi simple skribu simile al aldono, sed kun ŝlosilo (key) kiu ankoraŭ ne ekzistas. Jen ekzemplo:
# Brukeren er nå innlogget
# La uzanto nun estas enlogita
user["logged_in"] = True
String Format
Io, kion vi ankoraŭ ne vidis, estas io nomata “string format”. Ĝi estas esence nur maniero skribi kodon en print().
Jen ekzemplo de kiel ĉi tio povas aspekti kun la vortar-ekzemplo de pli frue (uzante):
# Uzanto {user['username']} estas {user['age']} jaroj aĝa.
print(f"Brukeren {user['username']} er {user['age']} år gammel.")
Merk!
- Tie,
festas uzata antaŭ la komenco de la teksto (string). - Ĉi tie troviĝas klamparentezoj
{}. - Ĉar ni komencas la
string-on per"ni ne povas uzi"por preni el la leksikono, ĉar tiam la teksto estus finita! Tial simplaj'estas uzataj por preni el ĝi.
Taskoj
En ĉi tiu taska parto vi devas krei simplan “filma datumbazon”. 🎥🎞️
Tasko 1a - Kreu vortaron
Kreu novan Python-dosieron nomitan movies.py.
Kreu variablon nomitan movie kaj enmetu la jenajn ŝlosilojn:
titleyeardirectorrating
Elektu kio estu la valoroj ĉi tie mem.
Poste, elprintu ĝin per print().
⚠️ Memoru doni al ĉi tiuj valoroj la ĝustan datentipon, referu la tablon supre se vi ne certas kiel ĉi tio povas esti skribita.
Eksempel-Løsning
movie = {
"title": "Inception",
"year": 2010,
"director": "Christopher Nolan",
"rating": 8.8
}
print(movie)
Task 1b - Ŝanĝo?
Ŝanĝu unu el la valoroj kaj elprintu ĝin. Kio okazas?
Tasko 2 - Uzu leksikonon
Uzu la movie-leksikonon, kiun vi ĵus kreis, por elpreni:
- La titolon de la filmo
- En kiu jaro la filmo aperis
Eksempel-Løsning
print(filmo["titolo"])
print(filmo["jaro"])
Tasko 3a - Elprintu frazon
Uzu “string format”-on por elprinti frazon pri la filmo. Ekzemple kiel:
La filmo Inception aperis en 2010.
Eksempel-løsning
print(f"La filmo {movie['title']} aperis en {movie['year']}.")
Task 3b - Anotha one 🤑
Uzu string-formanton por elprinti frazon kiel ĉi tiu el la vortaro:
La filmo estis reĝisorita de Christopher Nolan kaj ricevis 8.8 en taksado.
Tasko 3c - Funkcioj
Konvertu la kodon, kiun vi faris en 1.3a kaj 1.3b al funkcio, kiu elprintas ĉi tiun informon.
- ✅ La funkcio devas preni argumenton, kiu estas la vortaro.
Starta kodo:
def print_movie(the_movie):
# ĉi tie vi skribu vian kodon
Eksempel-løsning
def print_movie(the_movie):
print(f"La filmo {the_movie['title']} aperis en {the_movie['year']}.")
print(f"La filmon reĝisoris {the_movie['director']} kaj ĝi ricevis {the_movie['rating']} en takso.")
print_movie(movie)
Tasko 4 - Ĝisdatigi takson
Ni faru kiel se nia filmo pliiĝis en takso. Ĝisdatigu la takson tiel ke ĝi fariĝu nova valoro. Poste reskribu ĝin.
Eksempel-løsning
movie["rating"] = 8.9
print(movie["rating"])
Tasko 5a - Ĉu la filmo estis rigardata? 🤔
Aldonu novan ŝlosilo-valoro (per kodo) kiu konservas informojn pri ĉu la filmo estis rigardata aŭ ne. Poste elprintu ĉiujn informojn pri la filmo.
Eksempel-løsning
movie["watched"] = True
print(movie)
Tasko 5b
Ĝisdatigu la funkcion, kiun vi kreis en 1.3c por elprinti "✅ Vi vidis ĉi tiun filmon." se la valoro de "watched" estas True. Se vi volas, vi ankaŭ povas elprinti mesaĝon se vi ne vidis la filmon.
Eksempel-løsning
def print_movie(the_movie):
print(f"La filmo {the_movie['title']} eliris en {the_movie['year']}.")
print(f"La filmon reĝisoris {the_movie['director']} kaj ĝi ricevis {the_movie['rating']} en takso.")
if the_movie["watched"] == True:
print("✅ Vi vidis ĉi tiun filmon.")
print_movie(movie)
True == True
Vi ankaŭ povas simple skribi if movie["watched"]:, ĉar True estas tio, kion if vere serĉas. Kio iasence skribiĝas ĉi tie estas True == True respondos kun la valoro True, ni nur bezonas skribi if True: por ke io estu vera.
Tasko 6 - Pli da filmoj
Aldonu du filmojn al via kodo. Nuntempe vi povas nomi ilin per variabloj kiel movie2 kaj movie3. Memoru inkludi la valoron por watched ankaŭ. Poste, elprintu ambaŭ ĉi tiujn per via funkcio.
Tasko 7 - Fina defio: Listo kun leksikonoj
Modifu vian kodon por uzi liston de leksikonoj nomitan movies. Poste uzu nombrojn (indeksojn) por elpreni ĉiun filmon. Vi povas uzi for-ciklon por trairi ĉiujn.
Eksempel-løsning
movies =
[
{
"title": "Inception",
"year": 2010,
"director": "Christopher Nolan",
"rating": 8.8,
"watched": True
},
{
"title": "Fight Club",
"year": 1999,
"director": "David Fincher",
"rating": 8.8,
"watched": False
},
{
"title": "GoodFellas",
"year": 1990,
"director": "Martin Scorsese",
"rating": 8.7,
"watched": False
}
]
for movie in movies:
print_movie(movie)
print()

