Šajā tēmā mēs apgūstam "skaldi un valdi" principu programmēšanā. Tu iemācīsies sadalīt sarežģītus uzdevumus mazākos, vieglāk pārvaldāmos apakšuzdevumos, izveidojot savu pirmo teksta piedzīvojumu spēli "CYOA: Pamati" (Choose Your Own Adventure). Galvenais uzsvars tiek likts uz koda atkārtotu izmantošanu un loģisku struktūru.
Tiek ieviests funkciju jēdziens: kā tās definēt, kā nodot tām informāciju caur parametriem un kā saņemt atpakaļ rezultātu, izmantojot return. Tu izpratīsi atšķirību starp lokālajiem un globālajiem mainīgajiem (scope), iemācoties izvairīties no biežākajām kļūdām datu pieejamībā, kas rodas, programmai kļūstot apjomīgākai.
Tēmas noslēgumā mēs pāriesim pie modularitātes — koda sadalīšanas vairākos failos (.py moduļos), kas ir obligāta prasme lielu projektu izstrādē. Īpaša vērība tiek pievērsta PEP 8 vadlīnijām, nodrošinot, ka kods ir ne tikai funkcionāls, bet arī profesionāli noformēts. Spēles izstrāde sāksies ar algoritma un stāsta zaru plānošanu, pārvēršot katru lokāciju atsevišķā, loģiskā funkcijā.
Šeit apkopota svarīgākā Python sintakse un pamatprincipi par funkcijām, koda dalīšanu moduļos un datu struktūrām.
Funkcijas ļauj sagrupēt kodu, lai to varētu izmantot atkārtoti. Atslēgvārds return atdod aprēķina rezultātu atpakaļ galvenajai programmai.
# Funkcijas definēšana (ar 2 parametriem)
def saskaiti(a, b):
summa = a + b
return summa # Atdod vērtību un beidz funkcijas darbu
# Funkcijas izsaukšana un rezultāta saglabāšana
rezultats = saskaiti(10, 5)
print(rezultats) # Izvada: 15
Datu struktūra, kas glabā informāciju pāros: Atslēga (Key) : Vērtība (Value).
# Vārdnīcas izveide (iekavās {})
varonis = {"vards": "Artūrs", "hp": 100, "limenis": 5}
# Piekļūšana vērtībai pēc tās atslēgas
print(varonis["vards"]) # Izvada: Artūrs
# Vērtības mainīšana vai jaunas atslēgas pievienošana
varonis["hp"] -= 10 # Atņem 10 HP no esošās vērtības
varonis["zelts"] = 50 # Pievieno jaunu atslēgu un vērtību
| Tvērums | Kur atrodas? | Pieejamība programmā |
|---|---|---|
| Lokālais (Local) | Definēts funkcijas iekšpusē. | Eksistē tikai šajā konkrētajā funkcijā. Ārpus tās nav pieejams (izraisīs NameError). |
| Globālais (Global) | Definēts ārpus visām funkcijām. | Redzams un pieejams lasīšanai visā koda failā. |
Kā savienot vairākus .py failus (moduļus) vienā lielā projektā.
| Komanda | Kā darbojas? | Kā izsaukt funkciju? |
|---|---|---|
import kauja |
Ielādē visu moduli (failu kauja.py). Drošākais veids. |
Jālieto faila vārds kā prefikss: kauja.uzbrukums() |
from kauja import uzbrukums |
Ielādē tikai vienu konkrētu funkciju no faila. | Var saukt pa tiešo: uzbrukums() |
Kā vizuālās plānošanas shēmas elementi pārtop reālā Python kodā.
| Simbols | Nozīme vizuālajā shēmā | Atbilstība Python kodā |
|---|---|---|
| [ ] Taisnstūris | Darbība / Lokācija / Stāsta istaba | Funkcija (piem., def pils_varti():) |
| < > Rombs | Lēmums / Jautājums spēlētājam | input() un If/Else zarošanās bloks |
| → Bulta | Plūsmas virziens uz nākamo soli | Citas funkcijas izsaukšana |