Com fer un joc de preguntes a Python (amb imatges)

Taula de continguts:

Com fer un joc de preguntes a Python (amb imatges)
Com fer un joc de preguntes a Python (amb imatges)

Vídeo: Com fer un joc de preguntes a Python (amb imatges)

Vídeo: Com fer un joc de preguntes a Python (amb imatges)
Vídeo: How To Install Python, Setup Virtual Environment VENV, Set Default Python System Path & Install Git 2024, Maig
Anonim

Si voleu aprendre Python, és bo començar amb alguns jocs senzills basats en text. Aquest article us mostrarà com fer un joc de preguntes.

Passos

947361 1
947361 1

Pas 1. Instal·leu Python si encara no ho heu fet

Hi ha dues versions principals de Python: Python 2 i Python 3. No són intercanviables i la compatibilitat amb Python 2 finalitzarà el 2020, de manera que aquest article suposarà que instal·leu Python 3.

947361 2
947361 2

Pas 2. Obriu un fitxer nou en un editor de text o el vostre IDE de Python

Poseu-li un nom descriptiu que acabi amb.py.

947361 3
947361 3

Pas 3. Importeu la biblioteca aleatòria

El necessitareu per organitzar a l'atzar les possibles respostes.

947361 4
947361 4

Pas 4. Definiu una classe "QA"

Un "QA" consistirà en una pregunta i una resposta correcta, i una llista d'altres possibles respostes. La funció _init _ () es cridarà cada vegada que creeu un objecte QA nou amb la funció QA (), i els seus arguments es transmetin a l'atribut corresponent. Tipus:

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

947361 5
947361 5

Pas 5. Creeu una llista de control de qualitat

Penseu en algunes preguntes amb respostes correctes i equivocades. Creeu objectes de qualitat a partir de cadascun i poseu-los en una llista. Com que la llista serà bastant llarga, podeu dividir-la en diverses línies per a una millor llegibilitat. Tot això es fa amb el codi següent (el vostre text pot ser diferent):

qaList = [QA ("On és Minsk?", "a Bielorússia", ["a Rússia", "aquesta ciutat no existeix"]), QA ("Quina és la capital d'Austràlia?", "Canberra", ["Sydney", "Nova York", "Austràlia no existeix"]), QA ("Quin dels següents no és a la Terra?", "Mar de tranquil·litat", ["Mar Mediterrani", "Mar Bàltic "," Mar del Nord "]), QA (" Quin dels següents no és un continent? "," Arctica ", [" Antàrtida "," Amèrica "]), QA (" Quin dels següents no és un país africà ? "," Malàisia ", [" Madagascar "," Djibouti "," Sud-àfrica "," Zimbabwe "])]

947361 6
947361 6

Pas 6. Afegiu una variable que expliqui quantes respostes han estat correctes

Establiu-lo a zero al principi. Afegiu la línia:

corrCount = 0

947361 7
947361 7

Pas 7. Barregeu la llista de control de qualitat

Això farà que les vostres preguntes apareguin en un ordre aleatori. Això es fa amb la següent funció:

random.shuffle (qaList)

947361 8
947361 8

Pas 8. Feu un bucle

El programa hauria de revisar cada element de la llista i fer-hi alguna cosa. Creeu aquest bucle amb aquesta expressió:

per a qaItem a qaList:

947361 9
947361 9

Pas 9. Envieu cada pregunta

Després de l'expressió de bucle, escriviu la línia:

imprimir (qaItem.question)

947361 10
947361 10

Pas 10. Envieu totes les respostes possibles

Han d'aparèixer en un ordre aleatori perquè la resposta correcta no estigui sempre a la mateixa posició. A més, hauran d’anar precedits d’un número perquè l’usuari no hagi de tornar a introduir tota la resposta. El codi següent ho fa:

print ("Les respostes possibles són:") possible = qaItem.otherAnsw + [qaItem.corrAnsw] # claudàtors converteixen la resposta correcta en llista per a la concatenació amb una altra llista random.shuffle (possible) count = 0 # índexs de llista que comencen per 0 a python while count <len (possible): print (str (count + 1) + ":" + possible [count]) count + = 1

947361 11
947361 11

Pas 11. Preneu l'entrada de l'usuari

Primer, digueu a l'usuari que ha d'introduir el número seu. A continuació, comproveu si el que ha introduït l'usuari és realment un número que correspon a una resposta. Si no és així, torneu-ho a informar. Utilitzeu aquest codi (fora del bucle while que heu creat per a la sortida):

print ("Introduïu el número de la vostra resposta:") userAnsw = input () mentre que no userAnsw.isdigit (): print ("No era un número. Introduïu el número de la vostra resposta:") userAnsw = input () userAnsw = int (userAnsw) mentre no (userAnsw> 0 i userAnsw <= len (possible)): print ("Aquest número no correspon a cap resposta. Introduïu el número de la vostra resposta:") userAnsw = input ()

947361 12
947361 12

Pas 12. Comproveu si la resposta de l'usuari era correcta

Per fer-ho, obteniu el text de la resposta per a la qual l'usuari ha introduït un número i compareu-lo amb el text de la resposta correcta. Si són iguals, la resposta de l'usuari va ser correcta i la variable corrCount s'hauria d'augmentar en 1. En cas contrari, és incorrecte i s'hauria de dir a l'usuari la resposta correcta. Finalment, imprimiu una línia buida per afegir espai a la següent pregunta. Introduïu el codi següent:

si és possible [userAnsw-1] == qaItem.corrAnsw: print ("La vostra resposta era correcta.") corrCount + = 1 else: print ("La vostra resposta era incorrecta.") print ("La resposta correcta era:" + qaItem. corrAnsw) print ("")

947361 13
947361 13

Pas 13. Emet una conclusió

Al final, és probable que l’usuari vulgui saber quantes preguntes ha encertat. Així que expliqueu-los afegint la següent expressió fora del bucle for:

print ("Heu respost" + str (corrCount) + "de" + str (len (qaList)) + "preguntes correctament.")

947361 14
947361 14

Pas 14. Comproveu el vostre codi

Presteu especial atenció a la sagnia. El vostre codi complet hauria de tenir aquest aspecte ara:

importació aleatòria de classe QA: def _init _ (self, question, correctAnswer, otherAnswers): self.question = question self.corrAnsw = correctAnswer self.otherAnsw = otherAnswers qaList = [QA ("On és Minsk?", "a Bielorússia", ["a Rússia", "aquesta ciutat no existeix"]), QA ("Quina és la capital d'Austràlia?", "Canberra", ["Sydney", "Nova York", "Austràlia no existeix"]), QA ("Quin dels següents no és a la Terra?", "Mar de la tranquil·litat", ["Mar Mediterrani", "Mar Bàltic", "Mar del Nord"]), QA ("Quin dels següents no és un continent? "," Arctica ", [" Antàrtida "," Amèrica "]), QA (" Quin dels següents no és un país africà? "," Malàisia ", [" Madagascar "," Djibouti "," Sud Àfrica "," Zimbabwe "])] corrCount = 0 random.shuffle (qaList) for qaItem in qaList: print (qaItem.question) print (" Les respostes possibles són: ") possible = qaItem.otherAnsw + [qaItem.corrAnsw] # els claudàtors converteixen la resposta correcta en llista per concatenar-la amb una altra llista random.shuffle (possible) count = 0 # índexs de llista que comencen per 0 i n python mentre que compte <len (possible): print (str (count + 1) + ":" + possible [count]) count + = 1 print ("Introduïu el número de la vostra resposta:") userAnsw = input () mentre no userAnsw.isdigit (): print ("No era un número. Introduïu el número de la vostra resposta: ") userAnsw = input () userAnsw = int (userAnsw) mentre no (userAnsw> 0 i userAnsw <= len (possible)): imprimeix (" Aquest número no correspon a cap resposta. Introduïu el número de la vostra resposta: ") userAnsw = input () si és possible [userAnsw-1] == qaItem.corrAnsw: print (" La vostra resposta era correcta. ") CorrCount + = 1 else: print (" La vostra resposta va ser incorrecte. ") print (" La resposta correcta va ser: "+ qaItem.corrAnsw) print (" ") print (" Has respost "+ str (corrCount) +" de "+ str (len (qaList)) +" preguntes correctament. ")

947361 15
947361 15

Pas 15. Executeu el codi

Si utilitzeu un IDE, feu clic al símbol "Executa" o a l'element del menú. Si utilitzeu un editor de text, deseu el programa, tanqueu-lo i obriu-lo amb Python.

Consells

  • Vigileu la sagnia correcta. El codi dins d'una definició de funció o classe està sagnat, igual que el codi dins d'un bucle. Un programa Python amb sagnat incorrecte no funcionarà.
  • Premeu Ctrl + C si voleu interrompre el joc i no acabar-lo.
  • Si substituïu totes les trucades d'entrada () per una trucada de raw_input (), aquest programa funcionarà a Python 2, però deixarà de funcionar a Python 3.

Recomanat: