Collat​​z猜想和打印声明

时间:2011-10-30 20:32:30

标签: python syntax collatz

我正在尝试创建一个简单的程序,将Collat​​z猜想的语句应用于用户可以输入的整数,我有:

def collatz(n):
    print n,
    if n % 2 ==0:
        n = n / 2
    elif n == 0:
        Print "Collatz Conjecture true for" , 'n'
    else:
        n = n *3 + 1

input("\n\nInsert a positive integer:")
def collatz(n)

然而,它表示行中存在语法错误:

Print "Collatz Conjecture true for" , 'n'

我看不出这行中的错误。

另外,由于我还没能测试它,看起来好像它可以正常工作吗?

4 个答案:

答案 0 :(得分:3)

Python区分大小写。使用“打印”而非“打印”。

答案 1 :(得分:3)

嗯,你的语法错误是python区分大小写,所以你需要print而不是Print

但是你有更多问题:

  • 'n'打印字符串n。我想你想要的是n来打印变量的值(如果没有,那么你可以只创建一个字符串“......对于n来说是真的”)。

  • 最后(我认为),为了运行函数collatz,您不需要def;这只是为了定义。

答案 2 :(得分:2)

更多问题:

  1. 停止条件应为n == 1,而不是n == 0
  2. 你必须重复或迭代,因为你只是迈出了一步。
  3. 检查输入,确保它确实是正数。

答案 3 :(得分:0)

 def collatz_steps(n):
    steps=0
    if n==1:
        return 0 
    else:
        while n!=1:
            if n%2==0:
                n=n/2
                steps+=1
            else:
                n = 3*n+1
                steps+=1
        return steps