将“输入”插入未知位置

2024-04-25 06:04:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我想找出“words”中用户“guess”的位置,然后在正确的位置将猜测的字符与“\”一起打印:

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")

Tags: 用户inappleforinputlen字符start
1条回答
网友
1楼 · 发布于 2024-04-25 06:04:27

以下应起作用:

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以大写字母开头,并且用户猜到了第一个字母,但却是小写字母,那么脚本会认为它是一个错误的字母。你知道吗

相关问题 更多 >