""" @文件:三天打鱼,两天晒网 @说明:某人自2010年1月1日起开始“三天打鱼两天晒网”,判断这个人在以后的某一天中是打鱼还是晒网 @作者:秘密 @时间:2019.3.1 """ #年份输入 def Year_(): year = int(input("请输入年份:")) return year #平闰年判断 def judge_year(year): a = year % 4 b = year % 100 c = year % 400 if c == 0: i = 1 elif a == 0 and b != 0: i = 1 else: #年份为平年 i = 0 return i #月份输入 def Month_(): month = int(input("请输入月份:")) return month #日期输入及判断 def Day_(month,i): day = int(input("请输入日期:")) if month == 1: if day > 31: print("输入错误") Day_(month, i) if month == 2 and i == 1: if day > 29: print("输入错误") Day_(month, i) if month == 2 and i == 0: if day > 28: print("输入错误") Day_(month, i) if month == 3: if day > 31: print("输入错误") Day_(month, i) if month == 4: if day > 30: print("输入错误") Day_(month, i) if month == 5: if day > 31: print("输入错误") Day_(month, i) if month == 6: if day > 30: print("输入错误") Day_(month, i) if month == 7: if day > 31: print("输入错误") Day_(month, i) if month == 8: if day > 31: print("输入错误") Day_(month, i) if month == 9: if day > 30: print("输入错误") Day_(month, i) if month == 10: if day > 31: print("输入错误") Day_(month, i) if month == 11: if day > 30: print("输入错误") Day_(month, i) if month == 12: if day > 31: print("输入错误") Day_(month, i) return day #计算总天数 def Cacular_(year,month,day): year_bag = [] yearsum = 0 #设置变量的初始值:自2010年至指定年份year,year-2010年的总天数 monthsum = 0 #设置变量的初始值:指定月份month,month-1个月的总天数 cacularyear = year-2010 cacularmonth = month-1 for j in range(0, cacularyear+1): #将自2010年至指定年的前一年的年份归入year_bag中 year_bag.append(2010+j) for x in year_bag: #遍历判断平闰年 y = judge_year(x) if y == 1: #366天 yearsum = yearsum+366 if y == 0: #365天 yearsum = yearsum+365 if cacularmonth == 1: monthsum = 31 #1月总天数 if cacularmonth == 2: monthsum = 59 #1月+2月(28天)总天数 if cacularmonth == 3: monthsum = 90 #1月+2月(28天)+3月总天数 if cacularmonth == 4: monthsum = 120 #1月+……+4月总天数 if cacularmonth == 5: monthsum = 151 #…… if cacularmonth == 6: monthsum = 181 #…… if cacularmonth == 7: monthsum = 212 #…… if cacularmonth == 8: monthsum = 243 #…… if cacularmonth == 9: monthsum = 273 #…… if cacularmonth == 10: monthsum = 304 #…… if cacularmonth == 11: monthsum = 334 #1月+……+12月总天数 daysum = yearsum+monthsum+day return daysum #判断打鱼或晒网 def Judge_(daysum): fish = daysum % 5 #求余数 if fish == 1 or fish == 2 or fish == 3: print("打鱼") if fish == 4 or fish == 0: print("晒网") if __name__ == "__main__": syear = Year_() while syear < 2010: print("输入错误") syear = Year_() si = judge_year(syear) smonth = Month_() while smonth > 12: print("输入错误") smonth = Month_() sday = Day_(smonth, si) sdaysum = Cacular_(syear, smonth, sday) scacularyear = syear-2010 if si == 1 and scacularyear > 1: #是否存在2月29日 sdaysum = sdaysum+1 Judge_(sdaysum)
流程图
调试结果
测试结果