【问题标题】:While loop with inputs带输入的while循环
【发布时间】:2018-03-23 20:24:02
【问题描述】:

我正在为一个学校项目做一个简单的游戏。这只是一个猜词游戏,我已经把大部分内容都记下来了,除非答案是错误的或完成的。到目前为止,这是我的代码。

guess = input('Guess a letter.')



blank_answer = list('_ _ _ _ _ _')
correct_answer ='banana'
correct_answer_final = 'b a n a n a'
guess_num = 4
index_num = 0


while guess_num > 0 and "".join(blank_answer) != correct_answer_final:


    index_num = 0
    for letter in correct_answer:
        if letter == guess:
            blank_answer[index_num] = letter
        index_num += 2

    if letter != guess:
        guess_num -= 1

    print('The Word so far is ' + "".join(blank_answer)       
    guess = input('Guess a letter. (You have ' + str(guess_num) + ' guesses remaining)')

if "".join(blank_answer) == correct_answer_final:
    print('Good job ')

if guess_num == 0:
    print('sorry you ran out of guesses') 

我遇到的主要问题是,在第一次猜测之后,它会说“剩余 3 个”猜测,然后即使它们是正确的,在再猜测几次后它也会跳到 2。此外,它不会在正确猜测后立即跳出循环。如果正确,您必须再次输入正确的字母。这是在图形窗口中完成的,因此我已将所有导入的命令更改为默认 python 以使其更易于理解。任何帮助都会很棒!

【问题讨论】:

  • 您的if letter != guess 语句只会与for letter in correct answer 的最后一个字母进行比较

标签: python for-loop if-statement while-loop


【解决方案1】:

不确定这是否能解决您遇到的问题,但您的 while 循环的条件似乎不正确。我认为您正在寻找的是

while guess_num > 0 and "".join(blank_answer) != correct_answer_final

(这里的区别是and 与or)

这样,如果猜测用完或猜到正确答案,循环将退出。

【讨论】:

  • 您好,感谢您的回复!我实际上在我的问题中犯了一个错误,我的版本具有“和”条件并面临列出的那些问题。不过感谢您的帮助!
猜你喜欢
  • 2013-11-16
  • 2020-02-15
  • 2015-12-11
  • 1970-01-01
  • 1970-01-01
  • 2016-05-27
  • 2015-10-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多