Как уже говорилось в комментариях, код преобразуется в "int" и поэтому не работаетЯ часто использую что-то вроде функции ниже. Он всегда может вернуть int, какой бы ни была строка. Или может вернуть что-то еще, если выполняется блок исключений.
def to_int(string, fail = 0):
try:
return int(string)
except ValueError:
return fail
Использование:
v = to_int(entry.get(), fail = None)
if v is None:
run_notint()
else:
run_is_int()
Я считаю, что простого возврата нуля достаточно во многих ситуациях, и в этом случае if: else:не требуется.
v = to_int(entry.get())
... code to process the integer.