Вы можете попробовать использовать Python с объявлениями переменных:
>>> x = 0 # a global variable
>>> def fact(n): #n is a parameter
... x = 0 # local variable declaration
... z = 1 # declaration and initialization
... for i in range(1, n + 1): # a loop variable is defined inline
... z = z * i
... return z
...
>>> x = 5 # the global x
>>> fact(x)
120
Можете ли вы объяснить, в чем проблема с этим? Кроме того, как сказал Ник Бастин в комментарии, было бы полезно, если бы вы объяснили, связана ли ваша проблема с декларацией или областью действия.
Если ваша проблема связана с синтаксисом или статической типизацией, будет ли приемлем следующий синтаксис для вас?
def f(double x):
return x**2-x
def integrate_f(double a, double b, int N):
cdef int i
cdef double s, dx
s = 0
dx = (b-a)/N
for i in range(N):
s += f(a+i*dx)
return s * dx
Этот синтаксис является синтаксисом Cython , языка для расширения Python с использованием скомпилированных (C) расширений.