python jupyter magic %% writefile возвращает SyntaxError: неверный синтаксис - PullRequest
0 голосов
/ 10 сентября 2018
# [ ] The following program asks the user for a circle radius then display the area and circumference
# Modify the program so it only displays the information when executed directly
# The program should not display anything if it is imported as a module 


%%writefile main_script.py

def main(): 
    from math import pi

    def circle_area(r):
        return pi * (r ** 2)

    def circle_circumference(r):
        return  2 * pi * r

    radius = float(input("Enter radius: "))
    print("Area =", circle_area(radius))
    print("Circumference =", circle_circumference(radius))

if __name__="__main__":
    main()


----------
  File "<ipython-input-3-70ba6a5d5e98>", line 6
    %%writefile main_script.py
    ^
SyntaxError: invalid syntax

Как мне это исправить ??

Это упражнение, но я просто не понимаю, как работает эта системная команда, вы можете объяснить?

игнорировать: для требований к словам игнорировать: для требований к словам

Ответы [ 3 ]

0 голосов
/ 14 сентября 2018

Вы должны написать

%% WriteFile

в первой строке.

0 голосов
/ 30 ноября 2018

Это не работает для вас, потому что у вас есть комментарий в первой строке (-ях) вашего кода в ячейке блокнота. Если вы переместите ваши комментарии под магическую команду, она запишет файл.

%%writefile main_script.py

# Add all of your comments here after the magic command

def main(): 
    def add_my_code(here):
        return here

if __name__="__main__":
    main()
0 голосов
/ 10 сентября 2018

%% writefile main_script.py

writefile - это команда ноутбука Jupyter, она не является частью исходного кода.

Так что это даст вам синтаксическую ошибку как часть кода Python. Однако выполнение в Jupyter Notebook скажет ему записать содержимое после этой команды в файл, указанный после writefile, то есть в main_script.py

Посмотрите , как добавить файл с новой строкой, используя writefile-a-command-in-jupyter для получения дополнительной информации

...