words = "apple"
print("_ " *len(words), end="")
guessed = ""
for char in words:
guess = input("\n start guessing")
if guess in words:
for i in guess:
guessed += guess
else:
print("wrong letter")
word = "apple"
guessed = "_ " *len(word)
print(guessed)
while '_' in guessed:
guess = input("\nGuess a letter\n")
if len(guess) == 1:
if guess in word:
guessed = ' '.join([x if x == guess or x in guessed else '_' for x in word])
print(f"You guessed correct, the letter {guess} is in the word:\n{guessed}")
else:
print(f"Sorry, {guess} ist not correct.")
print('Congratulations, you solved it!')
以下应起作用:
我将
for
替换为一个while
循环,当用户必须猜测的单词中没有下划线时,该循环退出。这允许用户猜测,直到单词完成。如果要将用户限制在一定数量的猜测,可以添加一个计数器变量并相应地break
循环。你知道吗脚本进一步检查输入是否是带有
if len(guess) == 1:
的单个字符。然后,列表理解将根据以下条件替换下划线:用户是在(x in guessed
)之前猜到字符,还是在本轮(x == guess
)中猜到字符。你知道吗注意,这个涉及f字符串的解决方案在python版本>;3.6中工作。如果您使用的是另一个python版本,则必须替换f字符串。另外,我应该提到,这段代码是区分大小写的。因此,如果您的
word
以大写字母开头,并且用户猜到了第一个字母,但却是小写字母,那么脚本会认为它是一个错误的字母。你知道吗相关问题 更多 >
编程相关推荐