欢迎光临
我们一直在努力

门票计算:按规则计算门票价格

"""
门票计算
门票计算规则如下:
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)}')
赞(0) 打赏
未经允许不得转载:创想未来 » 门票计算:按规则计算门票价格

评论 抢沙发

评论前必须登录!

 

更好的Python学习

支持快讯、专题、百度收录推送、人机验证、多级分类筛选器,适用于垂直站点、科技博客、个人站,扁平化设计、简洁白色、超多功能配置、会员中心、直达链接、文章图片弹窗、自动缩略图等...

联系我们联系我们

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册