I want to assign :
x0='123' x1='123' x2='123' x3='123' x4='123' x5='123' x6='123' x7='123' x8='123' x9='123'
I write the code to express that i can get the output of a string
123 when input
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
How i can do that way?
For dynamic execution of statements use the
'y = 3') y 3exec(
expression argument is parsed and evaluated as a Python expression.
3 eval('s == 3') True eval('s + 1') 4 eval('s') 3 eval('str(s) + "test"') '3test's =
eval() only allows for expressions. Assignment is not an expression but a statement; you’d have to use
Even then you could use the
globals() dictionary to add names to the global namespace and you’d not need to use any arbitrary expression execution.
You really don’t want to do this, you need to keep data out of your variable names and use a list or dictionary instead:
x = ['123'] * 10
would give you a list you can address as
x, etc. without having to execute arbitrary expressions.
You can you this expression.