Python如果循环只返回最终结果

时间:2014-03-30 12:12:44

标签: python

我在这里有一个非常简单的问题,但不知道如何解决它,因为我是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

3 个答案:

答案 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