Как использовать функции в качестве аргументов в python - PullRequest
0 голосов
/ 26 февраля 2020

Мне нужно передать функцию в качестве параметра, показанного в следующем коде:

import math
global alpha

alpha = 15

Это одна оценка проблемы:

def vaike(sisend):
    return ((1+0.001*alpha)**sisend)/(10+alpha)

Это еще одна:

def suur(sisend):
    return (math.log(10+alpha)*x)/math.log(1+0.001*alpha)

И теперь эта функция должна работать с точным порядком параметров, как показано здесь, так что x0 - это что-то, заданное пользователем, и g () выбирается из функций выше, eps и maxit - ограничители:

def iterator(x0,g(),eps,maxit):
    a=x0
    b=g(a)
    for i in range(maxit):
        if abs(b-a)<eps or (i+1)==maxit:
            return b
        else:
            a=b
            b=g(a)

print(iterator(10,vaike(10),0.000001,200))

Как я могу вызвать последнюю функцию, как показано в предыдущей строке?

1 Ответ

0 голосов
/ 26 февраля 2020

Вот как должна выглядеть ваша функция:

def iterator(x0,g,eps,maxit):  ## Changed g() to g
    a=x0
    b=g(a)
    for i in range(maxit):
        if abs(b-a)<eps or (i+1)==maxit:
            return b
        else:
            a=b
            b=g(a)

print(iterator(10,vaike,0.000001,200)) ## Changed vaike(10) to vaike

Это будет работать.

...