看你的程序是Python3.x。
注意,python3.x 里 input() 默认接收到的是 str 类型,相当于 Python2.x 中的 raw_input(),raw_input() 在Python3.x中已经去除。
而在 Python2中 input() 相等于 eval(raw_input(prompt)) ,用来获取控制台的输入。input() 在对待纯数字输入时具有自己的特性,它返回所输入的数字的类型( int, float )。
比如在Python3.x 中,
>>>a = input()
1
>>>type(a)
说明无论你怎么输入,a都是str类型。
而在Python2.x中,
>>>a = input()
1
>>>type(a)
因此,如果在Python3.x环境中,我建议你把程序修改为以下形式,
temp = input('请输入数字:')
while not temp.isdigit():
print('抱歉, 输入不合法,',end='')
temp = input('请输入一个整数:')