【问题标题】:Printing final elif statement in while loop在while循环中打印最终的elif语句
【发布时间】:2021-06-30 17:45:26
【问题描述】:

我在 Python 中创建了一个简单的程序,其中我使用随机数模块生成一个介于 1 和 10 之间的随机数,然后要求用户猜测数字,如下所示:

import random

randnum = random.randint(1, 10)

guess = input("Guess a number between 1 and 10: ")
guess = int(guess)

while guess != randnum:
    if guess < randnum:
        print("Your guess is too low.")
        guess = input("Guess again: ")
        guess = int(guess)
    elif guess > randnum:
        print("Your guess is too high")
        guess = input("Guess again: ")
        guess = int(guess)
    elif guess == randnum:
        print("That is correct!")

我的问题是让程序在猜到正确数字时打印最终的 elif 语句。相反,while 循环终止,因为条件已经满足。猜到正确的数字后,如何打印出最终陈述?

【问题讨论】:

  • Final elif 永远不会在 while 循环内执行,因为您的 while 循环条件不允许它执行
  • 如果您发现我的回答有用,您可以接受它作为未来访问者的正确答案。

标签: python


【解决方案1】:

当用户得到它的权利,然后guess != randnum将是错误的循环将寻找任何选项之前退出。只要将最后elif外循环: P>

import random

randnum = random.randint(1, 10)

guess = input("Guess a number between 1 and 10: ")
guess = int(guess)

while guess != randnum:
    if guess < randnum:
        print("Your guess is too low.")
        guess = input("Guess again: ")
        guess = int(guess)
    elif guess > randnum:
        print("Your guess is too high")
        guess = input("Guess again: ")
        guess = int(guess)

print("That is correct!")

虽然我会写代码更多的东西是这样的:

import random

randnum = random.randint(1, 10)

guess = int(input("Guess a number between 1 and 10: "))

while guess != randnum:
    if guess < randnum:
        print("Your guess is too low.")
    elif guess > randnum:
        print("Your guess is too high")
    
    guess = int(input("Guess again: "))

print("That is correct!")

【讨论】: