Syntaxerror: недопустимый синтаксис (<string>, строка 14)
1 from decimal import Decimal, getcontext 2 import math 3 def calc(n): 4 t = Decimal(0) 5 pi = Decimal(0) 6 deno = Decimal(0) 7 k = 0 8 for k in range(n): 9 t = (Decimal(-1)**k)*(math.factorial(Decimal(6)*k))*(13591409+545140134*k) 10 deno = math.factorial(3*k)*(math.factorial(k)**Decimal(3))*(640320**(3*k)) 11 pi += Decimal(t)/Decimal(deno) 12 pi = pi * Decimal(12)/Decimal(640320**Decimal(1.5)) 13 pi = 1/pi 14 return str(pi) 15 print(calc(1))
Что я уже пробовал:
Привет я абсолютно новым для программирования и обучения на языке Python, используя черный пес питон руководство по эксплуатации. Я скопировал код из книги и не могу понять, почему у меня возникли проблемы с запуском кода. SyntaxError: недопустимый синтаксис (<string>, строка 14)
0x01AA
Когда я включу это https://www.tutorialspoint.com/execute_python_online.php[^] он компилируется и запускается...
essexcase
я только что попробовал через тот же веб-сайт и все еще получаю тот же syntaxError?
0x01AA
Странно, но для меня он печатает число, похожее на число Пи...
Хорошо, после копирования/вставки мне нужно настроить два разрыва строки, но это просто проблема форматирования.
[Редактировать]
Я отформатировал немного вашего кода, и теперь я могу скопировать/вставить его по ссылке выше, и он работает без каких-либо дополнительных изменений.
essexcase
Спасибо, теперь он работает на tutorialspoint, но когда я пытаюсь запустить тот же код в своей оболочке, я получаю это сообщение
Обратная трассировка (самый недавний призыв последнего):
Файл "C:\python\picalc.py", строка 16, in <module>
печать(calc(1))
Файл "C:\python\picalc.py", строка 10, в calc
Т = (десятичное число(-1)**к)*(математика.факториал(в десятичной системе(6)*к))*(13591409+545140134*к)
TypeError: 'decimal.Объект Decimal' не может быть интерпретирован как целое число
>>>
0x01AA
Извините, я не знаю Python... но я догадываюсьDecimal(13591409+545140134*k)
и Decimal(640320**(3*k))
может, поможет.
[Редактировать]
Здесь Repl.it - Python Online Compiler и IDE - быстрый, мощный, бесплатный[^] Я получаю ту же ошибку, что и ты.
После удаления десятичного преобразования здесьt = (Decimal(-1)**k)*(math.factorial(6*k))*(13591409+545140134*k)
вместоt = (Decimal(-1)**k)*(math.factorial(Decimal(6)*k))*(13591409+545140134*k)
он работает
essexcase
Спасибо.