Я пытаюсь создать игру в кости, первое, что я хочу сделать, - это указать пользователю, сколько сторон у кости. Затем я хочу проверить, что он составляет от 2 до 20 включительно, и если он недействителен, отобразить сообщение об ошибке и снова запросить ввод, пока он не будет действительным.
Кажется, что он всегда не принимает первый вход независимо от того, действителен ли он / недействителен, а затем принимает 2-й вход, даже если он не действителен
Выход ниже
face = int( input( "how many sides does your dice have? enter number between 2-20 inclusive: "))
validNumber = [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
while face != validNumber:
# print error message
print("Im Sorry, Please enter a valid positive integer and try again")
# ask for input again
number_of_faces = int(input("How many sides do your dice have? Must be between 2 and 20 inclusive: "))
break
print("Continuing with rest of program")
Вывод:
сколько сторон у вашей кости? введите число от 2 до 20 включительно: 2 Im Извините, пожалуйста, введите действительное положительное целое число и повторите попытку. Сколько сторон у вашей кости? Должно быть от 2 до 20 включительно: 3 Продолжая с остальной частью программы
test2 сколько сторон у вашей кости? введите число от 2 до 20 включительно: 21 Im Извините, пожалуйста, введите действительное положительное целое число и повторите попытку. Сколько сторон у вашей кости? Должно быть от 2 до 20 включительно: 22 Продолжая с остальной частью программы
test3
сколько сторон у вашей кости? введите число от 2 до 20 включительно: 5 Im Извините, пожалуйста, введите действительное положительное целое число и повторите попытку. Сколько сторон у вашей кости? Должно быть от 2 до 20 включительно: 6 Продолжение с остальной частью программы