"""
门票计算
门票计算规则如下:
1.工作日票价100元
2.周末票价是工作日票价的120%
3.儿童半票
问:计算2个成人+1个小孩的总票价票价
"""
import time
class Ticket:
"""
门票类,用于计算门票价格。
参数:
- is_weekend: 布尔值,表示是否是周末。
- is_child: 布尔值,表示是否是儿童票。
属性:
- price: 基本票价。
- rate: 价格比率,用于区分工作日和周末。
- discount: 折扣率,用于区分成人和儿童。
"""
def __init__(self, is_weekend=False, is_child=False):
self.price = 100
self.rate = 1.2 if is_weekend else 1
self.discount = 0.5 if is_child else 1
def cal_price(self, num):
"""
计算门票总价。
参数:
- num: 门票数量。
返回:
门票的总价格。
"""
return self.price * self.rate * self.discount * num
def date_is_weekend(date):
"""
判断给定日期是否是周末。
参数:
- date: 字符串,日期,格式为"YYYY-MM-DD"。
返回:
布尔值,如果给定日期是周末,则返回True,否则返回False。
"""
date = time.strptime(date, "%Y-%m-%d")
return True if date.tm_wday in [5, 6] else False
def cal_cost(date, adult_num, child_num):
"""
计算给定日期的成人和儿童门票总费用。
参数:
- date: 字符串,日期,格式为"YYYY-MM-DD"。
- adult_num: 整数,成人数量。
- child_num: 整数,儿童数量。
返回:
成人和儿童门票的总费用。
"""
price = 0
is_weekend = date_is_weekend(date)
t_adult = Ticket(is_weekend=is_weekend, is_child=False)
price += t_adult.cal_price(adult_num)
t_child = Ticket(is_weekend=is_weekend, is_child=True)
price += t_child.cal_price(child_num)
return price
if __name__ == '__main__':
d = "2024-06-01"
print(f'{d},2个单人+1个小孩票价是:{cal_cost(d, 2, 1)}')
门票计算:按规则计算门票价格
未经允许不得转载:创想未来 » 门票计算:按规则计算门票价格

创想未来
评论前必须登录!
注册