python练习案例100例(每天坚持一粒,按时服下)
题目2:输入某年某月某日,判断这一天是这一年的第几天?
输入年份 为了求是否为闰年,月份求前几个月的天数,则求出这一天是这一年的第几天就是需要先求闰年,然后求现在月份之前的天数,之后与这个月天数相加而得到天数。
题目答案代码:
year = int(input("请输入年份:"))
month = int(input("请输入月份:"))
day = int(input("请输入某一个月份的天数:"))
#将月份逐渐相加添加到列表中
months = [0,31,59,90,120,151,181,212,243,273,304,334]
if 0 < month <= 12:
sum = months[month-1]
else:
print("超出了年份的范围,年月份是你家定的啊!")
sum += day
if ((year % 400 == 0) or (year %4 == 0) and (year % 100 != 0)):
if(month > 2):
sum += 1
print('这一天是这一年的%d日'%sum)
我的版本:
Year = int(input('请输入年份:'))
Month = int(input('请输入月份:'))
Day = int(input('请输入天数:'))
if (Year%4==0andYear%100!=0)orYear%400==0:#判断语句,判断是否为闰年
if Month < 8:
a=(Month + 1) // 2
b=30*(Month-1)+a-1+Day
else:
a =Month//2-3
b=30*(Month-8)+213+a+Day #闰年时候的计算过程
else:
if 3<=Month<8:
a=(Month+1)//2
b=30*(Month-1)+a-2+Day
elif Month<3:
a=Month//2
b=30*(Month-1)+a+Day
else:
a=Month//2-3
b=30*(Month-8)+212+a+Day
print('您现在处于第%s天' % b)
用了很多冗余的语句,当时在if 判断语句 判断如何才能选择出闰年的时候想了很长时间,最后才发现可以先判断 "能被四整除但不能被100整除,或者能被400整除"这个语句就可以直接判断是否为闰年。