为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

UYOU 2021-05-04 13:17:21
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中的对象不是可变的。您必须构造一个新的字符串。

请注意,此函数返回的结果与其他人提出的结果相同。但是,它更简单(并且可能更快),因为它不需要循环。


查看完整回答
反对 回复 2021-05-25
?
慕森王

TA贡献1777条经验 获得超3个赞

def print_guessed(secret_word):

    return ''.join('-' for i in secret_word)


查看完整回答
反对 回复 2021-05-25
?
四季花海

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。


查看完整回答
反对 回复 2021-05-25
  • 3 回答
  • 0 关注
  • 149 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信