В Python некоторые вещи неявно считаются False
для целей условного выражения, таких как цикл while
или оператор if
.Пустая строка - одна из тех вещей.Таким образом, когда вы передаете пустую строку в numQualify
, цикл while x
немедленно завершается, и, поскольку нет оператора return, он возвращает None
и None != False
.
.хотя на самом деле нужен цикл while!x
никогда не изменяется во время numQualify.На самом деле вы можете немного упростить numQualify
:
def numQualify(x):
try:
int(x)
except ValueError:
print("That was not a proper number.")
return False
print("Great number!")
return True
Теперь пустая строка входит в блок try и поэтому не имеет проблем.Поскольку у вас есть while numQualify(testNumber) == False:
цикл, вам не нужен цикл внутри numQualify