Ako želite naučiti Python, dobro je početi s nekim jednostavnim igrama zasnovanim na tekstu. Ovaj članak će vam pokazati kako napraviti kviz igru.
Koraci
Korak 1. Instalirajte Python ako već niste
Postoje dvije glavne verzije Pythona: Python 2 i Python 3. Nisu zamjenjive i podrška za Python 2 će prestati 2020. pa će ovaj članak pretpostaviti da ste instalirali Python 3.
Korak 2. Otvorite novu datoteku u uređivaču teksta ili Python IDE -u
Dajte mu opisni naziv koji završava s.py.
Korak 3. Uvezite slučajnu biblioteku
Trebat će vam za nasumično slaganje mogućih odgovora.
Korak 4. Definirajte klasu "QA"
"QA" će se sastojati od pitanja i tačnog odgovora, te liste mogućih drugih odgovora. Funkcija _init _ () će se pozivati kad god kreirate novi QA objekt s funkcijom QA (), s tim da se njegovi argumenti prenose u odgovarajući atribut. Tip:
klasa QA: def _init _ (samo, pitanje, tačan odgovor, drugi odgovori): samo.pitanje = pitanje samoza sebe.corrAnsw = ispravnoodgovori samo.otherAnsw = otherAnswers
Korak 5. Napravite listu QA -ova
Smislite neka pitanja s jednim tačnim, a nekim pogrešnim odgovorima. Kreirajte QA objekte od svakog i stavite ih na listu. Budući da će popis biti prilično dugačak, možete ga prelomiti na više redaka radi bolje čitljivosti. Sve se to radi pomoću sljedećeg koda (vaš tekst može biti drugačiji):
qaList = [QA ("Gdje je Minsk?", "u Bjelorusiji", ["u Rusiji", "takav grad ne postoji"]), QA ("Koji je glavni grad Australije?", "Canberra", ["Sydney", "New York", "Australia ne postoji"]), QA ("Šta od navedenog nije na Zemlji?", "More spokoja", "" Sredozemno more "," Baltičko more "," Sjeverno more "]), QA (" Šta od navedenog nije kontinent? "," Arktika ", [" Antarktika "," Amerika "]), QA (" Šta od navedenog nije afrička država ? "," Malezija ", [" Madagaskar "," Džibuti "," Južna Afrika "," Zimbabve "])]
Korak 6. Dodajte varijablu koja broji koliko je odgovora bilo tačno
Postavite ga na nulu na početku. Dodajte red:
corrCount = 0
Korak 7. Nasumično promijenite QA listu
Ovo će učiniti da se vaša pitanja pojavljuju nasumičnim redoslijedom. To se radi pomoću sljedeće funkcije:
random.shuffle (qaList)
Korak 8. Napravite petlju
Program bi trebao preći svaku stavku liste i učiniti nešto s njom. Napravite takvu petlju s ovim izrazom:
za qaItem u qaList:
Korak 9. Unesite svako pitanje
Nakon izraza petlje upišite red:
ispis (qaItem.question)
Korak 10. Iznesite sve moguće odgovore
Trebali bi se pojavljivati nasumičnim redoslijedom tako da točan odgovor nije uvijek na istom mjestu. Također, ispred njih bi trebao biti broj kako korisnik ne bi morao ponovo unijeti cijeli odgovor. Sljedeći kod to čini:
print ("Mogući odgovori su:") possible = qaItem.otherAnsw + [qaItem.corrAnsw] # uglata zagrada pretvara tačan odgovor u listu za povezivanje sa drugom listom random.shuffle (mogući) count = 0 # indeksi liste počinju u 0 u pythonu dok count <len (moguće): print (str (count + 1) + ":" + moguće [count]) count + = 1
Korak 11. Uzmite unos korisnika
Prvo, recite korisniku da mora unijeti svoj broj. Zatim provjerite je li ono što je korisnik unio zaista broj koji odgovara odgovoru. Ako nije, recite to korisniku ponovo. Koristite ovaj kôd (izvan while petlje koju ste stvorili za izlaz):
print ("Molimo unesite broj vašeg odgovora:") userAnsw = input () dok nije userAnsw.isdigit (): print ("To nije bio broj. Molimo unesite broj vašeg odgovora:") userAnsw = input () userAnsw = int (userAnsw) dok nije (userAnsw> 0 i userAnsw <= len (moguće)): print ("Taj broj ne odgovara nijednom odgovoru. Molimo unesite broj vašeg odgovora:") userAnsw = input ()
Korak 12. Provjerite je li korisnikov odgovor tačan
Da biste to učinili, uzmite tekst odgovora za koji je korisnik unio broj i usporedite ga s tekstom ispravnog odgovora. Ako su isti, korisnikov odgovor je bio tačan, a varijablu corrCount treba povećati za 1. U suprotnom je pogrešan i korisniku treba reći tačan odgovor. Na kraju, ispišite praznu liniju kako biste sljedećem pitanju dodali malo prostora. Unesite sljedeći kôd:
ako je moguće [userAnsw-1] == qaItem.corrAnsw: print ("Vaš odgovor je bio tačan.") corrCount + = 1 else: print ("Vaš odgovor je bio pogrešan.") print ("Tačan odgovor je bio:" + qaItem. corrAnsw) print ("")
Korak 13. Iznesite zaključak
Na kraju, korisnik vjerojatno želi znati koliko je pitanja dobio točno. Pa im recite dodavanjem sljedećeg izraza izvan for-petlje:
print ("Odgovorili ste" + str (corrCount) + "od" + str (len (qaList)) + "pitanja ispravno.")
Korak 14. Provjerite svoj kôd
Obratite posebnu pažnju na uvlačenje. Vaš potpuni kod sada bi trebao izgledati ovako:
uvesti slučajnu klasu QA: def _init _ (samo, pitanje, tačan odgovor, drugi odgovori): samo.pitanje = pitanje samo.corrAnsw = tačan odgovor samo.otherAnsw = otherAnswers qaList = [QA ("Gdje je Minsk?", "u Bjelorusiji", ["u Rusiji", "takav grad ne postoji"]), QA ("Koji je glavni grad Australije?", "Canberra", ["Sydney", "New York", "Australija ne postoji"]), QA ("Šta od navedenog nije na Zemlji?", "More spokoja", ["Sredozemno more", "Baltičko more", "Sjeverno more"]), QA ("Šta od navedenog nije kontinent? "," Arktika ", [" Antarktika "," Amerika "]), QA (" Koja od navedenih nije afrička država? "," Malezija ", [" Madagaskar "," Džibuti "," Jug Afrika "," Zimbabve "])] corrCount = 0 random.shuffle (qaList) za qaItem u qaList: print (qaItem.question) print (" Mogući odgovori su: ") possible = qaItem.otherAnsw + [qaItem.corrAnsw] # uglate zagrade pretvaraju tačan odgovor u listu za povezivanje sa drugom listom random.shuffle (moguć) count = 0 # indeksi liste počinju na 0 i n python while count <len (possible): print (str (count + 1) + ":" + possible [count]) count + = 1 print ("Molimo unesite broj vašeg odgovora:") userAnsw = input () dok nije userAnsw.isdigit (): print ("To nije bio broj. Molimo unesite broj vašeg odgovora: ") userAnsw = input () userAnsw = int (userAnsw) dok nije (userAnsw> 0 i userAnsw <= len (moguće)): print (" Taj broj ne odgovara nijednom odgovoru. Molimo unesite broj vašeg odgovora: ") userAnsw = input () ako je moguće [userAnsw-1] == qaItem.corrAnsw: print (" Vaš odgovor je bio tačan. ") CorrCount += 1 else: print (" Vaš odgovor je bio pogrešno. ") print (" Tačan odgovor je bio: " + qaItem.corrAnsw) print (" ") print (" Odgovorili ste " + str (corrCount) +" od " + str (len (qaList)) +" pitanja tačno. ")
Korak 15. Pokrenite kôd
Ako koristite IDE, kliknite simbol "Pokreni" ili stavku menija. Ako koristite uređivač teksta, spremite program, zatvorite uređivač i otvorite program pomoću Pythona.
Savjeti
- Pazite na ispravno uvlačenje. Kod unutar funkcije ili definicije klase je uvučen, kao i kod unutar petlje. Python program s pogrešnim uvlačenjem neće raditi.
- Pritisnite Ctrl+C ako želite prekinuti igru i ne završiti je.
- Ako svaki poziv input () zamijenite pozivom raw_input (), ovaj program će raditi u Pythonu 2, ali će prestati raditi u Pythonu 3.