2024-10-01 07:10:13 发布
网友
def print_guessed(secret_word): new_word = secret_word for i in new_word: i = "-" return new_word print print_guessed("claptrap")
这个JJ只是打印拍板而不是-------- 如何修复?你知道吗
如果你正在寻找一个for loop的答案,而不是更有效的+紧凑的列表理解,这就可以了。最优雅的答案往往是不容易理解的初学者(从我的经验),所以希望这有帮助。你知道吗
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(最初为空)添加“-”。你知道吗
secret_word
new_word
正如许多人指出的,字符串在Python中是不可变的。请注意,new_word在for loop内的每次迭代中都被分配一个新值(而不是通过索引进行修改)。你知道吗
这应该可以解决:
def print_guessed(secret_word): return '-'*len(secret_word)
代码的问题是您试图通过索引修改字符串。然而,Python中的str对象是不可变的。你必须构造一个新的字符串。你知道吗
str
请注意,此函数返回与其他人建议的结果相同的结果。但是,它更简单(而且可能更快),因为它不需要循环。你知道吗
def print_guessed(secret_word): return ''.join('-' for i in secret_word)
如果你正在寻找一个
for loop
的答案,而不是更有效的+紧凑的列表理解,这就可以了。最优雅的答案往往是不容易理解的初学者(从我的经验),所以希望这有帮助。你知道吗在上面,我们为
secret_word
变量中的每个字符向new_word
(最初为空)添加“-”。你知道吗正如许多人指出的,字符串在Python中是不可变的。请注意,
new_word
在for loop
内的每次迭代中都被分配一个新值(而不是通过索引进行修改)。你知道吗这应该可以解决:
代码的问题是您试图通过索引修改字符串。然而,Python中的
str
对象是不可变的。你必须构造一个新的字符串。你知道吗请注意,此函数返回与其他人建议的结果相同的结果。但是,它更简单(而且可能更快),因为它不需要循环。你知道吗
相关问题 更多 >
编程相关推荐