Python中的订票程序

Python中的订票程序,python,Python,我对Python相当陌生,周末一直在做一些练习。我现在正忙着做一个电影订票计划 我一直在研究如何为特定年龄段的人提供百分比值,我在代码中留下了一些注释,以说明我需要包括哪些内容 14.95的标准票价需要打10%和15%的折扣 我需要使用一个名为“buyTicket()”的函数,该函数包含在百分比计算步骤的参数中 到目前为止,该计划能够确定年龄,但我不确定如何将百分比添加到特定年龄,然后在选择每张票后将票价加总 下面是我当前的代码。非常感谢您提供关于包含和使用内容的任何建议 多谢各位 def ci

我对Python相当陌生,周末一直在做一些练习。我现在正忙着做一个电影订票计划

我一直在研究如何为特定年龄段的人提供百分比值,我在代码中留下了一些注释,以说明我需要包括哪些内容

14.95的标准票价需要打10%和15%的折扣

我需要使用一个名为“buyTicket()”的函数,该函数包含在百分比计算步骤的参数中

到目前为止,该计划能够确定年龄,但我不确定如何将百分比添加到特定年龄,然后在选择每张票后将票价加总

下面是我当前的代码。非常感谢您提供关于包含和使用内容的任何建议

多谢各位

def cinema():
age = int(input("Please enter your age: "))

if age < 18:
    print("Sorry. You are not over 18 years old. You cannot watch this movie.")

if age >= 18:
     print("You are allowed to see the film. Standard ticket price is £14.95 ")

#twentydiscount = 10% (over 20)
#oapdiscount = 15% (over 65)

def buyTicket(percentageDiscount):
    if age <= 20:
        print("You are under 20 years old. You are eligible for a 10% discount. Your ticket price will be", percentageDiscount)

    elif age >= 65:
        print("You are 65 years or over. You are eligible for a 15% discount. Your ticket price will be", percentageDiscount)
    else:
        print("You are", age, "years old. Your ticket price will be £14.95")

# totalticketprice = (adding up prices of tickets after tickets have been selected each time)

while (True):
   cinema()
   anotherticket = input("Do you want to find out more information about another ticket? (Yes/No): ")
   if anotherticket == 'No':
    exit()
buyTicket(percentageDiscount)
def cinema():
年龄=整数(输入(“请输入您的年龄:”)
如果年龄<18岁:
打印(“对不起,你还没有超过18岁,你不能看这部电影。”)
如果年龄大于等于18岁:
打印(“允许您观看电影。标准票价为14.95英镑”)
#二十折=10%(超过20)
#oapdiscount=15%(超过65)
def买票(百分比折扣):
如果年龄=65岁:
打印(“您已年满65岁。您有资格享受15%的折扣。您的票价将为”,Percentage折扣)
其他:
打印(“您是”,年龄,“岁。您的票价为14.95英镑”)
#totalticketprice=(每次选择车票后将车票价格相加)
虽然(正确):
电影院()
anotherticket=输入(“您想了解关于另一张票据的更多信息吗?(是/否):”)
如果另一张票证==“否”:
退出()
购票(百分比折扣)

首先定义一个函数来计算数字的百分比。您可以内联执行此操作,但需要多次执行,因此使用函数进行此操作是更好的编码:

def percentage(price, pct):
    return (pct * price) /100
然后,您可以在需要时调用此函数,如下所示:

print("You are 65 years or over. You are eligible for a 15% discount. Your ticket price will be", percentage(price, percentageDiscount))
您还必须创建price变量


附言:你的问题闻起来像是家庭作业;)

如果我读对了,我想这就是你想要的:

n = £14.95
x = n / 100
percent = n * x - 100
price = abs(age * percent / 100)

我认为这正是您要做的。前3行是计算从数字中获得百分比。

尽量不要将逻辑和界面(为用户打印)混淆太多。始终首先关注您的逻辑:

  • 将原始价格存储并保存在变量中
  • 将折扣存储在变量中,具体取决于买家的年龄
  • 收集所有你需要的信息
  • 算到底
  • 必要时通知用户
这是您的脚本示例(带有缩短的句子..):

#/usr/bin/python3
def电影院():
年龄=整数(输入('输入年龄:'))
如果年龄<18岁:
打印('对于这部电影来说太年轻了')
返回
折扣=获得折扣(年龄)
打印折扣信息(折扣)
价格=14.95
discd=计算折扣价格(价格、折扣)
打印(f'您的价格:{discd}(原价:{price})')
def get_折扣(年龄):
如果年龄=65岁:
折扣=0.15
其他:
折扣=0.0
退货折扣
def打印折扣信息(折扣):
如果折扣=0.0:
打印('不符合折扣条件')
其他:
打印('Qualified for折扣:{}%'。格式(int(折扣*100)))
def计算折扣价格(原价、折扣):
返回轮(原价-原价*折扣,2)
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
尽管如此:
电影院()
更多=输入('购买更多?(是/否):')
如果更多是的:
打破
示例性输出:

$ python3 cinema.py 
Enter age: 17
  Too young for this movie.
Buy more? (Yes/No): Yes
Enter age: 19
  Qualified for <= 20 discount (10%).
  Your price: 13.45 (original price: 14.95)
Buy more? (Yes/No): Yes
Enter age: 21
  No discount.
  Your price: 14.95 (original price: 14.95)
Buy more? (Yes/No): Yes
Enter age: 66
  Qualified for >= 65 discount (15%).
  Your price: 12.71 (original price: 14.95)
Buy more? (Yes/No): Nah
$python3 cinema.py
输入年龄:17岁
对这部电影来说太年轻了。
买更多?(是/否):是
输入年龄:19
有资格享受=65折扣(15%)。
你方价格:12.71(原价:14.95)
买更多?(是/否):不

谢谢您的回答。不过,很遗憾,我只需要为percentage函数使用一个参数。@pythonB为percentage函数只使用一个参数?这是一些奇怪的要求。然后我会在函数之外定义价格,并且只使用pct作为参数。感谢您的贡献,这非常有帮助!有没有简单的方法,我可以重新构造并包含一个带有一个参数的百分比a函数,以显示应该应用于机票的百分比折扣级别?非常感谢。我试图在最后添加一个功能,它将把所有选择的门票的总价格加起来,尽管我不确定在这个例子中我将使用什么变量。这是我目前添加的内容:while True:cinema()more=input(“您选择了所有需要的票了吗?(是/否):”)如果更多!='是”:打印(“您的总价格为:”,)退出()考虑从
cinema()
函数中选择最终价格,并在
为True时将所有这些返回价格汇总到
循环中。
$ python3 cinema.py 
Enter age: 17
  Too young for this movie.
Buy more? (Yes/No): Yes
Enter age: 19
  Qualified for <= 20 discount (10%).
  Your price: 13.45 (original price: 14.95)
Buy more? (Yes/No): Yes
Enter age: 21
  No discount.
  Your price: 14.95 (original price: 14.95)
Buy more? (Yes/No): Yes
Enter age: 66
  Qualified for >= 65 discount (15%).
  Your price: 12.71 (original price: 14.95)
Buy more? (Yes/No): Nah