Python简单代码我无法修复帮助1!1

2024-10-01 07:10:13 发布

您现在位置:Python中文网/ 问答频道 /正文

def print_guessed(secret_word):
    new_word = secret_word
    for i in new_word:
        i = "-"
    return new_word
print print_guessed("claptrap")

这个JJ只是打印拍板而不是-------- 如何修复?你知道吗


Tags: innewforsecretreturndefwordprint
3条回答

如果你正在寻找一个for loop的答案,而不是更有效的+紧凑的列表理解,这就可以了。最优雅的答案往往是不容易理解的初学者(从我的经验),所以希望这有帮助。你知道吗

def print_guessed(secret_word):
    new_word = ''
    for i in secret_word:
        new_word += '-'
    return new_word
print(print_guessed("claptrap"))

在上面,我们为secret_word变量中的每个字符向new_word(最初为空)添加“-”。你知道吗

正如许多人指出的,字符串在Python中是不可变的。请注意,new_wordfor loop内的每次迭代中都被分配一个新值(而不是通过索引进行修改)。你知道吗

这应该可以解决:

def print_guessed(secret_word):
    return '-'*len(secret_word)

代码的问题是您试图通过索引修改字符串。然而,Python中的str对象是不可变的。你必须构造一个新的字符串。你知道吗

请注意,此函数返回与其他人建议的结果相同的结果。但是,它更简单(而且可能更快),因为它不需要循环。你知道吗

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

相关问题 更多 >