求教! 为什么运行的结果不对。
year,month = map(int,input('请输入年份和月份(以空格隔开):').split())def days(m,f):
if m == 4 or m == 6 or m == 9 or m == 11 :
print("%d年的%d月份有30天。" % (year,month))
elif m == 2:
if f :
print("%d年的%d月份有29天。" % (year,month))
else:
print("%d年的%d月份有28天。" % (year,month))
else:
print("%d年的%d月份有31天。" % (year,month))
if year % 400 == 0:
days(month,1)
elif year % 4 == 0 or year % 100 :
days(month,1)
else:
days(month,0)
---------------------------------------------------------------------
以上运行后 输入2021 2 ,输出结果是:2021年的2月份有29天。
应该是28的。
为什么没有运行到 else:
print("%d年的%d月份有28天。" % (year,month)) elif year % 4 == 0 or year % 100 :
这里错了
修改后为
year,month = map(int,input('请输入年份和月份(以空格隔开):').split())
def days(m,f):
if m == 4 or m == 6 or m == 9 or m == 11 :
print("%d年的%d月份有30天。" % (year,month))
elif m == 2:
if f != 0 :
print("%d年的%d月份有29天。" % (year,month))
else:
print("%d年的%d月份有28天。" % (year,month))
else:
print("%d年的%d月份有31天。" % (year,month))
if year % 400 == 0:
days(month,1)
elif year % 4 == 0 or year % 100 == 0:
days(month,1)
else:
days(month,0)
if year % 400 == 0:
days(month,1)
elif year % 4 == 0 and year % 100 :
days(month,1)
else:
days(month,0) 小甲鱼的铁粉 发表于 2021-8-26 10:17
这里错了
修改后为
我这个不对,看三楼的吧 小甲鱼的铁粉 发表于 2021-8-26 10:17
这里错了
修改后为
错是并的关系不是or wp231957 发表于 2021-8-26 10:22
错是并的关系不是or
谢谢,脑子糊涂了。纠结了半天没看出问题。你一语点破{:5_108:}
year, month =
def days(y: 'year', m: 'month') -> int:
a =
b =
if m in a: return 31
elif m in b: return 30
elif isLeap(y): return 29
else: return 28
def isLeap(y: 'year') -> bool:
return y%4 == 0
print(f"{year}年的{month}月份有{days(year, month)}天") 傻眼貓咪 发表于 2021-9-3 21:53
写代码的思路向你学习。{:5_106:}但闰年的判断错了。
y%4==0 --> y%400==0 or y%4==0 and y%100
页:
[1]