-3
test = "ABC"
for i in range(0, 5):
print i
test test.replace('ABC', str(i))
print test
這將打印0,而我期望它打印4.發生了什麼事?將字符串保存到變量外循環
test = "ABC"
for i in range(0, 5):
print i
test test.replace('ABC', str(i))
print test
這將打印0,而我期望它打印4.發生了什麼事?將字符串保存到變量外循環
這非常合理。
roster
是一個空字符串。 replace
永遠不會(假設name_list
不包含空字符串,那麼我不知道它將如何表現)匹配任何空字符串。
更新:
它看起來像,如果你name_list
包含一個空字符串,然後它會做的替代品(Python的2.7):因爲問題
''.replace('', 'foo') # => 'foo'
(假設你缺少和=
之間test
test.replace('ABC', str(i))
)
你的問題的新代碼,預計輸出0
。您將test
變異爲'0'
,那麼對於值1
到4
,匹配'ABC'
將永遠不會再被滿足。
你期待什麼發生? '名冊'是空的,所以沒有什麼可以替代的。 – 2015-02-24 22:01:52
你在名冊上叫'替換'。你基本上說的是:如果'name'在'roster'中,那麼用'test''替換它。但是'roster'是空的,所以什麼也沒有發生。 – dursk 2015-02-24 22:04:08
您在收到答案後完全改變了問題。請不要這樣做。 – 2015-02-24 22:04:27