Kako narediti kviz v Pythonu (s slikami)

Kazalo:

Kako narediti kviz v Pythonu (s slikami)
Kako narediti kviz v Pythonu (s slikami)

Video: Kako narediti kviz v Pythonu (s slikami)

Video: Kako narediti kviz v Pythonu (s slikami)
Video: TUDev Solving Coding Challenges with Python! 2024, April
Anonim

Če se želite naučiti Pythona, je dobro začeti z nekaj preprostimi tekstovnimi igrami. Ta članek vam bo pokazal, kako narediti kviz.

Koraki

947361 1
947361 1

Korak 1. Namestite Python, če tega še niste storili

Obstajata dve glavni različici Pythona: Python 2 in Python 3. Nista zamenljiva in podpora za Python 2 se bo končala leta 2020, zato bo v tem članku predvideno, da namestite Python 3.

947361 2
947361 2

Korak 2. Odprite novo datoteko v urejevalniku besedil ali Python IDE

Dajte mu opisno ime, ki se konča z.py.

947361 3
947361 3

Korak 3. Uvozi naključno knjižnico

Potrebovali ga boste za naključno razporeditev možnih odgovorov.

947361 4
947361 4

Korak 4. Določite razred "QA"

"QA" bo sestavljen iz vprašanja in pravilnega odgovora ter seznama možnih drugih odgovorov. Funkcija _init _ () bo poklicana vsakič, ko ustvarite nov objekt QA s funkcijo QA (), njegovi argumenti pa bodo posredovani v ustrezen atribut. Vrsta:

razred QA: def _init _ (samo, vprašanje, pravilni odgovor, drugi odgovori): samo.vprašanje = vprašanje samo.corrAnsw = pravilno Odgovori sam.otherAnsw = otherAnswers

947361 5
947361 5

Korak 5. Ustvarite seznam QA

Pomislite na nekaj vprašanj z enim pravim in nekaj napačnim odgovorom. Ustvarite predmete QA iz vsakega in jih vnesite na seznam. Ker bo seznam precej dolg, ga lahko za boljšo berljivost razdelite na več vrstic. Vse to naredite z naslednjo kodo (besedilo je lahko drugačno):

qaList = [QA ("Kje je Minsk?", "v Belorusiji", ["v Rusiji", "takšno mesto ne obstaja"]), QA ("Kaj je glavno mesto Avstralije?", "Canberra", ["Sydney", "New York", "Avstralija ne obstaja"]), QA ("Kaj od naštetega ni na Zemlji?", "Morje miru", "" Sredozemsko morje "," Baltsko morje "," Severno morje "]), QA (" Kaj od naštetega ni celina? "," Arktika ", [" Antarktika "," Amerika "]), QA (" Kaj od naslednjega ni afriška država ? "," Malezija ", [" Madagaskar "," Džibuti "," Južna Afrika "," Zimbabve "])]

947361 6
947361 6

Korak 6. Dodajte spremenljivko, ki šteje, koliko odgovorov je bilo pravilnih

Na začetku nastavite na nič. Dodajte vrstico:

corrCount = 0

947361 7
947361 7

Korak 7. Naključno premešajte seznam QA

Tako bodo vaša vprašanja prikazana v naključnem vrstnem redu. To se naredi z naslednjo funkcijo:

random.shuffle (qaList)

947361 8
947361 8

Korak 8. Naredite zanko

Program bi moral pregledati vsako postavko na seznamu in narediti nekaj z njo. Ustvarite takšno zanko s tem izrazom:

za qaItem na seznamu qaList:

947361 9
947361 9

Korak 9. Odpišite vsako vprašanje

Po izrazu zanke napišite vrstico:

tiskanje (qaItem.question)

947361 10
947361 10

Korak 10. Iznesite vse možne odgovore

Prikazati se morajo v naključnem vrstnem redu, tako da pravilen odgovor ni vedno na istem mestu. Pred njimi mora biti tudi številka, tako da uporabniku ne bo treba znova vnesti celotnega odgovora. Naslednja koda to naredi:

Print ("Možni odgovori so:") medtem ko count <len (možno): print (str (count + 1) + ":" + mogoče [count]) count + = 1

947361 11
947361 11

Korak 11. Vnesite vnos uporabnika

Najprej povejte uporabniku, da mora vnesti svojo številko. Nato preverite, ali je tisto, kar je uporabnik vnesel, res številka, ki ustreza odgovoru. Če ni, to znova povejte uporabniku. Uporabite to kodo (zunaj zanke while, ki ste jo ustvarili za izhod):

print ("Prosimo, vnesite številko svojega odgovora:") userAnsw = input (), medtem ko ni userAnsw.isdigit (): print ("To ni bila številka. Vnesite številko svojega odgovora:") userAnsw = input () userAnsw = int (userAnsw) medtem ko ne (userAnsw> 0 in userAnsw <= len (mogoče)): print ("Ta številka ne ustreza nobenemu odgovoru. Vnesite številko svojega odgovora:") userAnsw = input ()

947361 12
947361 12

Korak 12. Preverite, ali je bil uporabnikov odgovor pravilen

Če želite to narediti, dobite besedilo odgovora, za katerega je uporabnik vnesel številko, in ga primerjajte z besedilom pravilnega odgovora. Če so enaki, je bil uporabnikov odgovor pravilen in spremenljivko corrCount je treba povečati za 1. V nasprotnem primeru je napačna in uporabniku je treba povedati pravilen odgovor. Na koncu natisnite prazno vrstico, da naslednjemu vprašanju dodate nekaj prostora. Vnesite naslednjo kodo:

če je mogoče [userAnsw-1] == qaItem.corrAnsw: print ("Vaš odgovor je bil pravilen.") corrCount + = 1 else: print ("Vaš odgovor je bil napačen.") print ("Pravilni odgovor je bil:" + qaItem. corrAnsw) print ("")

947361 13
947361 13

Korak 13. Iznesite zaključek

Na koncu uporabnik verjetno želi vedeti, koliko vprašanj je imel prav. Zato jim povejte tako, da dodate naslednji izraz zunaj zanke for:

print ("Pravilno ste odgovorili" + str (corrCount) + "od" + str (len (qaList)) + "vprašanja pravilno.")

947361 14
947361 14

Korak 14. Preverite kodo

Posebno pozornost posvetite vdolbini. Vaša celotna koda bi morala izgledati tako:

uvoz naključnega razreda QA: def _init _ (samo, vprašanje, pravilen odgovor, drugi odgovori): samo.prašanje = vprašanje samo.corrAnsw = pravilenOdgovor self.otherAnsw = otherAnswers qaList = [QA ("Kje je Minsk?", "v Belorusiji", ["v Rusiji", "takšno mesto ne obstaja"]), QA ("Kaj je glavno mesto Avstralije?", "Canberra", ["Sydney", "New York", "Avstralija ne obstaja")]), QA ("Kaj od naštetega ni na Zemlji?", "Morje spokojnosti", ["Sredozemsko morje", "Baltsko morje", "Severno morje"]), QA ("Kaj od naštetega ni celina? "," Arktika ", [" Antarktika "," Amerika "]), QA (" Kaj od naštetega ni afriška država? "," Malezija ", [" Madagaskar "," Džibuti "," Jug Africa "," Zimbabwe "])] corrCount = 0 random.shuffle (qaList) for qaItem in qaList: print (qaItem.question) print (" Možni odgovori so: ") possible = qaItem.otherAnsw + [qaItem.corrAnsw] # oglati oklepaji spremenijo pravilen odgovor v seznam za združevanje z drugim naključnim seznamom.shuffle (možen) count = 0 # indeksa seznama se začne pri 0 i n python while count <len (možen): print (str (count + 1) + ":" + možen [count]) count + = 1 print ("Prosimo, vnesite številko svojega odgovora:") userAnsw = input () medtem ko ni userAnsw.isdigit (): print ("To ni bila številka. Prosimo, vnesite številko svojega odgovora: ") userAnsw = input () userAnsw = int (userAnsw), medtem ko ne (userAnsw> 0 in userAnsw <= len (mogoče)): print (" Ta številka ne ustreza nobenemu odgovoru. Prosimo, vnesite številko svojega odgovora: ") userAnsw = input () če je mogoče [userAnsw-1] == qaItem.corrAnsw: print (" Vaš odgovor je bil pravilen. ") CorrCount += 1 else: print (" Vaš odgovor je bil napačno. ") print (" Pravilni odgovor je bil: " + qaItem.corrAnsw) print (" ") print (" Odgovorili ste " + str (corrCount) +" od " + str (len (qaList)) +" vprašanja pravilno. ")

947361 15
947361 15

Korak 15. Zaženite kodo

Če uporabljate IDE, kliknite simbol "Zaženi" ali element menija. Če uporabljate urejevalnik besedil, shranite program, zaprite urejevalnik in odprite program s programom Python.

Nasveti

  • Pazite na pravilno vdolbino. Koda v definiciji funkcije ali razreda je zamikana, prav tako koda v zanki. Program Python z napačno zamiko ne bo deloval.
  • Pritisnite Ctrl+C, če želite igro prekiniti in je ne dokončati.
  • Če vsak klic input () zamenjate s klicem raw_input (), bo ta program deloval v Pythonu 2, v Pythonu 3 pa prenehal delovati.

Priporočena: