Ako vytvoriť kvízovú hru v Pythone (s obrázkami)

Obsah:

Ako vytvoriť kvízovú hru v Pythone (s obrázkami)
Ako vytvoriť kvízovú hru v Pythone (s obrázkami)

Video: Ako vytvoriť kvízovú hru v Pythone (s obrázkami)

Video: Ako vytvoriť kvízovú hru v Pythone (s obrázkami)
Video: Ako vytvoriť webovú stránku Wordpress (2023) - Návod v 20 JEDNODUCHÝCH krokoch 2024, Apríl
Anonim

Ak sa chcete naučiť Python, je dobré začať s jednoduchými textovými hrami. Tento článok vám ukáže, ako vytvoriť kvíz.

Kroky

947361 1
947361 1

Krok 1. Nainštalujte Python, ak ste to ešte neurobili

Existujú dve hlavné verzie Pythonu: Python 2 a Python 3. Nie sú zameniteľné a podpora pre Python 2 skončí v roku 2020, takže tento článok bude predpokladať, že si nainštalujete Python 3.

947361 2
947361 2

Krok 2. Otvorte nový súbor v textovom editore alebo vo vašom Python IDE

Dajte mu popisný názov, ktorý končí príponou.py.

947361 3
947361 3

Krok 3. Importujte náhodnú knižnicu

Budete to potrebovať na náhodné usporiadanie možných odpovedí.

947361 4
947361 4

Krok 4. Definujte triedu „QA“

„QA“bude pozostávať z otázky a správnej odpovede a zo zoznamu možných ďalších odpovedí. Funkcia _init _ () sa bude volať vždy, keď vytvoríte nový objekt QA s funkciou QA (), pričom jeho argumenty budú odovzdané do zodpovedajúceho atribútu. Typ:

trieda QA: def _init _ (self, question, correctAnswer, otherAnswers): self.question = question self.corrAnsw = correctAnswer self.otherAnsw = otherAnswers

947361 5
947361 5

Krok 5. Vytvorte zoznam QA

Zamyslite sa nad niektorými otázkami s jednou správnou a s niektorými nesprávnymi odpoveďami. Z každého vytvorte objekty QA a vložte ich do zoznamu. Keďže zoznam bude dosť dlhý, môžete ho pre lepšiu čitateľnosť rozdeliť na viac riadkov. To všetko sa deje pomocou nasledujúceho kódu (váš text sa môže líšiť):

qaList = [QA („Kde je Minsk?“, „v Bielorusku“, [„v Rusku“, „také mesto neexistuje“]), QA („Aké je hlavné mesto Austrálie?“, „Canberra“, [„Sydney“, „New York“, „Australia neexistuje“]), QA („Kto z nasledujúcich nie je na Zemi?“, „More pokoja“, [„Stredozemné more“, „Baltské more "," Severné more "]), QA (" Ktorý z nasledujúcich nie je kontinentom? "," Arctica ", [" Antarktída "," Amerika "]), QA (" Čo z nasledujúceho nie je africká krajina " ? "," Malajsie ", [" Madagaskar "," Džibuti "," Južná Afrika "," Zimbabwe "])]

947361 6
947361 6

Krok 6. Pridajte premennú, ktorá počíta, koľko odpovedí bolo správnych

Na začiatku ho nastavte na nulu. Pridajte riadok:

corrCount = 0

947361 7
947361 7

Krok 7. Náhodne premiešajte zoznam QA

Vaše otázky sa tak budú zobrazovať v náhodnom poradí. To sa deje s nasledujúcou funkciou:

random.shuffle (qaList)

947361 8
947361 8

Krok 8. Vytvorte slučku

Program by mal prejsť každou položkou zoznamu a niečo s tým urobiť. Vytvorte takú slučku s týmto výrazom:

pre qaItem v qaList:

947361 9
947361 9

Krok 9. Vytvorte výstup pre každú otázku

Za výraz slučky napíšte riadok:

tlač (qaItem.question)

947361 10
947361 10

Krok 10. Vytvorte všetky možné odpovede

Mali by byť uvedené v náhodnom poradí, aby správna odpoveď nebola vždy na rovnakom mieste. Tiež by malo byť pred nimi uvedené číslo, aby používateľ nemusel znova zadávať celú odpoveď. Nasledujúci kód to robí:

print ("Možné odpovede sú:") možné = qaItem.otherAnsw + [qaItem.corrAnsw] # hranaté zátvorky premenia správnu odpoveď na zoznam na zreťazenie s iným zoznamom random.shuffle (possible) count = 0 # indexy zoznamu začínajú na 0 v pythone zatiaľ čo count <len (možné): print (str (count + 1) + ":" + possible [count]) count + = 1

947361 11
947361 11

Krok 11. Vykonajte vstup používateľa

Najprv povedzte používateľovi, že musí zadať číslo svojho. Potom skontrolujte, či to, čo používateľ zadal, je skutočne číslo, ktoré zodpovedá odpovedi. Ak nie, povedzte to používateľovi znova. Použite tento kód (mimo cyklu while, ktorú ste vytvorili pre výstup):

print ("Zadajte číslo svojej odpovede:") userAnsw = vstup (), zatiaľ čo nie je userAnsw.isdigit (): print ("Nebolo to číslo. Zadajte číslo svojej odpovede:") userAnsw = vstup () userAnsw = int (userAnsw) while not (userAnsw> 0 and userAnsw <= len (possible)): print ("Toto číslo nezodpovedá žiadnej odpovedi. Zadajte číslo svojej odpovede:") userAnsw = vstup ()

947361 12
947361 12

Krok 12. Skontrolujte, či bola odpoveď používateľa správna

Za týmto účelom získajte text odpovede, pre ktorú používateľ zadal číslo, a porovnajte ho s textom správnej odpovede. Ak sú rovnaké, odpoveď používateľa bola správna a premenná corrCount by sa mala zvýšiť o 1. Inak je to nesprávne a používateľovi by mala byť oznámená správna odpoveď. Nakoniec vytlačte prázdny riadok, aby ste v ďalšej otázke vytvorili priestor. Zadajte nasledujúci kód:

ak je to možné [userAnsw-1] == qaItem.corrAnsw: print („Vaša odpoveď bola správna.“) corrCount + = 1 else: print („Vaša odpoveď bola nesprávna.“) print („Správna odpoveď bola:“+ qaItem. corrAnsw) tlač ("")

947361 13
947361 13

Krok 13. Vytvorte záver

Na konci chce používateľ pravdepodobne vedieť, koľko otázok správne položil. Povedzte im to teda pridaním nasledujúceho výrazu mimo cyklu for:

print ("Odpovedali ste" + str (corrCount) + "z" + str (len (qaList)) + "otázky správne.")

947361 14
947361 14

Krok 14. Skontrolujte svoj kód

Zvláštnu pozornosť venujte odsadeniu. Váš kompletný kód by teraz mal vyzerať takto:

importovať náhodnú triedu QA: def _init _ (self, question, correctAnswer, otherAnswers): self.question = question self.corrAnsw = correctAnswer self.otherAnsw = otherAnswers qaList = [QA ("Where is Minsk?", "in Belarus", [„v Rusku“, „také mesto neexistuje“]), QA („Aké je hlavné mesto Austrálie?“, „Canberra“, [„Sydney“, „New York“, „Austrália neexistuje“]), QA („Kto z nasledujúcich nie je na Zemi?“, „More ticha“, [„Stredozemné more“, „Baltské more“, „Severné more“]), QA („Čo z nasledujúceho nie je kontinent? “,„ Arctica “, [„ Antarktída “,„ Amerika “]), QA („ Kto z nasledujúcich nie je africkou krajinou? “,„ Malajzia “, [„ Madagaskar “,„ Djibouti “,„ Juh Afrika "," Zimbabwe "])] corrCount = 0 random.shuffle (qaList) pre qaItem v qaList: print (qaItem.question) print (" Možné odpovede sú: ") možné = qaItem.otherAnsw + [qaItem.corrAnsw] # hranaté zátvorky premenia správnu odpoveď na zoznam na zreťazenie s iným zoznamom random.shuffle (possible) count = 0 # indexy zoznamu začínajú na 0 i n python while count <len (possible): print (str (count + 1) + ":" + possible [count]) count + = 1 print ("Please enter the number of your answer:") userAnsw = input () zatiaľ čo nie je userAnsw.isdigit (): print („Nebolo to číslo. Zadajte číslo svojej odpovede: ") userAnsw = input () userAnsw = int (userAnsw), zatiaľ čo nie (userAnsw> 0 a userAnsw <= len (možné)): print (" Toto číslo nezodpovedá žiadnej odpovedi. " Zadajte číslo svojej odpovede: ") userAnsw = input () ak je to možné [userAnsw-1] == qaItem.corrAnsw: print (" Vaša odpoveď bola správna. ") CorrCount += 1 else: print (" Vaša odpoveď bola zle. ") print (" Správna odpoveď bola: " + qaItem.corrAnsw) print (" ") print (" Odpovedali ste " + str (corrCount) +" z " + str (len (qaList)) +" otázky správne. ")

947361 15
947361 15

Krok 15. Spustite kód

Ak používate IDE, kliknite na symbol „Spustiť“alebo položku ponuky. Ak používate textový editor, uložte program, zatvorte ho a otvorte ho v Pythone.

Tipy

  • Dávajte pozor na správne odsadenie. Kód vo funkcii alebo definícii triedy je odsadený, rovnako ako kód v slučke. Program Python s nesprávnym odsadením nebude fungovať.
  • Ak chcete hru prerušiť a nedokončiť, stlačte kombináciu klávesov Ctrl+C.
  • Ak nahradíte každé volanie input () volaním raw_input (), tento program bude fungovať v Pythone 2, ale prestane fungovať v Pythone 3.

Odporúča: