我几天前才开始与Python进行编程,没有以前的编程经验。
我一直在网上关注教程,并决定通过制作一个悬挂式游戏的游戏来挑战自己。我正在尝试做到这一点,以便猜测隐藏的单词中的字母替换为字母,但Python正在返回此错误。现在,该单词称为名称,而Hidden_name仅在相同的长度中s#s。
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)
感谢您帮助这个新手:(
python中的字符串是不变的,因此您不能这样做:
hidden_name[i] = c
将对您的游戏实现预期效果的一种选项是:
hidden_name = hidden_name[:i] + c + hidden_name[i+1:]
这起作用是因为您使用串联创建了一个新字符串,并将结果重新分配回变量,而不是尝试编辑现有字符串。
python中的字符串是不明智的,因此您无法更改其内容。一种解决方案是拆分字符串,更改字母并将其粘在一起:
splitted = list(hidden_name)
splitted[i] = c
hidden_name = ''.join(splitted)