解析一次仅在循环中使用的代码

内技师

我正在用Python编写可用于求解方程式的代码。用户必须首先通过raw_input()输入代码,然后将其用于使用eval()在循环中为每个x计算y,如下所示:

#some imports (math) and other irrelevant code
Code = raw_input('please enter your equation')
Low = raw_input('please enter the lowest number in the domain')
High = raw_input('please enter the highest number in the domain')
X = Low
While X <= High:
    Y = eval(code)
    #complicated code to solve equation
    X += #number depending on the amount of decimals
#simpler code to print the result

问题在于,每个循环使用eval()解析输入代码非常慢。有没有办法只解析一次代码,然后在程序的其余部分中将其用作函数?

马尼约

您可以使用预先编译表达式compiler.compile()自Python v2.6起已弃用)。

使用Python 3.x:

还要看看:Python:加快重复执行的eval语句的方法吗?

编辑

一些例子:

>>> expr = 'x*x + 2*x + 1'
>>> expr_obj = compile(expr, '', 'eval')
>>> x = 1
>>> y = eval(expr)

现在

>>> y
4
>>> x = 2
>>> y = eval(expr)
>>> y
9

compileeval(和exec的较低版本它不评估/执行您的表达式/语句,但返回可以执行此操作的代码对象。


PS作为eval在用户提交的字符串上使用的一般规则,您必须非常小心接受的内容(这是一个潜在的安全漏洞)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

解析一次仅在循环中使用的代码

来自分类Dev

正则表达式仅在循环中使用 find 方法匹配一次

来自分类Dev

setTimeout 仅在我在 for 循环中使用它时运行一次

来自分类Dev

在While循环中使用随机一次

来自分类Dev

在While循环中使用随机一次

来自分类Dev

laravel在foreach循环中使用if条件时检查foreach循环的最后一次迭代

来自分类Dev

为什么某些if语句仅在一次循环中触发一次?

来自分类Dev

如何在while循环中使用索引,每次查找下一次出现

来自分类Dev

如何在主游戏循环中使用 sfml 只播放一次声音

来自分类Dev

VBA-范围对象仅在循环中设置一次

来自分类Dev

如何仅在Python的嵌套循环中迭代一次列表

来自分类Dev

whilef循环中的scanf仅在第一次迭代时读取

来自分类Dev

如何在循环中更改条件,但仅在第一次迭代之后?

来自分类Dev

Jquery从元素中删除属性(循环中)仅在第一次工作

来自分类Dev

for循环中的jQuery自定义事件仅在最后一次迭代时触发

来自分类Dev

仅在循环中发送一次消息 discord.py

来自分类Dev

仅在循环中第一次修改可能的重复元素

来自分类Dev

在FOR循环中仅运行一次IF

来自分类Dev

仅在条件中循环一次

来自分类Dev

在主体中使用if语句进行do-while循环,仅在经过一次迭代后才显示消息?

来自分类Dev

有没有一种更清洁的方法,可以仅在循环中运行一次操作?

来自分类Dev

xslt:在for-each循环中仅循环一次

来自分类Dev

嵌套的for循环仅在Javascript执行一次外循环

来自分类Dev

使用 Corona SDK 在循环中一次仅选择一个矩形

来自分类Dev

在永久循环或无效循环中执行一次(一次)吗?

来自分类Dev

我试图找到一个仅在数组中使用一次的数字。

来自分类Dev

我想使用python 3.4在for循环中仅打印一次特定行

来自分类Dev

如何使用Java在for循环中一次输出多个数字

来自分类Dev

此代码在for循环中,包含一个计时器,该计时器仅执行一次

Related 相关文章

  1. 1

    解析一次仅在循环中使用的代码

  2. 2

    正则表达式仅在循环中使用 find 方法匹配一次

  3. 3

    setTimeout 仅在我在 for 循环中使用它时运行一次

  4. 4

    在While循环中使用随机一次

  5. 5

    在While循环中使用随机一次

  6. 6

    laravel在foreach循环中使用if条件时检查foreach循环的最后一次迭代

  7. 7

    为什么某些if语句仅在一次循环中触发一次?

  8. 8

    如何在while循环中使用索引,每次查找下一次出现

  9. 9

    如何在主游戏循环中使用 sfml 只播放一次声音

  10. 10

    VBA-范围对象仅在循环中设置一次

  11. 11

    如何仅在Python的嵌套循环中迭代一次列表

  12. 12

    whilef循环中的scanf仅在第一次迭代时读取

  13. 13

    如何在循环中更改条件,但仅在第一次迭代之后?

  14. 14

    Jquery从元素中删除属性(循环中)仅在第一次工作

  15. 15

    for循环中的jQuery自定义事件仅在最后一次迭代时触发

  16. 16

    仅在循环中发送一次消息 discord.py

  17. 17

    仅在循环中第一次修改可能的重复元素

  18. 18

    在FOR循环中仅运行一次IF

  19. 19

    仅在条件中循环一次

  20. 20

    在主体中使用if语句进行do-while循环,仅在经过一次迭代后才显示消息?

  21. 21

    有没有一种更清洁的方法,可以仅在循环中运行一次操作?

  22. 22

    xslt:在for-each循环中仅循环一次

  23. 23

    嵌套的for循环仅在Javascript执行一次外循环

  24. 24

    使用 Corona SDK 在循环中一次仅选择一个矩形

  25. 25

    在永久循环或无效循环中执行一次(一次)吗?

  26. 26

    我试图找到一个仅在数组中使用一次的数字。

  27. 27

    我想使用python 3.4在for循环中仅打印一次特定行

  28. 28

    如何使用Java在for循环中一次输出多个数字

  29. 29

    此代码在for循环中,包含一个计时器,该计时器仅执行一次

热门标签

归档