def print_guessed(secret_word): new_word = secret_word for i in new_word: i = "-" return new_wordprint print_guessed("claptrap")这只是打印拍手而不是--------如何解决?
3 回答
慕雪6442864
TA贡献1812条经验 获得超5个赞
这应该解决它:
def print_guessed(secret_word): return '-'*len(secret_word)
您的代码的问题是您试图通过其索引来修改字符串。但是str
,Python中的对象不是可变的。您必须构造一个新的字符串。
请注意,此函数返回的结果与其他人提出的结果相同。但是,它更简单(并且可能更快),因为它不需要循环。
四季花海
TA贡献1811条经验 获得超5个赞
如果您正在寻找答案for loop而不是更高效的紧凑列表理解方法,则可以这样做。对于初学者来说,最优雅的答案通常不容易理解(根据我的经验),因此希望对您有所帮助。
def print_guessed(secret_word):
new_word = ''
for i in secret_word:
new_word += '-'
return new_word
print(print_guessed("claptrap"))
在上面,我们为变量中的new_word每个字符添加“-” (最初为空)secret_word。
正如许多人指出的那样,字符串在Python中是不可变的。请注意,new_word在内的每次迭代中,都会为其分配一个新值(而不是通过索引进行修改)for loop。
添加回答
举报
0/150
提交
取消