Tavs šīs stundas izaicinājums: Izprast datu plūsmu funkcijās un pielietot Return statement (Atgriešanas komandu), lai aprēķinu rezultātus padotu atpakaļ galvenajai programmai tālākai apstrādei.
2.4.15. Veido modulāras programmas un funkcijas.Funkcijas var ne tikai veikt darbības (kā teksta izvadīšanu), bet arī izrēķināt jaunu vērtību un "atdot" to atpakaļ vietai, no kuras funkcija tika izsaukta. To dara ar atslēgvārdu return.
print(), kas datus tikai parāda ekrānā, return datus nodod tālākai izmantošanai kodā.
# Funkcija atgriež matemātisku rezultātu
def saskaiti(a, b):
return a + b
# Izsaucam funkciju un saglabājam rezultātu
summa = saskaiti(10, 5)
print(f"Rezultāts ir {summa}")
def ienaidnieka_dati():
return "Pūķis", 100
vards, dzivibas = ienaidnieka_dati()
Izveido vienkāršu funkciju, kas veic aprēķinu un atgriež rezultātu tālākai apstrādei.
punktu_sistema.py.def aprekinat_punktus(punkti, bonuss):.kopa = punkti + bonuss.return kopa.rezultats = aprekinat_punktus(100, 20).rezultats terminālī.Izmanto Return kopā ar Boolean (Patiesumvērtību), lai funkcija kalpotu kā spēles loģikas pārbaude.
speletaja_statuss.py.def ir_dzivs(hp):.if/else): ja hp ir lielāks par 0, atgriez True, citādi atgriez False.mana_veseliba = 45.if konstrukciju, kuras nosacījumā pa tiešo izsauc funkciju: if ir_dzivs(mana_veseliba):.Apvieno random moduli un iespēju atgriezt vairākus mainīgos vienlaicīgi no vienas funkcijas.
ienaidnieki.py un faila sākumā importē random moduli.def generet_ienaidnieku():.veidi = ["Skelets", "Orks", "Pūķis"].random.choice(veidi), lai izvēlētos nosaukumu, un random.randint(1, 10) spēka līmenim.return vards, speks.v, s = generet_ienaidnieku(). Pēc tam izvadi tos terminālī.Apvieno funkcijas ar kļūdu apstrādi, lai izveidotu rīku drošai skaitļu iegūšanai jebkurā spēles brīdī.
drosa_ievade.py.def iegut_skaitli(jautajums):.while True: ciklu ar try/except ValueError bloku.try bloka mēģini iegūt lietotāja ievadi: vertiba = int(input(jautajums)).return vertiba (return automātiski pārtrauc arī while ciklu!).vecums = iegut_skaitli("Cik Tev gadu? ").return, Python automātiski atgriež None. Slikti, ja tālāk kodā mēģināsi veikt matemātiku ar None vērtību.
# Slikti: Funkcija aprēķina, bet neko neatdod
def saskaiti(a, b):
rezultats = a + b
# Labi:
def saskaiti(a, b):
return a + b
return komandu, funkcija beidzas. Viss, kas atrodas zem return tajā pašā Indentation (Atkāpē), tiks ignorēts.
# Slikti: print komanda nekad neizpildīsies
def paziņot():
return True
print("Funkcija pabeigta")
# Labi:
def paziņot():
print("Funkcija pabeigta")
return True
# Funkcija ieroča bojājuma noteikšanai
def dabut_ieroca_boju(tips):
if tips == "zobens":
return 15
elif tips == "loks":
return 10
# Noklusējuma vērtība, ja neizpildās if/elif
return 5
# Saglabājam atgriezto vērtību jaunā mainīgajā
mans_bojajums = dabut_ieroca_boju("zobens")
print(f"Tu nodarīji ienaidniekam {mans_bojajums} HP bojājumu!")