我无法修复help1!1的Python简单代码

def print_guessed(secret_word):

    new_word = secret_word

    for i in new_word:

        i = "-"

    return new_word

print print_guessed("claptrap")

这只是打印拍手而不是--------如何解决?


UYOU
浏览 179回答 3
3回答

慕雪6442864

这应该解决它:def print_guessed(secret_word):     return '-'*len(secret_word)您的代码的问题是您试图通过其索引来修改字符串。但是str,Python中的对象不是可变的。您必须构造一个新的字符串。请注意,此函数返回的结果与其他人提出的结果相同。但是,它更简单(并且可能更快),因为它不需要循环。

慕森王

def print_guessed(secret_word):    return ''.join('-' for i in secret_word)

四季花海

如果您正在寻找答案for loop而不是更高效的紧凑列表理解方法,则可以这样做。对于初学者来说,最优雅的答案通常不容易理解(根据我的经验),因此希望对您有所帮助。def print_guessed(secret_word):    new_word = ''    for i in secret_word:        new_word += '-'    return new_wordprint(print_guessed("claptrap"))在上面,我们为变量中的new_word每个字符添加“-” (最初为空)secret_word。正如许多人指出的那样,字符串在Python中是不可变的。请注意,new_word在内的每次迭代中,都会为其分配一个新值(而不是通过索引进行修改)for loop。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python