Code runs as pure python but not jupyter notebook - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: General Coding Help (https://python-forum.io/forum-8.html) +--- Thread: Code runs as pure python but not jupyter notebook (/thread-12382.html) |
Code runs as pure python but not jupyter notebook - miner_tom - Aug-22-2018 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 RE: Code runs as pure python but not jupyter notebook - perfringo - Aug-22-2018 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 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'. RE: Code runs as pure python but not jupyter notebook - snippsat - Aug-22-2018 (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. RE: Code runs as pure python but not jupyter notebook - miner_tom - Aug-22-2018 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 |