'Error in Python Tutorial Example Code?
I'm working my way through the python tutorial here and the following code is used as an example.
>>> def fib(n): # write Fibonacci series up to n
... """Print a Fibonacci series up to n."""
... a, b = 0, 1
... while a < n:
... print(a, end=' ')
... a, b = b, a+b
... print()
...
>>> # Now call the function we just defined:
... fib(2000)
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597
When I run it in the Canopy editor though I get the following error message
File "<ipython-input-25-224bab99ef80>", line 5
print(a, end=' ')
^
SyntaxError: invalid syntax
The syntax is the same across PyLab, using python in the command prompt, and the Canopy Editor so I can't see why it wouldn't just run...
Solution 1:[1]
You are trying to run that code with the wrong version of Python. The example is using Python 3.x, where print
is a function, not Python 2.x, where print
is a statement.
Note that for this specific example, you can write the function like so:
>>> def fib(n):
... """Print a Fibonacci series up to n."""
... a, b = 0, 1
... while a < n:
... print a,
... a, b = b, a+b
...
>>> fib(2000)
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597
>>>
Nevertheless, it is still a good idea to upgrade your version of Python if you will be using Python 3.x throughout your tutorial.
Solution 2:[2]
def fib(n): ... """Print a Fibonacci series up to n.""" ... a, b = 0, 1 ... while a < n: ... print a, ... a, b = b, a+b ... fib(2000) 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | |
Solution 2 | Mohamed Ghorbel |