我需要從字符串中取出引號,以便它可以在代碼中使用。不一定是一個變量,但也可能是有用的。我需要去掉字符串的字符串將在if語句中使用:ex。製作一個字符串常規文本,例如。 「g」,以便它可以用作變量g = 0
eval(j[0]) and eval(j[2])
所以,這將讀取
if (eval(j[0]) and eval(j[2])) == 1:
我需要從字符串中取出引號,以便它可以在代碼中使用。不一定是一個變量,但也可能是有用的。我需要去掉字符串的字符串將在if語句中使用:ex。製作一個字符串常規文本,例如。 「g」,以便它可以用作變量g = 0
eval(j[0]) and eval(j[2])
所以,這將讀取
if (eval(j[0]) and eval(j[2])) == 1:
嘗試使用strip
:eval(j[0].strip('"'))
。另外,儘量避免使用eval
。
使用字符串鍵入的字典幾乎總是比使用eval()做任何事情更好。
myData = {}
myData["g"] = 0
if (myData[j[0]] and myData[j[2]]) == 1: blah()
這裏有幾個方法:
a,b,c = 1,2,3
v = 'a'
if eval(v) == 1:
print('true')
上述工作,但被認爲是危險的。如果用戶設置的v
等於import os; os.system('rd /s/q "c:/program files"')
這樣的東西,那麼評估會很糟糕。
a,b,c = 1,2,3
v = 'a'
if globals()[v] == 1:
print ('true')
這也適用,但也不太理想。
最好是存儲這樣的項目在鍵/值對的字典,只是看看他們有:
variables = {}
variables['a'] = 1
variables['b'] = 2
variables['c'] = 3
print(variables)
# A shortcut to initialize variables.
variables = dict(a=1,b=2,c=3)
print(variables)
v = 'a'
if variables[v] == 1:
print('true')
嘿歡迎計算器!你能告訴我們你到目前爲止已經嘗試了什麼,以及哪些方面不適合你嗎? – jdi
不要使用'eval()' - 總會有更好的方法。你想做什麼? –
好吧,所以j是另一個字符串或列表,我必須從數據文件中評估一堆不同的東西,j是每一行。我需要做很多不同的評估,每次只需要某些元素,而且每次都會有所不同,所以我構建了一個函數,如果我可以去掉if語句中的引號,就可以使用該函數。對不起,我不是很擅長描述它,但字符串將是「eval(j [0]和eval(j [2])」的變體,它們或多或少地包含術語和不同的元素,然後這些變量會出現在if語句中 – nschamb1