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, a podrška za Python 2 prestat će 2020. pa će ovaj članak pretpostaviti da instalirate Python 3.
Korak 2. Otvorite novu datoteku u uređivaču teksta ili svom 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 točnog odgovora te popisa mogućih drugih odgovora. Funkcija _init _ () bit će pozvana kad god stvorite novi objekt QA s funkcijom QA (), s tim da se njegovi argumenti prosljeđuju u odgovarajući atribut. Tip:
klasa QA: def _init _ (ja, pitanje, točan odgovor, drugi odgovori): self.question = pitanje self.corrAnsw = correctAnswer self.otherAnsw = otherAnswers
Korak 5. Napravite popis QA -ova
Smislite neka pitanja s jednim točnim, a nekim krivim odgovorima. Od svakog stvorite QA objekte i stavite ih na popis. 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", "Australija ne postoji"]), QA ("Što od navedenog nije na Zemlji?", "More spokoja", "" Sredozemno more "," Baltičko more "," Sjeverno more "]), QA (" Što od navedenog nije kontinent? "," Arktika ", [" Antarktika "," Amerika "]), QA (" Što 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 točno
Postavite ga na nulu u početku. Dodajte redak:
corrCount = 0
Korak 7. Pomiješajte popis QA
Tako će se vaša pitanja pojaviti slučajnim redoslijedom. To se radi pomoću sljedeće funkcije:
random.shuffle (qaList)
Korak 8. Napravite petlju
Program bi trebao preći svaku stavku popisa 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 redak:
ispis (qaItem.question)
Korak 10. Iznesite sve moguće odgovore
Trebali bi se pojaviti slučajnim redoslijedom tako da točan odgovor nije uvijek na istom mjestu. Također, ispred njih bi trebao biti broj kako korisnik ne bi morao ponovno unijeti cijeli odgovor. Sljedeći kod to čini:
print ("Mogući odgovori su:") possible = qaItem.otherAnsw + [qaItem.corrAnsw] # uglate zagrade pretvaraju točan odgovor u popis radi povezivanja s drugim popisom random.shuffle (moguć) count = 0 # indeksi popisa počinju na 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 doista 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 točan
Da biste to učinili, uzmite tekst odgovora za koji je korisnik unio broj i usporedite ga s tekstom točnog odgovora. Ako su isti, korisnikov je odgovor bio točan, a varijablu corrCount treba povećati za 1. U protivnom, to je pogrešno i korisniku treba reći točan odgovor. Na kraju, ispišite prazan redak 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 točan.") corrCount + = 1 else: print ("Vaš odgovor je bio pogrešan.") print ("Toč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 pozornost na uvlačenje. Vaš bi potpuni kôd trebao izgledati ovako:
uvoz slučajne klase QA: def _init _ (samo, pitanje, točan odgovor, drugi odgovori): samo.pitanje = pitanje samo.corrAnsw = ispravanOdgovor self.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 ("Što od navedenog nema na Zemlji?", "More spokoja", ["Sredozemno more", "Baltičko more", "Sjeverno more"]), QA ("Što od navedenog nije kontinent? "," Arktika ", [" Antarktika "," Amerika "]), QA (" Koja od navedenih nije afrička država? "," Malezija ", [" Madagaskar "," Džibuti "," Jug Africa "," Zimbabwe "])] corrCount = 0 random.shuffle (qaList) for qaItem in qaList: print (qaItem.question) print (" Mogući odgovori su: ") possible = qaItem.otherAnsw + [qaItem.corrAnsw] # uglate zagrade pretvaraju točan odgovor u popis radi povezivanja s drugim popisom random.shuffle (moguć) count = 0 # indeksi popisa 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 točan. ") CorrCount += 1 else: print (" Vaš odgovor je bio pogrešno. ") print (" Točan odgovor je bio: " + qaItem.corrAnsw) print (" ") print (" Odgovorili ste " + str (corrCount) +" od " + str (len (qaList)) +" pitanja ispravno. ")
Korak 15. Pokrenite kôd
Ako koristite IDE, kliknite simbol "Pokreni" ili stavku izbornika. Ako koristite uređivač teksta, spremite program, zatvorite uređivač i otvorite program pomoću Pythona.
Savjeti
- Pazite na ispravno uvlačenje. Kod unutar definicije funkcije ili 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 će program raditi u Pythonu 2, ali će prestati raditi u Pythonu 3.