3

...関数内で実行可能なままにします。

この背後にあるアイデアは、合計関数を作成したいということです。これが私がこれまでに持っているものです:

def summation(n, bound, operation):
    if operation is None and upper != 'inf':
        g = 0
        for num in range(n, limit + 1):
            g += num
        return g
    else:
        pass

しかし、ほとんどの場合、総和は無限収束級数 (私は を使用'inf') に関するものであり、各項に演算が適用されます。print summation(0, 'inf', 1 / factorial(n))理想的には、数学定数eを記述して取得するかdef W(x): return summation(1, 'inf', ((-n) ** (n - 1)) / factorial(n))ランベルト W 関数を取得できるようにしたいと考えています。

私の頭に浮かぶのは、適切な演算を文字列として渡し、execステートメントを使用してそれを実行することだけです。しかし、それですべてが完了するとは思いません。また、execユーザーが入力した可能性のあるコードで使用するのは明らかに危険です。

4

1 に答える 1

6

Python では、関数は第一級です。つまり、関数は他の値と同じように使用および渡すことができるため、関数を使用できます。

def example(f):
    return f(1) + f(2)

それを実行するには、次のような関数を定義できます。

def square(n):
    return n * n

そして、それを他の関数に渡します:

example(square)  # = square(1) + square(2) = 1 + 4 = 5

lambda単純な式の場合、新しい関数を定義する必要を避けるためにも使用できます。

example(lambda n: n * n)
于 2013-06-22T02:55:17.680 に答える