ошибка типа возникает при повторном ответе на цикл while - PullRequest
0 голосов
/ 12 февраля 2020

В моей программе пользователя просят ввести значение для N. Это мой бит кода, в котором я застреваю:

        while (N > 23 or N < 1): 
            N= input ("Choose a number between 1 and 23")

Когда я впервые предоставляю ввод N от 1 до 23, программа переходит к следующему шагу, как и должно быть. И когда я даю неправильный ответ, например, 24, программа выводит «выберите число от 1 до 23». но когда я ТОГДА ввожу действительный ввод, такой как 5, терминал говорит следующее:

How high is your pyramyd? 40
Choose a number between 1 and 23 3
Traceback (most recent call last):
  File "pyramyd.py", line 6, in <module>
    while (N > 23 or N < 1):
TypeError: '>' not supported between instances of 'str' and 'int'

Что это значит и как мне это решить? Я хочу, чтобы это был al oop, который запрашивает у меня ввод данных до тех пор, пока я не предоставлю правильный ввод, а затем переходит к следующей команде.

Ответы [ 2 ]

1 голос
/ 12 февраля 2020

В данный момент вы вводите строку. Это должно быть целое число.

N= int(input("Choose a number between 1 and 23"))
0 голосов
/ 12 февраля 2020

Независимо от того, что вы вводите, вводится как string. Это то, что ошибка также указывает, что вы пытаетесь сравнить string с int.

Попробуйте это:

while (N > 23 or N < 1): 
    N= input ("Choose a number between 1 and 23")
    N = int(N)

...