2015-02-24 81 views
-3
test = "ABC" 

for i in range(0, 5): 
    print i 
    test test.replace('ABC', str(i)) 

print test 

這將打印0,而我期望它打印4.發生了什麼事?將字符串保存到變量外循環

+0

你期待什麼發生? '名冊'是空的,所以沒有什麼可以替代的。 – 2015-02-24 22:01:52

+0

你在名冊上叫'替換'。你基本上說的是:如果'name'在'roster'中,那麼用'test''替換它。但是'roster'是空的,所以什麼也沒有發生。 – dursk 2015-02-24 22:04:08

+3

您在收到答案後完全改變了問題。請不要這樣做。 – 2015-02-24 22:04:27

回答

1

這非常合理。

roster是一個空字符串。 replace永遠不會(假設name_list不包含空字符串,那麼我不知道它將如何表現)匹配任何空字符串。

更新:

它看起來像,如果你name_list包含一個空字符串,然後它會做的替代品(Python的2.7):因爲問題

''.replace('', 'foo') # => 'foo' 

更新完全改變。

(假設你缺少和=之間testtest.replace('ABC', str(i))

你的問題的新代碼,預計輸出0。您將test變異爲'0',那麼對於值14,匹配'ABC'將永遠不會再被滿足。

相關問題