Kako napraviti kviz u Pythonu (sa slikama)

Sadržaj:

Kako napraviti kviz u Pythonu (sa slikama)
Kako napraviti kviz u Pythonu (sa slikama)

Video: Kako napraviti kviz u Pythonu (sa slikama)

Video: Kako napraviti kviz u Pythonu (sa slikama)
Video: CS50 2016 Week 0 at Yale (pre-release) 2024, Svibanj
Anonim

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

947361 1
947361 1

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.

947361 2
947361 2

Korak 2. Otvorite novu datoteku u uređivaču teksta ili svom Python IDE -u

Dajte mu opisni naziv koji završava s.py.

947361 3
947361 3

Korak 3. Uvezite slučajnu biblioteku

Trebat će vam za nasumično slaganje mogućih odgovora.

947361 4
947361 4

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

947361 5
947361 5

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 "])]

947361 6
947361 6

Korak 6. Dodajte varijablu koja broji koliko je odgovora bilo točno

Postavite ga na nulu u početku. Dodajte redak:

corrCount = 0

947361 7
947361 7

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)

947361 8
947361 8

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:

947361 9
947361 9

Korak 9. Unesite svako pitanje

Nakon izraza petlje upišite redak:

ispis (qaItem.question)

947361 10
947361 10

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

947361 11
947361 11

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 ()

947361 12
947361 12

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 ("")

947361 13
947361 13

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.")

947361 14
947361 14

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. ")

947361 15
947361 15

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.

Preporučeni: