我是初学者,我尝试写一个类似挂人的程序。我卡住了,因为字符串是不可变的,我找不到解决这个问题的方法。我需要帮助,请帮帮我
words=("cat", "dog", "animal", "something", "whale", "crocodile", "lion", "summer", "boston", "seattle")
the_word=random.choice(words)
#print(the_word)
a=len(the_word) #number of words
blanks="_"*a
c=' '.join(blanks)#blanks seperated
print("This is a word with",a,"letter")
print("\t", c)
当我尝试更换出现的错误信息时,如c [0] =“s”
我知道有替换功能,我试过这样的ipu = c.replace(c [0],“s”)。
当我打印它时,结果就像这样的“它取代了所有东西而不仅仅是c [0]
答案 0 :(得分:1)
假设word
是要猜的词,guessed
已经尝试过的字母:
>>> guessed = ['a', 'b', 'c']
>>> word = 'cat'
>>> ' '.join (c if c in guessed else '_' for c in word)
'c a _'
>>> word = 'crocodile'
>>> ' '.join (c if c in guessed else '_' for c in word)
'c _ _ c _ _ _ _ _'
答案 1 :(得分:0)
不要使用字符串。使用列表并在需要时转换为字符串:
>>> c = ['_' for i in range(a)]
>>> c[0] = 's'
>>> ' '.join(c)
's _ _ _ _ _ _ '
答案 2 :(得分:0)
使用真实列表而不是字符串就可以了,你可以在这里做你想要的,因为所有的输入字符串都很短:
>>> blanks = ['_'] * 5
>>> ' '.join(blanks)
'_ _ _ _ _'
>>> blanks[1] = 'c'
>>> ' '.join(blanks)
'_ c _ _ _'