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所说,使用列表/字典。可能重复的