尝试运行这个程序员(控制台)在python中但显示错误

时间:2014-07-16 04:13:38

标签: python function

我是python的初学者。我想在控制台中运行这个程序员,但它告诉我错误是什么错误。

>>> def fib(n):
...     a, b = 0, 1
...     while a < n:
...             print (a, end=' ')
  File "<stdin>", line 4
    print (a, end=' ')
                  ^
SyntaxError: invalid syntax

我想要运行的实际程序:

>>> def fib(n):
...     a, b = 0, 1
...     while a < n:
...         print(a, end=' ')
...         a, b = b, a+b
...     print()
>>> fib(1000)

1 个答案:

答案 0 :(得分:5)

您正在尝试在Python2中运行Python3代码。 Python2 print是一个关键字,只打印给定的内容,而Python3 print是一个带有一些附加参数的函数。 Python3 print was backported to Python2 and you can made it available using from __future__ import print_function

>>> from __future__ import print_function
>>> def fib(n):
...     a, b = 0, 1
...     while a < n:
...         print(a, end=' ')
...         a, b = b, a+b
...     print()
... 
>>> fib(5)
0 1 1 2 3 

在普通的Python2中,它看起来像这样:

>>> def fib(n):
...     a, b = 0, 1
...     while a < n:
...         print a, ' '
...         a, b = b, a + b
...     print
... 
>>> fib(5)
0  
1  
1  
2  
3 

不幸的是,如果你不打印一个点(print),Python2 print 1, 'something', '.'会在最后写一个换行符。请参阅How to print without newline or space?了解相关方法。

或者您可以存储结果然后连接并立即打印它们,例如:

>>> def fib(n):
...     a, b = 0, 1
...     results = []
...     while a < n:
...         result.append(a)
...         a, b = b, a + b
...     print ' '.join([str(r) for r in results])
... 
>>> fib(5)
0 1 1 2 3