Python第33讲课后题,求解惑
Python中,33讲第二题,为什么我的代码运行后,给一个非整数,就回一直无休止的打印您输入的不是整数,而答案运行后,只会打印一次?好像在循环部分我的和答案一样啊。def int_input(num):
while True:
try:
int(num)
break
except ValueError:
print('您输入的不是整数!')
num = input('请输入一个整数:')
int_input(num) 本帖最后由 Twilight6 于 2020-7-13 12:48 编辑
给一个非整数,就回一直无休止的打印您输入的不是整数?
因为你输入的 num 非整数会导致 int 报错,而不会执行到 break,而继续开始下次循环,继续报错,继续开始下次循环,继续报错......
这样?只需要打印一次的话判断完直接 break 就好了:
def int_input(num):
while True:
try:
int(num)
print('你输入的是整数!')
except ValueError:
print('您输入的不是整数!')
break
num = input('请输入一个整数:')
int_input(num)
这样也行,只有在你输入为整数时候退出循环:
def int_input():
while True:
num = input('请输入一个整数:')
try:
int(num)
print('你输入的是整数!')
break
except ValueError:
print('您输入的不是整数!')
int_input()
页:
[1]