求助一个函数的问题!!!!!
写的一个函数,代码如下:def collatz():
print('请输入一个正整数:')
try :
number=int(input())
except :
print ("你必须输入正整数!!!")
while True:
if number ==1:
print('Collatz序列结束')
break
elif number%2==0:
number=number//2
print(number)
else:
number=3*number+1
print(number)
collatz()
问题:当输入0或者负数的时候,函数就无限循环,怎么限制输入的数是大于0的? 把try...except改成
while True:
tmp = input()
if tmp.isdigit() and int(tmp)>0:
number = int(tmp)
break
else:
print('您的输入有误,请重新输入:',end="") 本帖最后由 Niong 于 2018-5-17 09:49 编辑
BngThea 发表于 2018-5-17 09:40
把try...except改成
可以,但是要求是使用try...except,还是谢谢你了,大佬!{:5_109:} 用try的程序:
def collatz():
number = -1
while number <= 0:
print('请输入一个正整数:')
try :
number=int(input())
if number <= 0:
raise ValueError
except ValueError:
print ("你必须输入正整数!!!")
while True:
if number ==1:
print('Collatz序列结束')
break
elif number%2==0:
number=number//2
print(number)
else:
number=3*number+1
print(number)
collatz() 冬雪雪冬 发表于 2018-5-17 09:50
用try的程序:
好的,学到了,谢谢大佬!{:5_109:}
页:
[1]