#python
#python
Вопрос:
import numpy as np
import scipy.integrate as integrate
def f(x):
return np.sin(x)
def gauss(f,0,2,5):
val,error = integrate.quadrature(f,a,b, maxiter = n)
print("Integration value is: ", val)
print("Error is: ", error)
Выше приведен мой код. Я продолжаю получать синтаксическую ошибку ниже. Может кто-нибудь помочь мне решить эту проблему?
def gauss(f,0,2,5):
^
SyntaxError: invalid syntax
Комментарии:
1. Без обид, но вам, вероятно, следует ознакомиться с руководством по Python . Это какая-то очень простая синтаксическая ошибка языка. У вас не может быть чисел в определении аргументов функции… Однако вы можете определить значения по умолчанию:
def gauss(f, a=0, b=2, n=5):
(у меня есть сильное ощущение, что это то, к чему вы стремились …)
Ответ №1:
Вы помещаете константы в определение функции. Это недопустимо — там должны быть имена переменных.
Константы могут быть переданы только вызову функции.
Комментарии:
1. Константы также могут определять значения по умолчанию
2. @Tomerikoo вы правы, но я не хотел усложнять простой ответ.
3. Я не думаю, что это слишком сложно … С другой стороны, может быть немного вводящим в заблуждение, чтобы сказать новичку, что константы могут быть переданы только для вызова функции . Что происходит, когда он видит значения по умолчанию для первого? Тогда ему будет сложно…
4. @Tomerikoo почему бы вам не опубликовать свой ответ, а я тогда удалю свой?
Ответ №2:
import numpy as np
from scipy import integrate
f = lambda x: np.sin(x)
def gauss(f,a,b, MaxOrder):
val,error = integrate.quadrature(f,a,b, maxiter = MaxOrder)
print("Integration value is: ", val)
print("Error is: ", error)
print(gauss(f, 0, 2, 5))
Надеюсь, это сработает!