word = hello
dashes = '-' * len(word)
guess = input()
如果是h
,我想将dashes[0]
替换为h
,因为h
为word[0]
,我该如何检查h
是单词,然后如果是,则在-
中替换dashes
中的word
,input()
然后给另一个dashes
而h----
现在为l
,输入为dashes
,但h-ll-
成为dashes = dashes.replace(dashes[word.index(guess)], guess)
guess
我希望这是有道理的,我能解释清楚。
在做出猜测并且在给出另一个猜测之前,我尝试了以下内容:
h
但如果dashes
为hhhhh
,则<ul>
<li><i class="fa fa-facebook-square" style="float:left"></i></li>
<li><i class="fa fa-twitter-square" style="float:left"></i></li>
<li><i class="fa fa-instagram" style="float:left"></i></li>
</ul>
<a class="login" href="#">Log In     |</a>
<a class="login" href="#">Sign Up</a>
成为Log In | Sign up
不知道为什么或如何解决它。
答案 0 :(得分:2)
str.replace
替换了-
中dashes
的每个实例。
您可以使用完整的dashes
在压缩之后迭代word
,并仅替换与正确猜测相同位置的字符:
dashes = ''.join(j if j==guess else i for i, j in zip(dashes, word))
def update_blanks(guess, dashes):
return ''.join(j if j==guess else i for i, j in zip(dashes, word))
guess = 'h'
dashes = update_blanks(guess, dashes)
print(dashes)
# h----
guess = 'l'
dashes = update_blanks(guess, dashes)
print(dashes)
# h-ll-
答案 1 :(得分:0)
我想这是一个&#39; hangman-esque&#39;游戏。试试这个。
word = 'hello'
current = ['-']*len(hello)
guess = input()
for i in range(len(word)):
if word[i] == guess:
current[i] = word[i]
如果您计划不断更新猜测的当前状态,这会更有效。
答案 2 :(得分:0)
由于字符串是不可变的 - 我会将单词分解为字符列表,替换合适的字符 - 然后再将字符组合成
word_chars = [guess if c == '-' and word[i] == guess else c
for i, c in enumerate(dashes)]
dashes = ''.join(word_chars)