2015-11-26 31 views
0

這可能是一個非常簡單的問題,但我無法在其他任何地方在線找到答案。 我有一個變量被設置爲一個字符串,其中有一個%s格式的運算符。使用格式運算符「更新」字符串

var1 = "Arbaham" 
var2 = "My name is: %s" % var1 
print(var2) 
var1 = "Abraham" 
print(var2) 

結果:

我的名字是:Arbaham

我的名字是:Arbaham

是否可以 「更新」 的字符串,以便它改變「我的名字是:Arbaham」到「我的名字是:亞伯拉罕」在第二次印刷上?

+0

您的意思是使用不同的名稱,第二次?簡短的答案是否定的,字符串是不可變的。你可以創建一個新的字符串,並將其粘貼到var2'var2 =「我的名字是:%s」%var1',就像第一次一樣,但原始字符串沒有改變。 – tdelaney

+0

是的,你可以看看https://docs.python.org/2/library/string.html#string-formatting – personjerry

+0

@personjerry不同的格式化技術如何解決這個問題? – tdelaney

回答

0

我相信你想要的用法是在更換令牌之前保存字符串:

var1 = "Arbaham" 
var2 = "My name is: %s" 
print(var2 % var1) 
var1 = "Abraham" 
print(var2 % var1) 

輸出:

>>> var1 = "Arbaham" 
>>> var2 = "My name is: %s" 
>>> print(var2 % var1) 
My name is: Arbaham 
>>> var1 = "Abraham" 
>>> print(var2 % var1) 
My name is: Abraham 
+0

你所做的只是在Python中改變爲不同的格式化技術。 '%s'版本也可以。我仍然沒有弄清楚問題是什麼......並嘗試發表評論,看看我是否可以促使OP做出澄清。 – tdelaney

+0

我很確定問題是,一旦他改變了'var1','var2'字符串應該被更新。我已經更新了我的答案來解決這個問題,而不是使用'str.format()'。 – personjerry

+0

我不知道爲什麼這是downvoted,因爲這個解決方案實際上工作得很好。無論如何,感謝大家。 – bisqueboy