我想分配:
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
我怎么能那样做?
你可以这样表达。
eval()
只允许表达式。赋值不是表达式,而是语句;您必须使用exec
。即使这样,您也可以使用
globals()
字典将名称添加到全局命名空间中,而不需要执行任何任意表达式。如果您确实不想这样做,您需要keep data out of your variable names并使用列表或字典来代替:
会给您一个列表,您可以将其命名为
x[0]
、x[1]
,等等,而不必执行任意表达式。对于语句的动态执行,请使用
exec
语句。评估用途:
eval(expression)
expression
参数作为Python表达式进行分析和计算例如:
相关问题 更多 >
编程相关推荐