collatz 序列无限循环错误
collatz sequence infinte loop error
我遇到了无限循环。我不确定如何将结果转换为新的数字变量并将其放回 while 循环中。
#Collatz squence
import sys
def collatz():
try:
print('Enter a number')
number = int(input())
except:
ValueError
print('Please type an integer')
while number != 1:
if number %2 == 0:
result = number//2
print(result)
elif number %2 == 1:
result = 3*number + 1
print(result)
**result = number**
while number == 1:
print ('You have arrived at the number itself')
sys.exit()
collatz()
以下作品:
#Collatz squence
import sys
def collatz():
try:
print('Enter a number')
number = int(input())
except ValueError:
print('Please type an integer')
sys.exit(1)
while number != 1:
if number %2 == 0:
result = number//2
print(result)
elif number %2 == 1:
result = 3*number + 1
print(result)
number = result # set the number to the result
while number == 1:
print ('You have arrived at the number itself')
sys.exit()
collatz()
请注意,我将数字设置为结果,在您的代码中,数字从未改变,因此不断重复访问相同的代码块。我还在异常中添加了一个 sys.exit 调用,如果有人输入了错误的值,我们不想继续。
我遇到了无限循环。我不确定如何将结果转换为新的数字变量并将其放回 while 循环中。
#Collatz squence
import sys
def collatz():
try:
print('Enter a number')
number = int(input())
except:
ValueError
print('Please type an integer')
while number != 1:
if number %2 == 0:
result = number//2
print(result)
elif number %2 == 1:
result = 3*number + 1
print(result)
**result = number**
while number == 1:
print ('You have arrived at the number itself')
sys.exit()
collatz()
以下作品:
#Collatz squence
import sys
def collatz():
try:
print('Enter a number')
number = int(input())
except ValueError:
print('Please type an integer')
sys.exit(1)
while number != 1:
if number %2 == 0:
result = number//2
print(result)
elif number %2 == 1:
result = 3*number + 1
print(result)
number = result # set the number to the result
while number == 1:
print ('You have arrived at the number itself')
sys.exit()
collatz()
请注意,我将数字设置为结果,在您的代码中,数字从未改变,因此不断重复访问相同的代码块。我还在异常中添加了一个 sys.exit 调用,如果有人输入了错误的值,我们不想继续。