|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
题目要求:2. 尝试一个新的函数 int_input(),当用户输入整数的时候正常返回,否则提示出错并要求重新输入。
我的代码:
def A(num):
while True:
try:
if num == int():
print(num, '输入正确')
break
except ValueError:
print('请重新输入')
num = input('请输入一个整数')
print(A(num)
运行一直没反应,不明白是哪里出错了。。
- def A(num):
- while True:
- try:
- if num == int(): #int()的值是0,而num是input传入的字符串,永远都不会相等,会跳过中间的内容,又没有触发错误,所以下一步是重新回到while True,不会运行break,这就是一个死循环。
- print(num, '输入正确')
- break
- except ValueError:
- print('请重新输入')
- num = input('请输入一个整数')
- print(A(num)
复制代码
然后谈谈你的思路,你在函数里只有判断,没有输入,结果就是输入错误的时候,print了'请重新输入',然后While True,然有又循环,不停打印。所以正确的做法要么在函数的循环里input,要么在程序主体里循环,函数只判读。
方案1:
- def A():
- while True:
- num = input('请输入一个整数:')
- try:
- num = int(num)
- except ValueError:
- print('请重新输入!')
- else:
- print(num, '输入正确!')
- break
- return num
- print(A())
复制代码
方案2:
- def A(num):
- try:
- num = int(num)
- except ValueError:
- print('请重新输入!')
- return False
- else:
- print(num, '输入正确!')
- return num
- while True:
- num = input('请输入一个整数:')
- a=A(num)
- if a==False:
- continue
- else:
- print(a)
- break
复制代码
|
|