我在这里有一个非常简单的问题,但不知道如何解决它,因为我是Python的新手。 我正在编写一个代码来使用if循环进行计算,并希望看到每个循环生成的所有结果。但是,通过运行下面的当前代码,它只显示最终结果,应为1。 任何人都可以指出问题并纠正它吗?
n=int(raw_input("Enter a number: "))
while n !=1:
if n % 2 ==0:
n=n/2
else:
n=n*3+1
print n
以上代码的问题正在编写如下: 给定整数n≥1,如果n为偶数,则除以2.如果n为奇数,则乘以3并加1.以新值n重复此过程。据人们所知,这总是以n = 1结束 例如: 输入一个数字:22 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
答案 0 :(得分:2)
Python基于缩进工作,如果你已经使用其他语言进行编程,那么你可能不会遇到这种情况。如果你没有正确地缩进你的代码,Python就不会理解。
n=int(raw_input("Enter a number: "))
while n !=1:
if n % 2 ==0:
n=n/2
else:
n=n*3+1
print n
将运行while循环,最后打印出你所说的最终答案。
另一方面,
n=int(raw_input("Enter a number: "))
while n !=1:
if n % 2 ==0:
n=n/2
else:
n=n*3+1
print n
循环直到n每次都不等于一次打印。
Python是为数不多的几种语言之一,所以这在其他语言中无关紧要,但在python中也是如此。
答案 1 :(得分:1)
缩进你的print n
语句,将其放入循环中。
答案 2 :(得分:1)
最后一次打印的缩进是错误的。试试这个:
n=int(raw_input("Enter a number: "))
while n !=1:
if n % 2 ==0:
n=n/2
else:
n=n*3+1
print n