概述
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()
结果如下图:
最后
以上就是美满舞蹈为你收集整理的Python的学习笔记案例5--判断第几天3.0的全部内容,希望文章能够帮你解决Python的学习笔记案例5--判断第几天3.0所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复