Estoy trabajando en un pequeño proyecto para la escuela y necesitamos establecer una dificultad entre 1 y 3, pero cuando alguien ingresa un número incorrecto, recibe una línea que dice por favor elija entre 1 y 3, pero la pregunta debería repetirse, ahora el código solo termina cuando ingresa un número incorrecto.
difficulty = int(input("Difficulty: "))
while 0 > difficulty > 4:
print("This is not a valid difficulty, please choose 1, 2 or 3")
difficulty = int(input("Difficulty: "))
if 0 < difficulty < 4:
print("The playing board was created with difficulty: " + str(difficulty))
4 respuestas
El ciclo while 0 > difficulty > 4
nunca se ejecuta, ya que esa condición siempre se evalúa como False
, ya que 0 > 4
es False
, por lo tanto, reestructuraría el ciclo while como while difficulty > 4 or difficulty < 0:
, que comprueba si la dificultad es menor que 0, o mayor que 4, también como señaló @deceze, if
no es necesaria ya que la condición solo golpea cuando nos aseguramos de que nuestra dificultad esté entre 0 y 4, excluyendo 0 y 4
Entonces la respuesta cambia a
difficulty = int(input("Difficulty: "))
#Check if difficulty is less than 0, or greater than 4
while difficulty < 0 or difficulty > 4:
print("This is not a valid difficulty, please choose 1, 2 or 3")
difficulty = int(input("Difficulty: "))
print("The playing board was created with difficulty: " + str(difficulty))
La salida se verá como
Difficulty: -1
This is not a valid difficulty, please choose 1, 2 or 3
Difficulty: 5
This is not a valid difficulty, please choose 1, 2 or 3
Difficulty: 2
The playing board was created with difficulty: 2
Otra forma de escribir el ciclo while es que debemos asegurarnos de que si la entrada es menor que 0 o mayor que 4, queremos seguir ejecutando el ciclo, que en realidad se puede lograr con while not 0 < difficulty < 4:
Entonces la respuesta se cambiará a
difficulty = int(input("Difficulty: "))
#Check if difficulty is less than 0, or greater than 4
while not 0 < difficulty < 4:
print("This is not a valid difficulty, please choose 1, 2 or 3")
difficulty = int(input("Difficulty: "))
print("The playing board was created with difficulty: " + str(difficulty))
Prueba así:
difficulty = int(input("Enter input :"))
while difficulty<1 or difficulty>3:
difficulty = int(input("Enter input between 1 and 3 :"))
print("correct input:",difficulty)
¡Prueba con un poco de recursión!
def getDiff():
difficulty = int(input("Difficulty: "))
if 0 < difficulty < 4:
print("The playing board was created with difficulty: " + str(difficulty))
return
else:
print("This is not a valid difficulty, please choose 1, 2 or 3")
getDiff()
getDiff()
Editar
Dificultad de regreso
def getDiff():
difficulty = int(input("Difficulty: "))
if 0 < difficulty < 4:
print("The playing board was created with difficulty: " + str(difficulty))
return difficulty
else:
print("This is not a valid difficulty, please choose 1, 2 or 3")
getDiff()
difficulty = getDiff()
"Mientras la dificultad está por debajo de 0 y la dificultad está por encima de 4" nunca puede ser cierto, ya que no hay un número que sea simultáneamente menor que 0 y mayor que 4. La forma más fácil de formatear la condición es utilizando un { {X0}}:
difficulty = int(input("Difficulty: "))
while difficulty not in range(1, 4):
print("This is not a valid difficulty, please choose 1, 2 or 3")
difficulty = int(input("Difficulty: "))
print("The playing board was created with difficulty: " + str(difficulty))
También puede omitir if
, ya que el ciclo ya garantiza que el valor esté dentro de un rango válido; No es necesario verificar de nuevo.
Preguntas relacionadas
Nuevas preguntas
python
Python es un lenguaje de programación multipropósito, de tipificación dinámica y de múltiples paradigmas. Está diseñado para ser rápido de aprender, comprender y usar, y hacer cumplir una sintaxis limpia y uniforme. Tenga en cuenta que Python 2 está oficialmente fuera de soporte a partir del 01-01-2020. Aún así, para preguntas de Python específicas de la versión, agregue la etiqueta [python-2.7] o [python-3.x]. Cuando utilice una variante de Python (por ejemplo, Jython, PyPy) o una biblioteca (por ejemplo, Pandas y NumPy), inclúyala en las etiquetas.