Stundas uzdevums: Izprast funkciju darbības principus un izveidot atkārtoti lietojamus koda blokus ar parametriem, lai strukturētu un optimizētu savas spēles loģiku.
2.4.15. Veido modulāras programmas un funkcijas.70 min darba sadalījums: 1. uzdevums (~20 min) - atjauno teorijas piemēru vai minimālo prototipu; 2. uzdevums (~25 min) - pielieto to galvenajā uzdevumā; 3. uzdevums (~25 min) - pārbaudi rezultātu, izlabo kļūdas un tikai beigās pieraksti vienu secinājumu. Papildus/4. līmeņa uzdevums ir paredzēts tikai tad, ja pamatdarbs ir pabeigts.
Pirms sāc: izmanto iepriekš apgūto un šīs lapas teorijas/koda piemērus. Ja vajadzīga jauna komanda vai rīks, vispirms atrodi tās paraugu teorijas sadaļā.
Programmai kļūstot garākai, vienādu koda bloku rakstīšana no jauna ir neefektīva. Functions (Funkcijas) ir kā receptes – tās nodefinē vienreiz, bet izsauc jebkurā brīdī un neierobežotu skaitu reižu.
# Funkcijas definēšana ar parametru
def sasveicinaties(vards):
print(f"Sveiks, {vards}!")
# Funkcijas izsaukšana galvenajā programmā
sasveicinaties("Spēlētāj") # Izvada: Sveiks, Spēlētāj!
Šis ir īss iesildīšanās uzdevums. Nokopē sagatavi, ielīmē to pareizajā koda vietā un palaid. Šeit pietiek droši izmēģināt tēmu 4.1 Funkciju definēšana un parametri; detalizētu izpratni veidosi nākamajos uzdevumos.
Kopējamais piemērs vai sagatave: izmanto šo bloku kā starta punktu, nevis kā gala risinājumu.
# Funkcijas izsaukšana galvenajā programmā
sasveicinaties("Spēlētāj") # Izvada: Sveiks, Spēlētāj!
main.py failā un palaid no termināļa.Pievieno šīs stundas paņēmienu kā nelielu, strādājošu projekta daļu.
punkti, gajiens, atbilde, rezultats vai parbauda_ievadi().Pārbaudi, vai algoritms darbojas paredzami vairākās situācijās.
Ja pamatdarbs ir pabeigts, paplašini projektu ar vienu nelielu programmētu uzlabojumu.
def rindas nav nobīdīts pa labi. Funkcijas ķermenis drīkst saturēt tikai atbilstoši iebīdītas rindas.
# Slikti:
def sveiciens():
print("Sveiks!")
# Labi:
def sveiciens():
print("Sveiks!")
# Slikti:
def statuss(vards, punkti):
print(vards)
statuss("Anna") # Trūkst 'punkti' argumenta
# Labi:
statuss("Anna", 100)
# Slikti:
mans_sveiciens()
def mans_sveiciens():
print("Sveiks!")
# Labi:
def mans_sveiciens():
print("Sveiks!")
mans_sveiciens()
# 1. Funkcijas definēšana (receptes sagatavošana)
def aprekinat_un_paradit_punktus(komanda, uzdevums, punkti, soda_punkti):
rezultats = punkti - soda_punkti
if rezultats < 0:
rezultats = 0
print(f"{komanda} pabeidz {uzdevums} un iegūst {rezultats} punktus.")
# 2. Funkcijas izsaukšana (gatavošana praksē)
aprekinat_un_paradit_punktus("1. grupa", "prezentāciju", 50, 20)
aprekinat_un_paradit_punktus("2. grupa", "mini testu", 30, 40)