Python Forum

Full Version: Code runs as pure python but not jupyter notebook
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hello to the forum. As you can tell from the title, I am just learning python, and its use as a jupyter notbook.

I have this cell with a few lines of code that seems to run fine, under pycharm, when I use it in a file type of pure python. But when I use that same code in a file type ipynb, I get an "invalid syntax" error.

def quicksort(arr):
    if len(arr) <= 1:
        return arr
    pivot = arr[len(arr) // 2]
    left = [x for x in arr if x < pivot]
    middle = [x for x in arr if x == pivot]
    right = [x for x in arr if x > pivot]
    return quicksort(left) + middle + quicksort(right)

print quicksort([3, 6, 8, 10, 1, 2, 1])


Here is the error:

print quicksort([3, 6, 8, 10, 1, 2, 1])
syntax error



Thank You
Tom
This code runs fine on Jupyter. However, you will get 'invalid syntax' if you try print quicksort([3, 6, 8, 10, 1, 2, 1]). You have to print(quicksort([3, 6, 8, 10, 1, 2, 1])) because you probably have Python 3 kernel (have a look at Installing the IPython kernel)

You don't need 'print' to have cell output. Just enter 'quicksort([3, 6, 8, 10, 1, 2, 1])' in cell and hit shift + enter.

By default you will have output of last expression in cell:

1 + 1
1 + 2
Output:
3
If you want to have all outputs of expressions in cell at once then you have to run:

from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"
After that you will have output of all expressions in cell (previous example will produce 2 and 3) without need of 'print'.
(Aug-22-2018, 04:32 AM)miner_tom Wrote: [ -> ]I have this cell with a few lines of code that seems to run fine, under pycharm,
That because you run it with python 2 in PyCharm Configuring Python Interpreter.
As mention bye @ perfringo print() is a function in Python 3.
print(quicksort([3, 6, 8, 10, 1, 2, 1]))
You should run Python 3.6 --> both local and Jupyter Notebook.
Here a couple of tutorials Python 3.6/3.7 and pip installation under Windows | Anaconda.
Thank you for the replies. I will try out your suggestions later on today and they make a lot of sense, because I did specifically set up the pycharm environment/interpreter as python 2.7. I did that because the documentation for the notebook that I downloaded from gitub noted that the notebook was built under python 2, specifically. I'll try changing interpreters and see what happens.

Thanks again
Tom