代码之家  ›  专栏  ›  技术社区  ›  pachadotdev

将用户输入作为lambda函数传递

  •  0
  • pachadotdev  · 技术社区  · 7 年前

    我正在学习python,不知道如何将字符串传递给lambda。

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    import numpy as np
    #f0 = str(input("ingrese funcion:"))
    f = lambda x: x**2
    sum = 0.0
    a = float(input("ingrese límite inferior:"))
    b = float(input("ingrese límite superior:"))
    n = int(input("ingrese cantidad de subintervalos:"))
    i = b-a #la longitud del intervalo
    dx = i/n #que diferencia habrá cada vez que evalúes
    for xi in np.arange(a,b,dx):
        sum += dx*f(xi)
    print "Valor de la suma de Riemann de f en [a,b] = " + str(sum)
    

    f0 作为用户定义的字符串(例如。 x**2 + 10 f0 f

    1 回复  |  直到 7 年前
        1
  •  1
  •   wrvb    7 年前

    最简单的方法是使用 eval

    f0 = "x**2"
    f = eval("lambda x:" + f0)
    print f(2) # 4