Kā izveidot viktorīnas spēli Python (ar attēliem)

Satura rādītājs:

Kā izveidot viktorīnas spēli Python (ar attēliem)
Kā izveidot viktorīnas spēli Python (ar attēliem)

Video: Kā izveidot viktorīnas spēli Python (ar attēliem)

Video: Kā izveidot viktorīnas spēli Python (ar attēliem)
Video: Kā izveidot e-adresi fiziskai personai 2024, Aprīlis
Anonim

Ja vēlaties apgūt Python, ieteicams sākt ar dažām vienkāršām teksta spēlēm. Šis raksts parādīs, kā izveidot viktorīnas spēli.

Soļi

947361 1
947361 1

1. solis. Instalējiet Python, ja vēl neesat to izdarījis

Pastāv divas galvenās Python versijas: Python 2 un Python 3. Tās nav savstarpēji aizvietojamas, un Python 2 atbalsts beigsies 2020. gadā, tāpēc šajā rakstā tiks pieņemts, ka instalējat Python 3.

947361 2
947361 2

2. solis. Atveriet jaunu failu teksta redaktorā vai savā Python IDE

Piešķiriet tam aprakstošu nosaukumu, kas beidzas ar.py.

947361 3
947361 3

3. darbība. Importējiet izlases bibliotēku

Jums tas būs nepieciešams, lai nejauši sakārtotu iespējamās atbildes.

947361 4
947361 4

Solis 4. Definējiet klasi "QA"

"QA" sastāvēs no jautājuma un pareizas atbildes un iespējamo citu atbilžu saraksta. Funkcija _init _ () tiks izsaukta ikreiz, kad izveidosit jaunu kvalitātes nodrošināšanas objektu ar funkciju QA (), un tā argumenti tiks nodoti attiecīgajā atribūtā. Tips:

QA klase: def _init _ (self, question, correctAnswer, otherAnswers): self.question = jautājums self.corrAnsw = correctAnswer self.otherAnsw = otherAnswers

947361 5
947361 5

5. solis. Izveidojiet QA sarakstu

Padomājiet par dažiem jautājumiem ar vienu pareizu un dažām nepareizām atbildēm. No katra izveidojiet kvalitātes nodrošināšanas objektus un ievietojiet tos sarakstā. Tā kā saraksts būs diezgan garš, varat to sadalīt vairākās rindās, lai būtu vieglāk lasīt. Tas viss tiek darīts, izmantojot šādu kodu (jūsu teksts var būt atšķirīgs):

qaList = [QA ("Kur atrodas Minska?", "Baltkrievijā", ["Krievijā", "šāda pilsēta nepastāv"]), QA ("Kas ir Austrālijas galvaspilsēta?", "Kanbera", ["Sidneja", "Ņujorka", "Austrālija neeksistē"]), QA ("Kurš no šiem nav uz Zemes?", "Klusuma jūra", ["Vidusjūra", "Baltijas jūra") "," Ziemeļjūra "]), QA (" Kurš no šiem nav kontinents? "," Arktika ", [" Antarktīda "," Amerika "]), QA (" Kura no šīm valstīm nav Āfrikas valsts? ? "," Malaizija ", [" Madagaskara "," Džibutija "," Dienvidāfrika "," Zimbabve "]

947361 6
947361 6

6. solis. Pievienojiet mainīgo, kas saskaita pareizo atbilžu skaitu

Sākumā iestatiet to uz nulli. Pievienojiet rindu:

corrCount = 0

947361 7
947361 7

7. solis. Sajaukt QA sarakstu

Tādējādi jūsu jautājumi parādīsies nejaušā secībā. Tas tiek darīts ar šādu funkciju:

random.shuffle (qaList)

947361 8
947361 8

8. solis. Izveidojiet cilpu

Programmai vajadzētu izskatīt katru saraksta vienumu un kaut ko darīt ar to. Izveidojiet šādu cilpu ar šo izteiksmi:

qaItem qaList:

947361 9
947361 9

9. solis. Izejiet katru jautājumu

Pēc cilpas izteiksmes uzrakstiet rindu:

drukāt (qaItem.question)

947361 10
947361 10

10. solis. Izdodiet visas iespējamās atbildes

Tiem vajadzētu parādīties nejaušā secībā, lai pareizā atbilde ne vienmēr atrastos vienā pozīcijā. Turklāt tiem jābūt ievadītiem ar ciparu, lai lietotājam nebūtu jāievada visa atbilde vēlreiz. Sekojošais kods to dara:

print ("Iespējamās atbildes ir:") iespējams = qaItem.otherAnsw + [qaItem.corrAnsw] # kvadrātiekavas pārvērst pareizo atbildi par sarakstu, lai to savienotu ar citu sarakstu random.shuffle (iespējams) count = 0 # saraksta indeksi sākas ar 0 python kamēr skaits <len (iespējams): print (str (skaits + 1) + ":" + iespējams [skaits]) skaits + = 1

947361 11
947361 11

Solis 11. Pieņemiet lietotāja ievadīto informāciju

Vispirms pasakiet lietotājam, ka viņam jāievada sava numura numurs. Pēc tam pārbaudiet, vai lietotāja ievadītais tiešām ir skaitlis, kas atbilst atbildei. Ja tā nav, pastāstiet lietotājam vēlreiz. Izmantojiet šo kodu (ārpus izvadei izveidotā cikla cikla):

print ("Lūdzu, ievadiet atbildes numuru:") userAnsw = input (), kamēr nav userAnsw.isdigit (): print ("Tas nebija skaitlis. Lūdzu, ievadiet savas atbildes numuru:") userAnsw = input () userAnsw = int (userAnsw), kamēr nav (userAnsw> 0 un userAnsw <= len (iespējams)): print ("Šis numurs neatbilst nevienai atbildei. Lūdzu, ievadiet savas atbildes numuru:") userAnsw = input ()

947361 12
947361 12

12. solis. Pārbaudiet, vai lietotāja atbilde bija pareiza

Lai to izdarītu, iegūstiet atbildes tekstu, kuram lietotājs ievadīja numuru, un salīdziniet to ar pareizās atbildes tekstu. Ja tie ir vienādi, lietotāja atbilde bija pareiza, un mainīgais corrCount jāpalielina par 1. Citādi tas ir nepareizi un lietotājam jāpasaka pareizā atbilde. Visbeidzot, izdrukājiet tukšu rindu, lai nākamajam jautājumam pievienotu vietu. Ievadiet šādu kodu:

ja iespējams [userAnsw-1] == qaItem.corrAnsw: print ("Jūsu atbilde bija pareiza.") corrCount + = 1 else: print ("Jūsu atbilde bija nepareiza.") print ("Pareizā atbilde bija:" + qaItem.) corrAnsw) print ("")

947361 13
947361 13

13. solis. Izdariet secinājumu

Galu galā lietotājs, iespējams, vēlas uzzināt, cik daudz jautājumu viņi ir pareizi. Tāpēc pastāstiet viņiem, pievienojot šādu izteiksmi ārpus for-loop:

print ("Jūs atbildējāt" + str (corrCount) + "no" + str (len (qaList)) + "jautājumi pareizi.")

947361 14
947361 14

14. darbība. Pārbaudiet savu kodu

Pievērsiet īpašu uzmanību ievilkumam. Jūsu pilnīgam kodam tagad vajadzētu izskatīties šādi:

importēt izlases klases QA: def _init _ (self, question, correctAnswer, otherAnswers): self.question = question self.corrAnsw = correctAnswer self.otherAnsw = otherAnswers qaList = [QA ("Kur atrodas Minska?", "Baltkrievijā", ["Krievijā", "šāda pilsēta nepastāv"]), QA ("Kas ir Austrālijas galvaspilsēta?", "Kanbera", ["Sidneja", "Ņujorka", "Austrālija neeksistē")]), QA ("Kurš no šiem nav uz Zemes?", "Klusuma jūra", ["Vidusjūra", "Baltijas jūra", "Ziemeļjūra"]), QA ("Kurš no šiem nav kontinents? "," Arktika ", [" Antarktīda "," Amerika "]), QA (" Kura no šīm valstīm nav Āfrikas valsts? "," Malaizija ", [" Madagaskara "," Džibutija "," Dienvidi " Africa "," Zimbabwe "])] corrCount = 0 random.shuffle (qaList) for qaItem in qaList: print (qaItem.question) print (" Iespējamās atbildes ir: ") iespējams = qaItem.otherAnsw + [qaItem.corrAnsw] # kvadrātiekavas pārvērš pareizo atbildi sarakstā, lai to savienotu ar citu nejaušu sarakstu. sajaukums (iespējams) skaits = 0 # saraksta indeksi sākas ar 0 n python, kamēr skaits <len (iespējams): print (str (skaits + 1) + ":" + iespējams [skaits]) skaits + = 1 drukāt ("Lūdzu, ievadiet atbildes numuru:") userAnsw = input () kamēr nav userAnsw.isdigit (): print ("Tas nebija skaitlis. Lūdzu, ievadiet savas atbildes numuru: ") userAnsw = input () userAnsw = int (userAnsw), kamēr nav (userAnsw> 0 un userAnsw <= len (iespējams)): print (" Šis numurs neatbilst nevienai atbildei. Lūdzu, ievadiet savas atbildes numuru: ") userAnsw = input () ja iespējams [userAnsw-1] == qaItem.corrAnsw: print (" Jūsu atbilde bija pareiza. ") CorrCount += 1 cits: print (" Jūsu atbilde bija nepareizi. ") print (" Pareizā atbilde bija: " + qaItem.corrAnsw) print (" ") print (" Jūs atbildējāt " + str (corrCount) +" no " + str (len (qaList)) +" jautājumi pareizi. ")

947361 15
947361 15

Solis 15. Palaidiet kodu

Ja izmantojat IDE, noklikšķiniet uz simbola "Palaist" vai izvēlnes vienuma. Ja izmantojat teksta redaktoru, saglabājiet programmu, aizveriet redaktoru un atveriet programmu, izmantojot Python.

Padomi

  • Uzmanieties no pareizas atkāpes. Funkcijas vai klases definīcijas kods ir ievilkts, tāpat kā kods cilpas iekšpusē. Python programma ar nepareizu atkāpi nedarbosies.
  • Nospiediet Ctrl+C, ja vēlaties pārtraukt spēli un to nepabeigt.
  • Ja katru ievades () zvanu aizstājat ar raw_input () zvanu, šī programma darbosies Python 2, bet pārtrauks darbu Python 3.

Ieteicams: