我使用f = lambda x: input()
来获得数学函数作为用户的输入。我将其放在for循环中,但是每次迭代都要求输入。如何将函数仅在变量中存储一次并在循环中使用?
这是我的代码:
from math import cos, sin, pow, e
n = int(input('Number of elements in partition: '))
print('The range is set at ...... ')
minimum = int(input('Minimum: '))
maximum = int(input('Maximum: '))
f = lambda x: eval(input('Enter a funtion: '))
fraction = (maximum - minimum) / (n-1)
UpperSum = 0
LowerSum = 0
for i in range(1, n):
UpperSum = UpperSum + fraction * f(fraction * i)
LowerSum = LowerSum + fraction * f(fraction * (i - 1))
答案 0 :(得分:1)
您已专门将函数输入作为函数本身的一部分:
f = lambda x: eval(input('Enter a funtion: '))
正如老话所说,“如果这样做会很痛,那就不要这样做!” 只需输入一次功能:
func_text = input('Enter a function: ')
func_eval = eval(func_text)
f = lambda x: func_eval
我把它分解了又一步。不过,关键是要读取输入,对其进行评估,然后使仅仅对您调用的函数进行评估。