/ / eval SyntaxError: nieprawidłowa składnia w python - python

eval SyntaxError: nieprawidłowa składnia w python - python

Chcę przypisać:

x0="123"
x1="123"
x2="123"
x3="123"
x4="123"
x5="123"
x6="123"
x7="123"
x8="123"
x9="123"

Piszę kod, aby wyrazić, że mogę uzyskać wynik ciągu znaków 123 po wprowadzeniu x1 lub 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

Jak mogę to zrobić?

Odpowiedzi:

7 dla odpowiedzi № 1

Do dynamicznego wykonywania instrukcji użyj exec komunikat.

>>> exec("y=3")
>>> y
3

Eval Usgae:eval(expression)

The expression Argument jest analizowany i interpretowany jako wyrażenie w języku Python

na przykład:

>>> s=3
>>> eval("s==3")
True
>>> eval("s + 1")
4
>>> eval("s")
3
>>> eval("str(s)+"test"")
"3test"

12 dla odpowiedzi nr 2

eval() dopuszcza tylko wyrażenia. Przypisanie nie jest wyrażeniem, lecz oświadczeniem; będziesz musiał użyć exec zamiast.

Nawet wtedy możesz użyć globals() słownik, aby dodać nazwy do globalnej przestrzeni nazw i nie musisz używać żadnego arbitralnego wykonania wyrażenia.

ty naprawdę Nie chcę tego robić, musisz przechowuj dane poza swoimi nazwami zmiennych i zamiast tego użyj listy lub słownika:

x = ["123"] * 10

da ci listę, na którą możesz adresować x[0], x[1]itp. bez konieczności wykonywania dowolnych wyrażeń.


-1 dla odpowiedzi nr 3

Możesz to powiedzieć.

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