Da li želite da naučite svoju decu python-u? Došli ste na pravo mesto – IT Elite Academy.
Šta je Python?
Šta je python? Zmija? Velika teška zmija? Da, zapravo, python je jedna od najvećih zmija koja postoji na ovom svetu. Ali reč „python“ takođe je poznata po nečemu drugom. Da, ako potičete iz programerske porodice, možda ste čuli ovu reč. U programskom svetu reč „python“ ne znači velika zmija, ali sigurno odražava nešto veliko.
Python je programski jezik visokog nivoa koji je programerima dobro poznat. To je jedan od najpopularnijih i široko korišćenih programskih jezika širom sveta. Python je jedan od najlakših programskih jezika za decu. U ovom tutorialu ćemo naučiti nekoliko osnovnih koncepata programskog jezika Python-a uz pomoć zabavnih igara koje će te kreirati u Python-u.
Kratka istorija programskog jezika Python-a
Ali pre svega, zašto imenovati programski jeziki python? Pa, kada je Guido van Rossum, kreator Python-a implementirao kod za jezik, čitao je skripte iz TV serije „Leteći cirkus Monty Python-a“. Valјda mu je to palo na pamet, dok je nazivao jezik Python. Iako se Python prvi put pojavio 1990. godine, trebalo je neko vreme da postane popularan.
Danas je Python jedan od najpopularnijih programskih jezika. Koristi se u razvoju web aplikacija, na strani klijenta, razvoj na strani servera, mašinskom učenju, naučnom i numeričkom računarstvu i mnogim drugim oblastima. Ali šta Python čini tako uspešnim? Raspravimo ukratko o nekim njegovim karakteristikama.
Python kodiranje za decu – klјučni pojmovi
- Sintaksa:
Sintaksa je pravopis i gramatika programskih jezika. Jedna od najbolјih karakteristika Python-a je njegova intuitivna i lagana za čitanje sintaksa. To početnicima mnogo olakšava učenje python-a. U poređenju sa drugim programskim jezicima, kao što su Java, C/C++, Javascript, Python-ova sintaksa je mnogo jednostavnija. Mnogo je više oslobođena grešaka.
- Moduli treće strane:
Moduli su poput biblioteka koda koje nam pružaju pristupne funkcije koje bismo možda želeli da uklјučimou naš program. Moduli treće strane su uvek korisni kada je u pitanju razvoj. Indeks paketa Python (PyPI) sadrži širok spektar Python-ovih modula treće strane koji mogu da komuniciraju sa drugim jezicima i platformama.
- Biblioteke:
Za šta se koristi biblioteka? Biblioteka se uglavnom koristi za pružanje spolјnih funkcija koje nisu podržane programskim jezikom ili framework-om. Uvek je efikasno da se koriste biblioteke za pružanje proširenih funkcionalnosti. Python podržava veliku količinu biblioteka za funkcionalnosti poput internet protokola, alata za web servise, string operacije i interfejsa operativnog sistema.
- Jaka zajednica:
Početnik može da se zapita zašto je zajednica važna za programski jezik! Python je programski jezik otvorenog koda, što znači da svako može da doprinese tome. Python-ova jaka zajednica deli znanje između sebe, radi na problemima i rešava greške. Python-ova zajednica je vrlo jaka i takođe korisna za početnike!
- Korisničke strukture podataka:
Strukture podataka pomalo su napredna oblast za početnike, ali predstavlјaju jedan od najvažnijih delova programskog jezika. One su veoma korisne tokom programiranja i uobičajeno se koriste u svetu programiranja. Strukture podataka u Python-u su vrlo jednostavne i lake za korišćenje. Za razliku od drugih programskih jezika, Python-ove strukture podataka su lake za učenje.
Python Igra kodiranja #1: Kamen, papir, makaze
Kamen, papir i makaze. Da li vam je poznato da se ove tri reči izgovaraju u isto vreme? Mislimo da jeste. Kamen, papir i makaze je popularna igra.
Kamen, papir i makaze igraju se između dve osobe, a obe odabiru jednu od tri opcije. Tada se, prema određenim pravilima, jedno od njih dvoje proglašava pobednikom. Mi ćemo dalјe raspravlјati o ovim pravilima i štaviše, implementiraćemo kamen, papir i makaze u programski jezik Python-a.
Nervozni? Pa, nema potrebe da se nervirate jer nije toliko teško kao što zvuči! Kao što smo ranije napomenuli, Python je jedan od najlakših jezika za programiranje i ne treba puno vremena da ga shvatite. Pa krenimo.
Hajde da razgradimo kamen, papir, makaze – korak po korak
Pre prelaska na kodni deo, prvo pravilo programiranja i razvoja je uvek da analizirate i razgradite ono što ćemo da implementiramo. Raščlanjivanje naših problema na manje korake naziva se dekompozicija. Ovde ćemo da kreiramo program za igru, kamen, papir i makaze. Podelimo problem na delove.
- Igrači. Zapamtite, potrebno nam je dvoje lјudi u ovoj igri. Za ovaj program imaćemo jednog korisnika, a drugi računar. I korisnik i računar će uneti svoje unose. Ne brinite o unosu računara, biće to najzanimlјiviji deo.
- Pravila. Dalјe, moramo da kreiramo primer scenarija kako bismo odlučili ko je pobednik u svakom potezu. Raspravimo ukratko o tim scenarijima:
– Nerešeno je kada i korisnik i računar naprave isti izbor.
– Kamen pobeđuje nad Makazama i gubi od Papira
– Papir pobeđuje nad Kamenom i gubi od Makaza
– Makaze pobeđuju nad Papirom i gube od Kamena
- Strategija izlaska. Uvek će postojati opcija da se igra završi.
- Ko je pobedio? Takođe moramo da vodimo računa o broju bodova koje su oboje zaradili. Kad pojedinci igraju kamen, papir, makaze, oni to često čine do 3 ili do 5 pobeda.
Dakle, sada znamo šta ćemo raditi. Hajde da kodiramo!
Kodiranje Python igre: Korak po korak uputstva
Napravili smo potpuno funkcionalan kod za kamen, papir i makaze. Kompletan kod možete da pronađete na kraju ove objave. Razgovarajmo o tome korak po korak. Predlažemo vam da zajedno pređete svaku liniju koda u vašoj učionici i razgovarate o njoj dok učite. Na kraju će učenici imati potpuno radnu igru kamen, papir i makaze koju mogu da igraju protiv računara!
Ova igra je jednostavno kreirana pomoću promenlјivih, liste, while petlјe , if-elif-else lestvica i posebnog randint method-a koji smo uvezli iz random module-a. U nastavku ćemo pregledati sve ove početne koncepte kodiranja!
Ako nemate Python editor i tražite stvarno jednostavan način da odmah započnete sa Python-om, možete da koristite onlajn Python IDE editor. Jednostavno otvorite ovu stranicu, https://repl.it/languages/Python3, i bićete spremni za početak odmah!
Korak 1: Uvoz modula
from random import randint
Prva linija koda je: od random import randint.
Šta ta linija zapravo znači? Pročitajte je i možda ćete dobiti ideju. Uvozimo funkciju randint iz slučajnog modula koristeći klјučne reči ‘from’ i ‘import’. Funkcija randint ima neke posebne sposobnosti koje ćemo koristiti u našem programu. O tome ćemo kasnije. Sada kada imamo ovu bitnu funkciju, možemo da je koristimo u kodu.
Korak 2: Stvaranje liste dostupnih opcija
Ranije smo razgovarali o strukturama podataka. Kao što smo ranije napomenuli, strukture podataka u Pythonu su jednostavne za upotrebu i vrlo su lako razumlјive. Pogledajmo naš naredni red koda za našu prvu strukturu podataka, listu.
#List of options
game = [„Rock“, „Paper“, „Scissors“]
Posmatrajte liniju koda iznad. Napravili smo strukturu podataka na listi i nazvali je ‘game’. Zatim smo je inicijalizovali sa tri dostupna izbora, Rock, Paper i Scissors (kamen, papir i makaze).
Zapamtite, takođe postoji malo drugih struktura podataka u Python-u i svaka od njih ima različite funkcionalnosti. Lista se kreira pomoću kvadratnih (velikih) zagrada. Da bismo pronašli njegove vrednosti, sve što treba da uradimo je da napišemo ime liste, zatim dve kvadratne zagrade, a zatim unesemo indeks vrednosti koji želimo da pronađemo.
Pretpostavimo da želimo da odštampamo drugu stavku na listi. Kako ćemo to da uradimo? Jednostavno! Koristićemo njen indeks i zapamtite, indeks uvek počinje sa 0. To znači da druga stavka na listi ima prvi indeks. Poštujte sintaksu ispod.
game[1]
Korak 3: Naterajte računar da nasumično odabire
Dakle, već smo uveli randint funkciju i takođe znamo kako da vratimo vrednosti sa liste. Sada je vreme da kombinujemo ova dva koncepta koja smo naučili da bi dobili izbor za računar. Da, dobro ste pročitali. Pridržavajte se sledećeg koda. Ovako se računar nasumično odlučuje u ovom programu.
#Assigning a random option to computer
computer = game[randint(0,2)]
Obratite pažnju odmah! Napravili smo promenlјivu sa računarom i ova promenlјiva će držati izbor računara. Već imamo listu izbora i moramo da smislimo nešto tako da računar može da izabere jednu od njih nasumično. Slučajno? Da! Ovde je mesto gde će randint funkcija da dođe do izražaja.
Funkcija randint koristi se za generisanje slučajne vrednosti. Donja i gornja granica se prenose na ovu funkciju, a vraćena vrednost je uvek između ovog raspona. Ovde ćemo proći 0 i 2 zbog naše liste, igra ima tri vrednosti. Ne zaboravite da se 0 smatra prvom vrednošću. Stoga 0, 1 i 2 čine ukupno tri opcije!
randint(0,2)
Ovaj deo koda može da vrati 0, 1 ili 2. Može da bude jedinstven ili isti. To samo zavisi od raspoloženja pythona! Šala! ☺ To je sasvim slučajno! Vraćeni broj koristićemo kao indeks liste.
game[randint(0,2)]
U kvadratne zagrade pišemo čitavu randint funkciju, tako da vraćeni slučajni broj može da radi kao indeks. Sada se vrši izbor računara i promenlјive, računar ga drži. Kasnije ćemo ponovo koristiti ovu liniju koda, budite u toku!
Korak 4: Definišite još nekoliko promenlјivih pre nego što započnemo našu igru
Varijable su važan deo programiranja. Pregledavamo osnove promenlјivih i njihovu važnost kodiranja u prvom delu našeg Python vodiča za decu.
Za našu igru Rock, Paper, Scissors trebamo da uzmemo u obzir još nekoliko varijabla. Hajde da razgovaramo o njima
playersPoint = 0
computersPoint = 0
Ove dve promenlјive zadržaće broj bodova za korisnika i računar. Zbog toga su inicijalizirane na nulu.
goOn = True
Zapamtite, spomenuli smo da, pored opcija, korisnik takođe može da završi igru. GoOn varijabla će završiti igru kada korisnik upiše ‘Finish’. GoOn varijabla je postavlјena na True i biće uslov while petlji. Ne brinite! O petlјi ćemo raspravlјati kasnije.
Kada korisnik unese ‘Finish’, vrednost ove promenlјive će se promeniti u false i igra će se završiti.
Korak 5: Kreiranje While petlјe
Zatim idemo na radni deo našeg programa. Koristili smo while petlјu, ali zašto? Šta ova while petlјa radi ovde? While petlјa omogućava našoj igri da radi sve dok se igra ne završi od strane korisnika. Posmatrajte liniju koja sadrži while petlјu.
#Loop goes on until goOn is false
while(goOn):
U zagradama se koristi goOn varijabla. Zapamtite, promenlјiva goOn ima True kao svoju vrednost. To znači, stanje u while petlјi je istinito i izvodiće se sve dok uslov nije lažan. A kada će stanje postati lažno? Tačno kada se vrednost promenlјive goOn promeni u lažnu. Kasnije ćemo reći našem programu da promeni goOn promenlјivu u lažno kada korisnik ukuca „Finish“
Korak 6: Omogućavanje korisničkog unosa
Prva linija koda unutar while petlјe je:
#Ask for user input<br>
player = input(„Rock, Paper or Scissors? or enter Finish to end!\n“)
Ovde tražimo od korisnika da izabere. Četiri opcije su Rock, Paper, Scissors i Finish. Korisnik mora da uđe u jedan od ovih programa ili program neće da ide dalјe. Da biste dobili unos od korisnika, koristi se funkcija unosa.
Izbor se čuva u promenlјivoj plejera. Na ekranu se pojavlјuje tekst napisan unutar funkcije. Zapamtite, vrednosti moramo da unesemo tačno onako kako su tražene! Ovo je osetljivo na velika i mala slova!
Korak 7: Definišite scenarija
Imamo dve promenlјive: računar i igrač, koji imaju mogućnost izbora računara i korisnika.
Sada je vreme da se odluči pobednik. To ćemo uraditi pomoću if-elif-else lestvica. Pogledajte merdevine koje smo koristili u programu i onda ćemo razgovarati o tome.
#Check for scenarios
if(player == ‘Finish’):
goOn = False
elif(player == computer):
print(„Tie!“)
elif(player == „Rock“):
if(computer == „Paper“):
print(„You lose!“, computer, „covers“, player)
computersPoint = computersPoint + 1
else:
print(„You win!“, player, „smashes“, computer)
playersPoint = playersPoint + 1
elif(player == „Paper“):
if(computer == „Scissors“):
print(„You lose!“, computer, „cut“, player)
computersPoint = computersPoint + 1
else:
print(„You win!“, player, „covers“, computer)
playersPoint = playersPoint + 1
elif(player == „Scissors“):
if(computer == „Rock“):
print(„You lose…“, computer, „smashes“, player)
computersPoint = computersPoint + 1
else:
print(„You win!“, player, „cut“, computer)
playersPoint = playersPoint + 1
else:
print(„That’s not a valid play. Check your spelling!“
Hajde da razumemo kako deluje ‘if-elif-else lestvica’. Svaki if i elif ima uslovni deo u zagradama. Program će ući u onaj blok čije je stanje tačno. Jednom kada se utvrdi pravo stanje, on će ignorisati sve ostale uslove. Ali šta se događa kada nijedan od uslova nije tačan? Izvršenje ide u else blok. Posmatrajte kod iznad još jednom, blok else nema uslov.
Raspravlјaćemo o svim uslovima korak po korak.
- Prvi uslov proverava da li je korisnik uneo ‘Finish’ ili ne. Ako je ovaj uslov tačan, vrednost promenlјive goOn biće promenjena u lažnu i program će se završiti.
if(player == ‘Finish’):
goOn = False
- Drugi uslov proverava gde je izbor i korisnika i računara isti. Ako je to tačno stanje, nikome se ne daju bodovi.
elif(player == computer):
print(„Tie!“)
- Sledeća tri uslova deluju u skladu sa osnovnim konceptima igre. Pobednik se odlučuje i bodovi se na osnovu toga dodelјuju. Ranije smo inicijalizovali dve promenlјive sa 0, computersPoint i playerPoint. Ako računar pobedi, computersPoint varijabila se povećava za 1, a ako korisnik pobedi, playersPoint promenlјiva se povećava za 1.
elif(player == „Rock“):
if(computer == „Paper“):
print(„You lose!“, computer, „covers“, player)
computersPoint = computersPoint + 1
else:
print(„You win!“, player, „smashes“, computer)
playersPoint = playersPoint + 1
elif(player == „Paper“):
if(computer == „Scissors“):
print(„You lose!“, computer, „cut“, player)
computersPoint = computersPoint + 1
else:
print(„You win!“, player, „covers“, computer)
playersPoint = playersPoint + 1
elif(player == „Scissors“):
if(computer == „Rock“):
print(„You lose…“, computer, „smashes“, player)
computersPoint = computersPoint + 1
else:
print(„You win!“, player, „cut“, computer)
playersPoint = playersPoint + 1
- Poslednji je else blok. Nema uslova. On prikazuje poruku samo kada je korisnik uneo nevažeći izbor.
else:
print(„That’s not a valid play. Check your spelling!“)
Korak 8: Dopuštanje igre da se nastavi
Na kraju while petlјe, ponovo smo koristili randint funkciju da dodelimo izbor računaru.
#Assigning a random option to computer
computer = game[randint(0,2)]
print(‘********Next Turn********’)
Moramo da ponovimo ovo iako smo na početku naše igre imali sličnu liniju koda. Zapamtite, na svakom koraku računar mora da donese izbor. Zbog toga ponovo pišemo ovu liniju koda.
Korak 9: Prikaz konačnog rezultata
Kada korisnik završi igru upisivanjem ‘Finish’, program će prikazati konačni rezultat. Konačni rezultat se čuva u dve promenlјive koje smo ranije koristili, computersPoint i PlayerPoint.
#Printing final points
print(„********Final Points********“)
print(„Player: „, playersPoint)
print(„Computer: „, computersPoint)
Kamen Papir Makaze – Kompletan kod
Postoji pun kod koji će vam trebati za pokretanje igre Kamen, Papir, Makaze u Python-u. Možete da kopirate i zalepite ovaj kod na https://repl.it/languages/Python3 i igrate ovu igru za vašu zabavu!
from random import randint
#List of options
game = [„Rock“, „Paper“, „Scissors“]
#Assigning a random option to computer
computer = game[randint(0,2)]
#Keep count for points
playersPoint = 0
computersPoint = 0
goOn = True
#Loop goes on until goOn is false
while(goOn):
#Ask for user input
player = input(„Rock, Paper or Scissors? or enter Finish to end!\n“)
#Check for scenarios
if(player == ‘Finish’):
goOn = False
elif(player == computer):
print(„Tie!“)
elif(player == „Rock“):
if(computer == „Paper“):
print(„You lose!“, computer, „covers“, player)
computersPoint = computersPoint + 1
else:
print(„You win!“, player, „smashes“, computer)
playersPoint = playersPoint + 1
elif(player == „Paper“):
if(computer == „Scissors“):
print(„You lose!“, computer, „cut“, player)
computersPoint = computersPoint + 1
else:
print(„You win!“, player, „covers“, computer)
playersPoint = playersPoint + 1
elif(player == „Scissors“):
if(computer == „Rock“):
print(„You lose…“, computer, „smashes“, player)
computersPoint = computersPoint + 1
else:
print(„You win!“, player, „cut“, computer)
playersPoint = playersPoint + 1
else:
print(„That’s not a valid play. Check your spelling!“)
#Assigning a random option to computer
computer = game[randint(0,2)]
print(‘********Next Turn********’)
#Printing final points
print(„********Final Points********“)
print(„Player: „, playersPoint)
print(„Computer: „, computersPoint)
Hajde da pogledamo konačni kod na delu!
Python tutorijal za za decu: Demo kamen, papir, makaze
Korisnik može ući u ‘Kamen’, ‘Papir’ ili ‘Makaze’ za igranje ili ‘Finish’ da bi završio igru. Tada se vrednost poklapa s izborom računara i bodovi se raspoređuju u skladu sa time. Kada je igra završena, na ekranu se prikazuju završni bodovi.
I t ovo je način kako da možemo da stvorimo jednostavnu igru kamen, papir i makaze u Python-u.
Python Igra kodiranja #2: Kreirajte Magic 8 Ball proročicu
Prethodno smo napravili jednostavnu igru kamen, papir i makaze u Python-u. Igra je jednostavno kreirana pomoću promenlјivih, liste, while petlјe, if-elif-else lestvica i posebnog randint metod-a koji smo uvezli iz random modula. U ovom tutorijalu ćemo kreirati još jednu igru koja oponaša klasičnu igračku iz našeg detinjstva: Magic 8 Ball – proročicu. Ovo će biti zabavno!
Koristićemo osnovne koncepte koje smo naučili prošli put i kombinovaćemo ih sa drugim novim konceptom programskog jezika koji je poznat i kao funkcije.
Sve o funkcijama
Funkcije su sastavni deo gotovo svakog programskog jezika. Funkcije postoje i u Python-u. Šta su funkcije i zašto su nam potrebne? Funkcija je organizovani blok koda koji je definisan za neki određeni zadatak.
Funkcije se koriste za ponovnu upotrebu koda. Kad nam je potreban jedan blok koda više puta u programu, da li trebamo da ga pišemo svaki put iznova? Apsolutno ne! Ovde funkcije stupaju na scenu. Funkcije mogu da se pozivaju sa bilo kog mesta u Python-u. Vrednosti mogu da se proslede kao parametri funkciji, a vrednosti takođe mogu da se vrate iz funkcije.
Funkcije su vrlo korisne u programiranju. Fokusiraćemo se na funkcije u magičnoj magic 8 ball igri. Ali prvo, hajde da razmotrimo nekoliko prednosti upotrebe funkcija.
Prednosti funkcija kodiranja
- Lakoća u razvoju programa
- Testiranje postaje lako.
- Ponovna upotreba koda.
- Bolјa čitlјivost programa.
- Delјenje koda postaje moguće.
Šta je Magic 8 Ball?
Šta je magic 8 ball? To je u osnovi igračka koja je razvijena 1950-ih. Korisnik postavlјa pitanje, a odgovor se pojavlјuje na površini kuglice. Ako korisnik pita: „Hoću li danas da umrem?“, odgovor bi mogao da bude „Svakako da!“. Ne brinite! Možete da igrate ovu igru jer u njenim odgovorima nema istine. Ona samo nasumično izabere odgovor iz skupa odgovora i prikazuje ga na ekranu svaki put kada primi unos.
Dakle, to je osnovno programiranje. Šta vam pada na pamet kad kažemo „Samo nasumično izabere odgovor iz skupa odgovora“? Da! pogodili ste, randint metodom. Prethodno smo na sličan način koristili randint metodu da bi smo izabrali izbor za računar iz niza koji sadrži tri vrednosti – Kamen, Papir i Makaze. Ovog puta će učiniti nešto slično tome. Da vidimo šta ćemo raditi u ovoj igri.
Hajde da razložimo Magic 8 Ball igru!
- Ponovo su uklјučene dve strane. Jedna je korisnik, a druga je magic 8 ball.
- Korisnik će upisati pitanje i magic 8 ball će odgovoriti.
- Biće skup odgovora i iz ovog skupa će se izabrati jedan odgovor na pitanje.
- Uvek će postojati opcija da se igra završi.
Magic 8 Ball – Potpun radni kod
Dakle, evo punog radnog koda Magic 8 ball – proročica u Python-u. Mi ćemo raspravlјati o ovom kodu korak po korak, ali prvo, proverite da li ste ga pravilno prošli.
#importing randint method
from random import randint
#List of answers
answers = [‘Outlook good’, ‘Yes Signs point to yes’, ‘Reply hazy’, ‘try again’, ‘Ask again later’, ‘Better not tell you now’,’It is certain’, ‘It is decidedly so’, ‘Without a doubt’, ‘Yes – definitely’, ‘You may rely on it’, ‘As I see it, yes’, ‘Most likely’, ‘Cannot predict now’, ‘Concentrate and ask again’, ‘Dont count on it’, ‘My reply is no’, ‘My sources say no’, ‘Outlook not so good’, ‘Very doubtful’]
print(‘Hello stranger!, I am the Magic 8 Ball’)
print(‘**********’)
#The magic 8 ball function
def Magic8Ball():
print(‘Ask me a question.’)
input()
#using randint method
print (answers[randint(0, len(answers)-1)] )
print(‘I hope that helped!’)
#calling Replay function
choice = Replay()
if(choice == ‘Y’):
#Calling Magic8ball function
Magic8Ball()
elif choice == ‘N’):
return
else:
print(‘I did not understand! Please repeat.’)
#Calling Replay function
Replay()
#Function for user’s decision
def Replay():
print (‘Do you have another question? Enter Y if yes or N if no.’)
choice = input()
#Returning user input
return choice
#Calling Magic8ball function
Magic8Ball()
print(‘*****I hope you got your answers*****’)
Uvoz randint metoda
#importing randint method
from random import randint
Ovde smo uveli randint metodu iz slučajnog modula. Kasnije ćemo koristiti ovu metodu za izabiranje odgovora.
Spisak odgovora
#List of answers
answers = [‘Outlook good’, ‘Yes Signs point to yes’, ‘Reply hazy’, ‘try again’, ‘Ask again later’, ‘Better not tell you now’,’It is certain’, ‘It is decidedly so’, ‘Without a doubt’, ‘Yes – definitely’, ‘You may rely on it’, ‘As I see it, yes’, ‘Most likely’, ‘Cannot predict now’, ‘Concentrate and ask again’, ‘Dont count on it’, ‘My reply is no’, ‘My sources say no’, ‘Outlook not so good’, ‘Very doubtful’]
Ovo je prilično velika lista! Na ovoj listi je 20 odgovora. Magic 8 ball može da izabere bilo koji odgovor sa ove liste. Vi takođe možete da prilagodite ovo vašem setu odgovora! Budite kreativni!
Pozivanje funkcije Magic8Ball
Dalјe, postoji jednostavan deo za štampanje i dve funkcije. Ove dve funkcije neće raditi ništa dok se ne pozovu. Zato preskočimo ovaj deo za sada i skoknimo direktno do završnog dela koda.
Magic8Ball()
Ovde sve počinje. Jedna od dve funkcije se zove Magic8Ball i ovde je pozivamo. Izvršenje programa će preskočiti dve funkcije i kada se izvrši ova linija, aktivira se funkcija magic8ball. Ne postoje parametri za funkciju magic8ball. Dakle, u zagradama se ništa ne prenosi.
Rad sa unkcijama Magic8Ball
Sada hajde da razumemo kako funkcioniše funkcija Magic8Ball.
def Magic8Ball():
print(‘Ask me a question.’)
input()
#using randint method
print (answers[randint(0, len(answers)-1)] )
print(‘I hope that helped!’)
#calling Replay function
choice = Replay()
if(choice == ‘Y’):
#Calling Magic8ball function
Magic8Ball()
elif(choice == ‘N’):
return
else:
print(‘I did not understand! Please repeat.’)
#Calling Replay function
Replay()
Obratite pažnju na prvi red koda iznad – def Magic8Ball (). Ovo je način na koji su funkcije definisane u Python-u pomoću klјučne reči def. Prvo postavlјamo pitanja korisnika. Ovde ne postavlјamo pitanje korisnika nigde jer nije važno šta korisnik pita. Ovo je koncept igre.
Obratite pažnju na sledeći red.
print(answers[randint(0, len(answers)-1)] )
Ovo je najvažniji deo igre – Odgovor od Magic8Ball-a. Pa šta se ovde dešava? Randint metoda koristi se za dobijanje slučajnog broja.
randint(0, len(answers)-1)
Prošli put u igri Kamen, Papir i Makaze napravili smo nešto slično ovome. Tamo smo prešli 0 i 2 u randint metodi, jer su bile izabrane samo 3 vrednosti. Ali u ovom programu imamo 20 ili možemo da imamo 30 ili onoliko odgovora koliko želimo. Dakle, umesto statičke vrednosti, koristili smo metodu koja broji dužinu liste.
len(answers)
To će vratiti 20 jer se na listi odgovora nalazi 20 vrednosti. Ali zapamtite da indeks liste uvek počinje sa 0, što znači da je poslednji element na 19-om indeksu. Zbog toga smo oduzeli 1 od vraćene vrednosti. Sada će randint metoda vratiti slučajni broj od 0 do 19.
answers[randint(0, len(answers)-1)]
Randint metoda koristi se u velikim zagradama. Na ovaj način će se pojaviti slučajni odgovor.
Replay() funkcija
Ovo je deo u kojem korisnik odlučuje, treba li igra da nastavi ili ne. Za ovaj ulaz imamo posebnu funkciju – Replay().
def Replay():
print (‘Do you have another question? Enter Y if yes or N if no.’)
choice = input()
#Returning user input
return choice
Kao što je ranije spomenuto, svaka funkcija ima određeni zadatak. Funkcija magic8ball postavlјa pitanje i daje odgovor. Funkcija ponovne reprodukcije postavlјa pitanje šta korisnik dalјe želi da uradi – igranje ili napuštanje. Korisnik mora da unese ‘Y’ za da i ‘N’ za ne.
Povratna klјučna reč koristi se za vraćanje vrednosti iz funkcije. Ali ovu vraćenu vrednost moramo da sačuvamo. Ali pričekajte malo! Gde smo zvali ovu replay funkciju? U funkciji magic8ball. Hajde da se vratimo tamo.
Pozivanje replay funkcije u magic8ball funkciji
U funkciji magic8ball zovemo Replay funkciju i pohranjujemo vraćenu vrednost u varijablu izbora.
choice = Replay()
Varijabla izbora će se koristiti sledeća u if-elif-else lestvicama.
Lestvica if-elif-else
if(choice == ‘Y’):
#Calling Magic8ball function
Magic8Ball()
elif(choice == ‘N’):
return
else:
print(‘I did not understand! Please repeat.’)
#Calling Replay function
Replay()
Hajde da razumemo if-elif-else lestvicu korak po korak.
- Ako je vrednost varijable izbora ‘Y’, magic8ball funkcija ponovo će se pozvati.
- Ako je vrednost varijable izbora ‘N’, program će napustiti magic8ball funkciju. Sada obratite pažnju ovde.
elif(choice == ‘N’):
return
Koristili smo samo povratnu klјučnu reč, ali uz nju nije vraćena nijedna vrednost. Ovo je način izlaska iz funkcije.
- Ako je vrednost varijable izbora nešto drugo osim ‘Y’ i ‘N’, funkcija odgovora ponovo će biti pozvana radi odgovarajućeg unosa korisnika.
Ovako možemo napravimo jednostavnu Magic 8 ball – proročicu igru u python-u.
Pogledajmo konačni kod na delu!
Kada se pokrene kod, računar će početi da traži da se postavi pitanje. Korisnik unosi pitanje i računar će nasumično da generiše odgovor, baš kao i igračka magic 8 ball!