我想分配:
x0='123'
x1='123'
x2='123'
x3='123'
x4='123'
x5='123'
x6='123'
x7='123'
x8='123'
x9='123'
我编写代码来表示当输入 x1
或 123
时,我可以获得字符串的输出 x8
。
for i in range(0,10):
eval("x"+str(i)+"='123'")
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
File "<string>", line 1
x0='123'
^
SyntaxError: invalid syntax
我怎么能那样做?
永远不要对可能以任何形式来自程序外部的数据使用 eval
(或 exec
)。这是一个严重的安全风险。您允许数据作者在您的计算机上运行任意代码。 如果你来到这里是因为你想在你的 Python 程序中按照某种模式创建多个变量, 那么你几乎肯定遇到了 XY 问题。根本不要创建这些变量——而是 适当地使用列表或字典。
原文由 showkey 发布,翻译遵循 CC BY-SA 4.0 许可协议
对于语句的动态执行,使用
exec
函数:eval
用法:eval(expression)
。expression
参数作为 Python 表达式进行解析和评估。例如: