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)
感谢您帮助这个新手:)
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)
之所以可行,是因为您正在使用串联创建新字符串,然后将结果重新分配给变量,而不是尝试编辑现有字符串。