Python初学者在这里:TypeError:'str'对象不支持项目分配

0 python

我是几天前才刚开始使用python进行编程的,之前没有编程经验。

我一直在关注在线教程,并决定通过制作类似hang子手的游戏来挑战自己。我试图做到这一点,以便猜测替换隐藏单词中字母的位置,但是python返回此错误。现在,该单词称为name,并且hidden_​​name只是#的长度相同。

    name = input ("what is your name ::")
    hidden_name = ("#" * len(name))
    print (hidden_name)

    guess = input ("Guess a letter ::")
    def guess_update(guess, name, hidden_name):
        right = guess in name 
        i = 0
        for c in name:
            if c == guess:
                hidden_name[i] = c
            i += 1
    if guess in name:
        guess_update(guess, name, hidden_name)
        print ("Your progess is ::", hidden_name)
Run Code Online (Sandbox Code Playgroud)

感谢您帮助这个新手:)

the*_*orm 6

Python中的字符串是不可变的,因此您不能这样做:

hidden_name[i] = c
Run Code Online (Sandbox Code Playgroud)

一种可以为您的游戏带来理想效果的选项是:

hidden_name = hidden_name[:i] + c + hidden_name[i+1:]
Run Code Online (Sandbox Code Playgroud)

之所以可行,是因为您正在使用串联创建新字符串,然后将结果重新分配给变量,而不是尝试编辑现有字符串。