如何解决我的子手游戏中的字符串串联/子字符串问题
我对python上的子字符串比较陌生,在我的子手游戏中遇到了问题。 这个问题是非常随机的,例如当您猜单词“ e”中的第二个字母(打招呼)时,它不会注册,因为它不会更改空格。在第三个字母说“ l”的情况下,它在第二个空白位置说“ h”,而不是“ h”。这是我的代码:
previousguesses = ''
secret = "hello"
blanks = "_ "*len(secret)
detectletter= list(secret)
bruh = list(detectletter.pop())
game = 0
while game == 0:
print(blanks)
guess = input("\n" "l for a letter guess,w for a word guess")
if guess == "l":
letterguess = input("What is your letter guess")
if letterguess in previousguesses:
print("You have already guessed that. Here are the letters you have guessed:" + previousguesses)
if letterguess in detectletter:
if letterguess not in previousguesses:
print("Correct!")
guessbruh = str(previousguesses + ' ' + letterguess)
guessbruh.replace('"','')
for checker in range(10):
locblanks = secret.find(letterguess)
locblanks = locblanks + 1
blanks = blanks[:locblanks].replace('_',letterguess) + blanks[locblanks:]
if blanks == secret:
print("Correct! You Win!")
game = 1
print("You have guessed these letters :" + previousguesses)
if letterguess not in detectletter:
print("Wrong")
guessbruh = str(previousguesses + ' ' + letterguess)
guessbruh.replace('"','')
print("You have guessed these letters :" + previousguesses)
elif guess == "w":
wordguess = input("What is your word guess")
if wordguess == secret:
print("Correct! You Win!")
game = 1
解决方法
尝试将问题分解为更小,更易于管理的部分。例如,下面的示例显示了如何输出仅显示当前猜测字母的单词。
secret = "hello"
guesses = ['e','o']
def getWordWithGuesses(word,guesses):
"""If the word is hello and we have guessed 'o' and 'e',return '_e__o'"""
guess_word = ""
for letter in word:
if letter in guesses:
guess_word += letter
else:
guess_word += "_"
return guess_word
print(getWordWithGuesses(secret,guesses))
为程序的每个部分考虑一个小功能。您可以让每个部分单独工作,然后再将它们结合在一起。
您的代码存在问题,围绕for checker in range(10)
部分。我不确定您要在其中做什么,但是您没有使用checker
,因此不会在单词中的每个字符上建立索引。注意我如何使用for letter in word
,这将适用于任何长度的单词,而不仅仅是长度为10的单词。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。