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: Flutter: useMemoized проще для понимания | порхающие крючки | усиление абхи 2024, Maj
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 i podrška za Python 2 će prestati 2020. pa će ovaj članak pretpostaviti da ste instalirali Python 3.

947361 2
947361 2

Korak 2. Otvorite novu datoteku u uređivaču teksta ili 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 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

947361 5
947361 5

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

947361 6
947361 6

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

Postavite ga na nulu na početku. Dodajte red:

corrCount = 0

947361 7
947361 7

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)

947361 8
947361 8

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:

947361 9
947361 9

Korak 9. Unesite svako pitanje

Nakon izraza petlje upišite red:

ispis (qaItem.question)

947361 10
947361 10

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

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

947361 12
947361 12

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

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

947361 15
947361 15

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.

Preporučuje se: