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
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.
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.
Krok 3. Importujte náhodnú knižnicu
Budete to potrebovať na náhodné usporiadanie možných odpovedí.
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
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 "])]
Krok 6. Pridajte premennú, ktorá počíta, koľko odpovedí bolo správnych
Na začiatku ho nastavte na nulu. Pridajte riadok:
corrCount = 0
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)
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:
Krok 9. Vytvorte výstup pre každú otázku
Za výraz slučky napíšte riadok:
tlač (qaItem.question)
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
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 ()
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č ("")
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.")
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. ")
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.