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

Python简单代码我无法修复帮助1!1.,python,python-3.x,python-2.7,Python,Python 3.x,Python 2.7,这个JJ只是打印快板而不是---- 如何修复?这应该可以修复它: def print_guessed(secret_word): new_word = secret_word for i in new_word: i = "-" return new_word print print_guessed("claptrap") 代码的问题是您试图通过索引修改字符串。然而,Python中的str对象是不可变的。你必须构造一个新字符串 请注意,此函数返回与其他人

这个JJ只是打印快板而不是---- 如何修复?

这应该可以修复它:

def print_guessed(secret_word):
    new_word = secret_word
    for i in new_word:
        i = "-"
    return new_word
print print_guessed("claptrap")
代码的问题是您试图通过索引修改字符串。然而,Python中的str对象是不可变的。你必须构造一个新字符串


请注意,此函数返回与其他人建议的结果相同的结果。但是,由于它不需要循环,因此它更简单,也可能更快。

如果您正在寻找一个带有for循环的答案,而不是更高效的+紧凑的列表理解,这就可以了。根据我的经验,对于初学者来说,最优雅的答案往往不容易理解,所以希望这能有所帮助

def print_guessed(secret_word):
    return '-'*len(secret_word)
def print_guessed(secret_word):
    return ''.join('-' for i in secret_word)
在上面,我们为secret\u word变量中的每个字符向new\u wordinitially empty添加“-”


正如许多人指出的,字符串在Python中是不可变的。请注意,new_word被分配了一个新值,而不是在for循环中的每次迭代中通过索引进行修改

返回re.sub[a-zA-Z],-,secret_wordFirst,string是不可变的,因此I='-'不会更改new_word中I的值。所以你最终只是给一个变量赋值,什么也不做。您可以做的是新建单词=列出机密单词并遍历位置。。。因为我在一个新单词中:新单词[I]='-'。。然后重新调整连接的字符串。joinnew_wordStrings是不可变的,循环变量根本不是这样工作的,你真的需要一个基本的教程。这是如何处理python请求的?我删除了那个标记。我认为做i='-'只是一个测试,op可能想为任何其他给定的字符更改字符串中的一个字符。@RafaelC这正是我的代码所做的:用'-'-替换所有字符–构造一个长度相同的'-'新字符串
def print_guessed(secret_word):
    new_word = ''
    for i in secret_word:
        new_word += '-'
    return new_word
print(print_guessed("claptrap"))