【发布时间】:2017-09-12 12:47:14
【问题描述】:
当用户使用输入命令输入函数时,我试图让函数以特定格式返回多项式。但是,即使使用 eval(input()),我认为这是一种糟糕的做法,也会使其陷入循环。以下是我的代码:
def func(x):
function = eval(input("enter a string in the format (x - 3) * (x - 5) * (x - 7) + 85")) #should run this as code so horid security, but still busted
return function
我希望它像这样运行:
def func(x):
return (x - 3) * (x - 5) * (x - 7) + 85
如果用户要输入该函数,但如果用户输入了该格式的任何多项式,也可以工作。
这看起来很笼统,我认为至少我可以用 eval(input()) 来欺骗它,但是使用 eval 会使程序陷入循环,提示用户无限期地输入函数
【问题讨论】:
-
这对我有用(Python 3)。
-
只要定义了 x,这段代码就可以工作。
-
在函数func中定义。所以这个例子本身应该可以工作。
-
@abccd 这可能不是描述该问题的最佳方式,但它陷入了无限循环,在该循环中提示用户输入该功能的次数与他们将回答的次数相同,并且不会继续程序如图所示 (imgur.com/a/uBjxG)