[英]eval SyntaxError: invalid syntax in 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 call last):
File "<stdin>", line 2, in <module>
File "<string>", line 1
x0='123'
^
SyntaxError: invalid syntax
我怎么能這樣做?
對於語句的動態執行,請使用exec
函數:
>>> exec('y = 3')
>>> y
3
eval
用法: eval(expression)
。
expression
參數被解析和評估為 Python 表達式。
例如:
>>> s = 3
>>> eval('s == 3')
True
>>> eval('s + 1')
4
>>> eval('s')
3
>>> eval('str(s) + "test"')
'3test'
eval()
只允許表達式。 賦值不是表達式而是語句; 你必須改用exec
。
即使這樣,您也可以使用globals()
字典將名稱添加到全局命名空間,並且您不需要使用任何任意表達式執行。
您真的不想這樣做,您需要將數據保留在變量名稱之外,而是使用列表或字典:
x = ['123'] * 10
會給你一個列表,你可以用x[0]
、 x[1]
等來尋址,而不必執行任意表達式。
你可以你這個表情。
eval('"x"+str(i)+"="+"123"')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.