鱼C论坛

 找回密码
 立即注册
查看: 2154|回复: 4

练习题目2

[复制链接]
发表于 2022-9-19 20:38:08 | 显示全部楼层 |阅读模式
18鱼币
题目:输入某年某月某日,判断这一天是这一年的第几天?

不明白之处
已用数字标明
希望可以得到一份详细的解读,谢谢!!!!!

ce79c409e73ea30d238fea5ece73171.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-9-19 20:57:16 | 显示全部楼层
1.第一个是说不同月份天数之和的列表0=0月份只有0天,31=1月份有31天,59指1加2两个月有59天(按照平年2月份有28天算),90=1+2+3三个月天数总共为90天;
2,第二个地方是说一年月份1~12个月
3.因为列表索引是0开始的所以天数应该是指定月份-1
4.sum=sum+day即月份的天数加日期的天数
5.因为闰年的二月份有29天所以先判断是否年份为闰年
6、7.当是闰年而且月份大于2时候总的天数加一
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-9-19 21:28:23 | 显示全部楼层
(1)非闰年下,每月第一天是概念的第几天
(2)判断月份是否为1-12月份
(3)讲这个月第一天是这一年第几天赋给sum
(4)sum再加上这个月的日期(由于认定一年第一天为0,所以这里的日期可以直接相加)
(5)判断这一年是否为闰年,因为(1)中认定二月份只有28天
(6、7)若是闰年,切月份大于2,需要考虑二月份是29天,因此要加1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-9-19 22:57:50 | 显示全部楼层
python自带日期计算模块datetime。你可以这么写:
  1. import datetime as dt

  2. date_str=input("请输入要查询的年月日,以英文逗号隔开,如1999,05,12:")
  3. a=dt.datetime(date_str)
  4. b=dt.datetime(a.year,1,1)
  5. result=(a-b).days
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-9-20 14:20:54 | 显示全部楼层
甲乙 发表于 2022-9-19 20:57
1.第一个是说不同月份天数之和的列表0=0月份只有0天,31=1月份有31天,59指1加2两个月有59天(按照平年2月 ...

我是不是可以这样理解第五点:
基于优先运算符的原则,and大于or
and是要同时两边为ture,才能判定成功,否则都是false
or是从左往右看,如果左边是ture,那么这个条件就会成立
然后根据短路逻辑判定
那第五点的思路,就是从(year %4 ==0)and (year % 100 !=0)先判定是否合适符合
(年份%4是否等于0,年份%100是否不等于0)如果都是true就会继续判定(year%400==0)or(year%4==0)是否为ture,如果为true,sum就会执行加1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-24 10:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表