【每天学点Python】案例五:判断第几天

判断第几天

V1.0

案例描述:

  • 输入某年某月某日,判断这一天是这一年的第几天?
  • Demo:
    • 输入的日期为2017/03/05,是2017年的第几天?
    • 输入的日期为2012/03/05,是2012年的第几天?

案例分析:

  1. 每个月份的天数不同
  2. 闰年与平年的2月份天数不同
  3. 闰年判断:
    • 四年一闰百年不闰
    • 四百年再闰

上机实验:

 1 """
 2     作者:王鑫正
 3     版本:1.0
 4     日期:2018年9月24日
 5     功能:输入某年某月某日,判断这一天是这一年的第几天?
 6 """
 7 
 8 from datetime import datetime
 9 
10 
11 def main():
12     """
13         主函数
14     """
15     input_date_str = input('请输入日期(yyyy-mm-dd):')
16     input_date = datetime.strptime(input_date_str, '%Y-%m-%d')
17     print(input_date)
18 
19     year = input_date.year
20     month = input_date.month
21     day = input_date.day
22 
23     # 计算之前月份天数的总和以及当前月份天数
24     days_in_month_tup = (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)
25     # print(days_in_month_tup[: month - 1])
26     days = sum(days_in_month_tup[: month - 1]) + day
27 
28     if (year % 400 == 0) or ((year % 4 == 0) and (year % 100 != 0)):
29         if month > 2:
30             days += 1
31 
32     print('这是第{}天:'.format(days))
33 
34 
35 if __name__ == '__main__':
36     main()
View Code

补充说明:

1. 元组

  • 元组(tuple)是特殊的序列类型
  • 一旦被创建就不能修改,使得代码更安全
  • 使用逗号和圆括号来表示,如('red', 'blue', 'green'), (2, 4, 6)
  • 访问方式和列表相同
  • 一般用于表达固定数据项、函数多返回值等情况

2. 特点

  • 元组中的元素可以是不同类型的
  • 元组中个元素存在先后关系,可通过索引访问元组中元素

V2.0增加功能:

猜你喜欢

转载自www.cnblogs.com/Kevin-WangXinzheng/p/9697213.html