# 输入某年某月某日判断这一天是这一年的第几天
def times():
#死循环当输入的内容符合月份1~12,日期1~31才允许继续执行
year = int(input('请输入年份'))
while True:
i = 0
month = int(input('请输入月份'))
#当输入的月份符合规则继续输入天数
if month not in [i for i in range(1, 13)]:
print("月份输入错误")
continue
while True:
day = int(input('请输入天数'))
#当输入的天数符合规则进行闰年的判断
if day not in[m for m in range(1, 32)]:
print("天数输入错误")
continue
# 判断是否是闰年
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
month_number = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
# 如果输入的月份在months里,进行循环相加
for m in range(month - 1):
# 取每个月的天数相加
i += month_number[m]
print(i)
# 所有的天数加上输入的天数
days = i + day
print(days)
print(f"{year}年-{month}月-{day}日,是{year}年的第{days}天")
else:
month_number = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
for m in range(month - 1):
i += month_number[m]
days = i + day
print(f"{year}年-{month}月-{day}日,是{year}年的第{days}天")
times()
当满足第一个判断时,会继续当前循环直到用户输入的值在1~12之间,然后进入第二个判断,满足第二个判断则继续当前的while循环,直到用户输入的值在1~31之间 8、要多print检查结果,当出现报错的时候可以多加print看看哪一步出了问题,对于新手来说断点调试还是有些难度的就可以通过print来检查