我想使用字典中指定的值,以字符串格式执行由条件给出的算术运算。

2024-09-24 06:25:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我在网络上以字符串格式获得以下条件:

"value1+value2>value3"

我从某些寄存器中得到value1、value2和value3

value1 = readRegister(100), 
value2 = readRegister(200), 
value3 = readRegister(300) 

因此,我通过读取寄存器值创建了以下命令

test_dict = { value1:120, value2: 200, value3: 500}

如果开始时提到的条件为真,那么我必须执行某些操作。你知道吗

正如我在开始时提到的,条件是string格式的,因此我需要从我创建的字典(即test\u dict)中获取并获取条件中提到的字符串的值,然后需要执行条件中提到的算术操作。你知道吗

我不知道怎么解决这个问题。你知道吗


Tags: 字符串test命令网络string字典格式算术
1条回答
网友
1楼 · 发布于 2024-09-24 06:25:01

你可以用eval。你知道吗

首先,确保输入字符串绝对可信。如果恶意用户可以指定其内容,他们可以删除你的硬盘驱动器和发送不礼貌的电子邮件给你的母亲。有关更多信息,请参阅peterwood评论中的链接。你知道吗

然后,调用eval,将d作为globals dict传递

>>> d = {"value1": 120, "value2": 200, "value3": 500}
>>> s = "value1+value2>value3"
>>> eval(s, d)
False
>>> d = {"value1": 120, "value2": 200, "value3": 300}
>>> eval(s, d)
True

这是假设您的字典有字符串文本作为键。你的问题不清楚,我猜你只是忘了写引号。你知道吗

相关问题 更多 >