#这里首先将每月的天数用列表存储(先没有考虑闰年的情况)
m=[31,28,31,30,31,30,31,31,30,31,30,31]
#print(m[1])#用来判断列表数据是否正确
sum=0##########这里有点类似于C语言的方法,就先将sum赋值为0,方便后续操作
year=int(input("请输入年"))
month=int(input("请输入月"))
day=int(input("请输入日"))
if year%100!=0 and year%4==0 or year%400==0:
if month>2:
for i in m[0:month-1]:#注意这里切片的方法是前包含,后不包含,所以加月份数时注意
sum=sum+i#开始用的(sum=0+i)结果一直只能输出第一个月的天数,还是要像c一样的循环操作
print(sum)#判断sum的值是否正确
print("天数是{}+{}=第{}天".format(sum+1,day,sum+1+day))#此处加1,考虑闰年的情况
elif month==2:
print("天数是{}+{}=第{}天".format(m[0],day,m[0]+day))
else:#okokokokokokokookokok
print('111m[0]')
print("天数是第{}天".format(int(day)))
else :
for i in m[0:month-1]:
sum=sum+i
print('666m[0]')
print("天数是{}+{}=第{}天".format(sum,day,int(sum+day)))
首先考虑如何存储天数,想到用列表存储,又要考虑到特殊情况即是否是闰年
根据题目要求将其分为两个部分:
(1)是闰年有if elif else分为三个部分分别对应3~12月的情况,2月的情况,1月的情况
(2)不是闰年,直接运用for循环语句
其中值得注意的点是,for循环加天数要注意切片的利用,才能加到对应的月份的天数