""" 门票计算 门票计算规则如下: 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)}')
门票计算:按规则计算门票价格
未经允许不得转载:创想未来 » 门票计算:按规则计算门票价格
评论前必须登录!
注册