Выражение age.isdigit()
не не возвращает число.Возвращает либо True
, либо False
.Поэтому условие age != age.isdigit()
сравнивает строковое значение в age
с логическим значением True
или False
, и это никогда не оценивается как истинное.
Если вы хотите, чтобы циклпродолжить, пока age не является целочисленной строкой значения, вы можете использовать while not age.isdigit()
.
Вы можете также написать это следующим образом:
while true:
age = input("What's your age? ")
if age.isdigit():
break
age = int(age)
, который, как мне кажется, легче понять, посколькувам не нужно повторять запрос ввода, и вы не используете отрицательное условие.