Si desea aprender Python, es bueno comenzar con algunos juegos simples basados en texto. Este artículo le mostrará cómo hacer un juego de preguntas.
Pasos
Paso 1. Instale Python si aún no lo ha hecho
Hay dos versiones principales de Python: Python 2 y Python 3. No son intercambiables y el soporte para Python 2 finalizará en 2020, por lo que este artículo asumirá que instalas Python 3.
Paso 2. Abra un nuevo archivo en un editor de texto o en su IDE de Python
Déle un nombre descriptivo que termine en.py.
Paso 3. Importe la biblioteca aleatoria
Lo necesitará para organizar aleatoriamente las posibles respuestas.
Paso 4. Defina una clase "QA"
Un "QA" consistirá en una pregunta y una respuesta correcta, y una lista de posibles otras respuestas. La función _init _ () se llamará siempre que cree un nuevo objeto QA con la función QA (), y sus argumentos se pasarán al atributo correspondiente. Escribe:
class QA: def _init _ (self, question, correctAnswer, otherAnswers): self.question = pregunta self.corrAnsw = correctAnswer self.otherAnsw = otherAnswers
Paso 5. Cree una lista de controles de calidad
Piense en algunas preguntas con una respuesta correcta y otras incorrectas. Cree objetos de control de calidad a partir de cada uno y colóquelos en una lista. Dado que la lista será bastante larga, puede dividirla en varias líneas para una mejor legibilidad. Todo esto se hace con el siguiente código (su texto podría ser diferente):
qaList = [QA ("¿Dónde está Minsk?", "en Bielorrusia", ["en Rusia", "una ciudad así no existe"]), QA ("¿Cuál es la capital de Australia?", "Canberra", ["Sydney", "Nueva York", "Australia no existe"]), QA ("¿Cuál de los siguientes no está en la Tierra?", "Mar de la Tranquilidad", ["Mar Mediterráneo", "Mar Báltico "," Mar del Norte "]), QA (" ¿Cuál de los siguientes no es un continente? "," Ártico ", [" Antártida "," América "]), QA (" ¿Cuál de los siguientes no es un país africano? ? "," Malasia ", [" Madagascar "," Djibouti "," Sudáfrica "," Zimbabwe "])]
Paso 6. Agregue una variable que cuente cuántas respuestas fueron correctas
Póngalo en cero al principio. Agrega la línea:
corrCount = 0
Paso 7. Mezcle la lista de control de calidad
Esto hará que sus preguntas aparezcan en un orden aleatorio. Esto se hace con la siguiente función:
random.shuffle (qaList)
Paso 8. Haz un bucle
El programa debe repasar cada elemento de la lista y hacer algo con él. Crea un ciclo de este tipo con esta expresión:
para qaItem en qaList:
Paso 9. Envíe cada pregunta
Después de la expresión de bucle, escribe la línea:
imprimir (qaItem.question)
Paso 10. Genere todas las respuestas posibles
Deben aparecer en un orden aleatorio para que la respuesta correcta no siempre esté en la misma posición. Además, deben estar precedidos por un número para que el usuario no tenga que ingresar la respuesta completa nuevamente. El siguiente código hace esto:
print ("Las respuestas posibles son:") posible = qaItem.otherAnsw + [qaItem.corrAnsw] # los corchetes convierten la respuesta correcta en una lista para la concatenación con otra lista random.shuffle (posible) count = 0 # los índices de la lista comienzan en 0 en Python while count <len (posible): print (str (count + 1) + ":" + posible [count]) count + = 1
Paso 11. Tome la entrada del usuario
Primero, dígale al usuario que debe ingresar el número de su. Luego, verifique si lo que ingresó el usuario es realmente un número que se corresponde con una respuesta. Si no es así, dígaselo al usuario nuevamente. Use este código (fuera del bucle while que creó para la salida):
print ("Ingresa el número de tu respuesta:") userAnsw = input () while not userAnsw.isdigit (): print ("Ese no era un número. Ingresa el número de tu respuesta:") userAnsw = input () userAnsw = int (userAnsw) while not (userAnsw> 0 y userAnsw <= len (posible)): print ("Ese número no corresponde a ninguna respuesta. Ingresa el número de tu respuesta:") userAnsw = input ()
Paso 12. Verifique si la respuesta del usuario fue correcta
Para ello, obtenga el texto de la respuesta para la cual el usuario ingresó un número y compárelo con el texto de la respuesta correcta. Si son iguales, la respuesta del usuario fue correcta y la variable corrCount debería incrementarse en 1. De lo contrario, está mal y se le debería decir al usuario la respuesta correcta. Finalmente, imprima una línea vacía para agregar algo de espacio a la siguiente pregunta. Ingrese el siguiente código:
si es posible [userAnsw-1] == qaItem.corrAnsw: print ("Tu respuesta fue correcta") corrCount + = 1 else: print ("Tu respuesta fue incorrecta") print ("La respuesta correcta fue:" + qaItem. corrAnsw) print ("")
Paso 13. Genere una conclusión
Al final, el usuario probablemente quiera saber cuántas preguntas ha respondido correctamente. Entonces dígales agregando la siguiente expresión fuera del bucle for:
print ("Respondiste" + str (corrCount) + "de" + str (len (qaList)) + "preguntas correctamente.")
Paso 14. Verifique su código
Preste especial atención a la sangría. Su código completo debería verse así ahora:
import random class QA: def _init _ (self, question, correctAnswer, otherAnswers): self.question = pregunta self.corrAnsw = correctAnswer self.otherAnsw = otherAnswers qaList = [QA ("¿Dónde está Minsk?", "en Bielorrusia", ["en Rusia", "esa ciudad no existe"]), QA ("¿Cuál es la capital de Australia?", "Canberra", ["Sydney", "Nueva York", "Australia no existe"]), QA ("¿Cuál de los siguientes no está en la Tierra?", "Mar de la tranquilidad", ["Mar Mediterráneo", "Mar Báltico", "Mar del Norte"]), QA ("¿Cuál de los siguientes no es un continente? "," Ártico ", [" Antártida "," América "]), QA (" ¿Cuál de los siguientes no es un país africano? "," Malasia ", [" Madagascar "," Djibouti "," Sur Africa "," Zimbabwe "])] corrCount = 0 random.shuffle (qaList) for qaItem in qaList: print (qaItem.question) print (" Las posibles respuestas son: ") possible = qaItem.otherAnsw + [qaItem.corrAnsw] # los corchetes convierten la respuesta correcta en una lista para concatenarla con otra lista aleatoria. aleatoria (posible) cuenta = 0 # los índices de la lista comienzan en 0 i n python while count <len (posible): print (str (count + 1) + ":" + posible [count]) count + = 1 print ("Ingresa el número de tu respuesta:") userAnsw = input () while not userAnsw.isdigit (): print ("Eso no era un número. Ingrese el número de su respuesta: ") userAnsw = input () userAnsw = int (userAnsw) mientras que no (userAnsw> 0 y userAnsw <= len (posible)): print (" Ese número no corresponde a ninguna respuesta. Ingrese el número de su respuesta: ") userAnsw = input () si es posible [userAnsw-1] == qaItem.corrAnsw: print (" Su respuesta fue correcta ") corrCount + = 1 else: print (" Su respuesta fue incorrecto. ") print (" La respuesta correcta fue: "+ qaItem.corrAnsw) print (" ") print (" Respondiste "+ str (corrCount) +" of "+ str (len (qaList)) +" preguntas correctamente. ")
Paso 15. Ejecute el código
Si está utilizando un IDE, haga clic en el símbolo o elemento de menú "Ejecutar". Si está utilizando un editor de texto, guarde su programa, cierre el editor y abra su programa con Python.
Consejos
- Tenga cuidado con la sangría correcta. El código dentro de una función o definición de clase tiene sangría, al igual que el código dentro de un bucle. Un programa de Python con una sangría incorrecta no funcionará.
- Presione Ctrl + C si desea interrumpir el juego y no terminarlo.
- Si reemplaza cada llamada de input () con una llamada de raw_input (), este programa funcionará en Python 2, pero dejará de funcionar en Python 3.