eval SyntaxError:python中的语法无效

eval SyntaxError:python中的语法无效,python,Python,我想分配: x0='123' x1='123' x2='123' x3='123' x4='123' x5='123' x6='123' x7='123' x8='123' x9='123' 我编写代码来表示,当输入x1或x8时,我可以得到字符串123的输出 for i in range(0,10): eval("x"+str(i)+"='123'") Traceback (most recent cal

我想分配:

x0='123'    
x1='123'    
x2='123'    
x3='123'    
x4='123'    
x5='123'    
x6='123'    
x7='123'    
x8='123'    
x9='123'    
我编写代码来表示,当输入
x1
x8
时,我可以得到字符串
123
的输出

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
范围(0,10)内的i的
:
评估(“x”+str(i)+“123”)
回溯(最近一次呼叫最后一次):
文件“”,第2行,在
文件“”,第1行
x0='123'
^
SyntaxError:无效语法
我怎样才能做到这一点呢?

eval()
只允许表达式。赋值不是一个表达式,而是一个语句;您必须改用
exec

即使这样,您也可以使用
globals()
字典向全局名称空间添加名称,而不需要使用任何任意表达式执行

如果您确实不想这样做,您需要使用列表或字典:

x = ['123'] * 10

将为您提供一个列表,您可以将其命名为
x[0]
x[1]
等,而无需执行任意表达式。

要动态执行语句,请使用
exec
函数:

>>> exec('y = 3')
>>> y
3
eval
用法:
eval(表达式)

表达式
参数作为Python表达式进行分析和计算

eval('"x"+str(i)+"="+"123"')
e、 g:


你可以用这个表达

eval('"x"+str(i)+"="+"123"')

强制链接:。不要使用
eval
创建变量。请使用列表或字典。
eval()
只允许表达式。赋值不是一个表达式,而是一个语句。对于不是
eval
的语句,使用
exec
,正如Martijn所说,使用列表/字典。可能重复的