根据用户输入python替换部分字符串

时间:2017-05-19 23:31:27

标签: python string python-3.x

word = hello
dashes = '-' * len(word)
guess = input()

如果是h,我想将dashes[0]替换为h,因为hword[0],我该如何检查h是单词,然后如果是,则在-中替换dashes中的wordinput()

然后给另一个dashesh----现在为l,输入为dashes,但h-ll-成为dashes = dashes.replace(dashes[word.index(guess)], guess) guess

我希望这是有道理的,我能解释清楚。

在做出猜测并且在给出另一个猜测之前,我尝试了以下内容:

h

但如果dasheshhhhh,则<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&nbsp&nbsp&nbsp&nbsp&nbsp|</a> <a class="login" href="#">Sign Up</a> 成为Log In | Sign up 不知道为什么或如何解决它。

3 个答案:

答案 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)