3 回答

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊
這應(yīng)該解決它:
def print_guessed(secret_word): return '-'*len(secret_word)
您的代碼的問題是您試圖通過其索引來修改字符串。但是str
,Python中的對象不是可變的。您必須構(gòu)造一個(gè)新的字符串。
請注意,此函數(shù)返回的結(jié)果與其他人提出的結(jié)果相同。但是,它更簡單(并且可能更快),因?yàn)樗恍枰h(huán)。

TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超3個(gè)贊
def print_guessed(secret_word):
return ''.join('-' for i in secret_word)

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超5個(gè)贊
如果您正在尋找答案for loop而不是更高效的緊湊列表理解方法,則可以這樣做。對于初學(xué)者來說,最優(yōu)雅的答案通常不容易理解(根據(jù)我的經(jīng)驗(yàn)),因此希望對您有所幫助。
def print_guessed(secret_word):
new_word = ''
for i in secret_word:
new_word += '-'
return new_word
print(print_guessed("claptrap"))
在上面,我們?yōu)樽兞恐械膎ew_word每個(gè)字符添加“-” (最初為空)secret_word。
正如許多人指出的那樣,字符串在Python中是不可變的。請注意,new_word在內(nèi)的每次迭代中,都會為其分配一個(gè)新值(而不是通過索引進(jìn)行修改)for loop。
添加回答
舉報(bào)