Tavs šīs stundas izaicinājums: Iemācīt funkcijai ne tikai izpildīt darbību, bet arī "atdot" rezultātu atpakaļ programmai. Tas ļaus Tev veikt aprēķinus un saglabāt to rezultātus mainīgajos turpmākai izmantošanai spēlē.
SR 2.4.15. (Vērtību atgriešana no funkcijas)Ja print() tikai parāda rezultātu uz ekrāna, tad return to "atdod" atpakaļ programmai, lai mēs to varētu izmantot tālāk (piemēram, saglabāt mainīgajā vai izmantot aprēķinos).
def saskaiti(a, b):
rezultats = a + b
return rezultats # Funkcija atdod rezultātu un beidz darbu
print("Šis teksts nekad neparādīsies!") # Kods pēc return netiek izpildīts
# Saglabājam atgriezto vērtību mainīgajā
mana_summa = saskaiti(10, 5)
# Tagad mēs šo vērtību varam izmantot tālāk
jauna_summa = mana_summa + 100
print(f"Gala rezultāts ir {jauna_summa}")
return atslēgvārds – Nosūta datus no funkcijas iekšienes atpakaļ uz vietu, kur funkcija tika izsaukta.return, funkcijas darbība nekavējoties apstājas.mans_skaitlis = funkcija().Izveido vienkāršu funkciju, kas aprēķina kopējo punktu skaitu pēc raunda, pieskaitot bonusu.
punktu_sistema.py.def aprekinat_punktus(punkti, bonuss):.kopa = punkti + bonuss.return kopa.rezultats = aprekinat_punktus(100, 20).rezultats terminālī.Lieto funkciju ar vērtības atgriešanu, lai noteiktu, vai spēlētājs vēl ir "dzīvs" (True/False).
speletaja_statuss.py.def ir_dzivs(hp):.hp ir lielāks par 0, atgriez True, citādi atgriez False.mana_veseliba = 45.if konstrukciju, kuras nosacījumā izsauc funkciju: if ir_dzivs(mana_veseliba):.True, izvadi "Turpini cīņu!", ja False – "Spēle beigusies!".Izveido funkciju, kas izvēlas un atgriež uzreiz divas vērtības – nejaušu pretinieka vārdu un tā spēka līmeni.
ienaidnieki.py. Failā importē random bibliotēku.def generet_ienaidnieku():.random.choice(), lai izvēlētos vienu vārdu un random.randint(1, 10) spēkam.return vards, speks.v, s = generet_ienaidnieku() un parādi ziņojumu par ienaidnieka parādīšanos.None. Risinājums: Tu aizmirsi pielikt return atslēgvārdu funkcijas beigās.return rindas. Risinājums: Visas darbības jāveic pirms vērtības atgriešanas.None ar skaitli. Risinājums: Pārliecinies, ka funkcija visos gadījumos tiešām atgriež skaitlisku vērtību.# Funkcija, kas "sagatavo" datus un atdod tos atpakaļ
def dabut_ieroca_boju(tips):
if tips == "zobens":
return 15
elif tips == "loks":
return 10
# Ja neizpildās neviens if, atgriežam šo:
return 5
# Saglabājam atgriezto vērtību mainīgajā
bojajums = dabut_ieroca_boju("zobens")
print(f"Tu nodarīji {bojajums} HP bojājumu!")