为什么循环不在collatz()
第一次返回1时结束
def collatz():
global number
if number % 2 == 0:
number = number // 2
print(number)
return number
else:
number = 3 * number + 1
print(number)
return number
try:
number = int(input('Please enter an integer except zero.\n'))
except ValueError:
print("ValueError: invalid value.")
number = int(input('You must enter an integer except zero.\n'))
while collatz() != 1: # if input(4), the output will be: 4 2 1 4 2 1
collatz()
# another way, which works:
while number != 1: --> # also input(4), the output will be: 4 2 1
collatz()
在第一个方法中,在每个循环中调用
collatz()
两次:while collatz() != 1:
中测试一次返回值。如果此时返回1,则退出循环李>while
行李>因此,当您输入4时,您的输出是:
你也可以这样写你的循环:
一点建议:
collatz()
函数将一个数字作为参数,并返回下一个值。把打印工作交给代码的其余部分李>您可以这样修改它,例如:
相关问题 更多 >
编程相关推荐