我是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)
答案 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