为什么我需要使用“ while”功能来解决此问题?

时间:2018-11-29 19:59:57

标签: python python-3.x

在Python 3中,我们目前正在学习如何使用“ while”功能。在有关“ while”功能的一章中,向我们提出了以下问题,因此,我认为需要针对问题使用“ while”功能。但是,我觉得我可以使用“ if”语句而不是“ while”语句解决问题。有人可以告诉我我是否错了?

“电影院根据一个人的年龄收取不同的票价。如果一个人未满3岁,则该票是免费的;如果他们在3到12岁之间,则该票为$ 10;如果超过了,则为$ 10。 12岁时,票价为15美元。编写一个循环,询问用户年龄,然后告诉他们电影票的价格。”

我的代码:

age = input("How old are you? ")
age = int(age)
if age < 3:
     print("Your ticket is free.")
elif age > 3 and age < 12:
     print("Your ticket is $10")
elif age > 12:
     print("Your ticket is $15")

这可以解决问题吗?谢谢!

4 个答案:

答案 0 :(得分:4)

  

写一个循环,询问用户年龄,然后告诉他们电影票的价格

您必须询问多个个用户的年龄

答案 1 :(得分:1)

正如已经指出的那样,您的程序应该循环播放,以允许许多用户获得票价。但是,请始终确保您不会陷入无限循环中,因此您需要考虑一种避免循环的方法。我建议用户可以输入“ Q”之类的信息来退出....但是,您必须考虑: 大写或小写...让用户输入小写(仅)进行比较可解决此问题,因此输入“ Q”将允许使用break语句退出循环。

接下来,您还应该考虑用户可以输入“十”,例如,使用try / except来停止float()吹起并吐出异常,可以使用try / except来处理。

本质上是“尝试执行此代码,如果不爆炸,请继续”,除了使用if语句时类似于“ else”。

我希望这解释了循环的必要性,以及编写此类程序时的其他注意事项以及如何处理它们。

while True:
    age = input("\nHow old are you? (Q to quit)")
    if age.lower() == "q":
        break
    try:
        age = int(age)
        if age <= 3:
             print("Your ticket is free.")
        elif age > 3 and age <= 12:
             print("Your ticket is $10")
        elif age > 12:
             print("Your ticket is $15")
    except:
        print("Invalid entry")
print("\nGoodbye")

答案 2 :(得分:0)

根据Leo stated,这是在问多个用户。使用:

age = None
while age is not "done": #or while True: for infinitely asking
    #insert your code

这会一直要求年龄,直到输入"done"

答案 3 :(得分:-1)

本练习中的“虽然”陈述不是针对“年龄”变量,而是针对“询问”过程。