Python的听课笔记案例5--判别第几天3.0

原创
小哥 3年前 (2022-11-02) 阅读数 8 #大杂烩

v3.0本课介绍集合的概念:
Python中的集合(set)类型与数学中集合的概念一致,即包含0或多个数据项的无序组合。
集合中的元素不可重复。
集合是没有索引和位置概念的无序组合
set()该函数用于生成集合并返回结果。 没有重复和任何种类的 的集合
集合通常用于表示成员之间的关系,元素重复数据消除

集合操作

含义

s - t 或 s.difference(t)

在集合中返回。s中但不在t中的元素

s & t 或s.intersection(t)

返回集合中的这两个。s和t中的元素

s | t 或 s.union(t)

返回集合s和t中的所有元素

s ^ t 或s.symmetric_difference(t)

返回集合s和t中的元素,但不包括

其中的元素在同一时间

1、将30天、31一天中的月份被放在两个不同的组中;

2,确定当前月份之前的所有月份都在哪个集合中,然后添加天数30天或31天;

3、2几个月,加上28天;

4、闰年和大约2几个月,加上1天;

5,也需要是初始值。days先加上day。

"""
    作者:langxingbudui
    版本:3.0
    日期:2019-06-13
    功能:输入某一年的某一天,判断这一天是一年中的哪一天?
    2.0添加函数:使用列表而不是元组
    3.0新增功能:分月后再进行运算

"""

from datetime import datetime

def is_leap_year(year):
    """
        判断year今年是闰年吗?
        是,返回True
        否,返回False
    """
    is_leap = False
    if (year % 400 == 0) or ((year % 4 == 0) and (year % 100 != 0)):
        is_leap = True

    return is_leap

def main():
    """
        主函数
    """
    input_date_str = input(请输入日期(yyyy/mm/dd):)
    input_date = datetime.strptime(input_date_str, %Y/%m/%d)
    # print(input_date)
    year = input_date.year
    month = input_date.month
    day = input_date.day

    # 包含30天数的月份集合
    _30_days_month_set = {4, 6, 9, 11}
    # 包含31天数的月份集合
    _31_days_month_set = {1, 3, 5, 7, 8, 10, 12}

    # 初始化值
    days = 0
    days += day

    for i in range(1, month):
        if i in _30_days_month_set:
            days += 30
        elif i in _31_days_month_set:
            days += 31
        else:
            days += 28
    if is_leap_year(year) and month > 2:
        days += 1

    print(这是{}年的第{}天.format(year, days))

if __name__ == __main__:
    main()

结果如下:

版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除