关于#python#的问题:要求用户输入一个(1-365)之间的整数,当用户输入错误时要求用户重新输入
问题描述:
编写一个程序,要求用户输入一个(1-365)之间的整数,当用户输入错误时要求用户重新输入。然后以输入值作为一年中的第几天,以此计算这一天是几月几日,并分别考虑闰年和非闰年的情况
答
这样?
import datetime
y=datetime.datetime.now().year
isRN= (y % 400 == 0) or (y % 4 == 0 and y % 100 != 1)
feb=28
if isRN:
feb=29
day=0
while True:
s=input("请输入一个1-365之间的整数")
if s.isdigit():
day=int(s)
if 0<day<366:
break;
else:
print("请输入数字")
m=1
date=1
for i in range(1,day):
date+=1
if m == 1 or m == 3 or m == 5 or m == 7 or m == 8 or m == 10 or m == 12:
if date>31:
m+=1
date=1
elif m == 4 or m == 6 or m == 9 or m == 11:
if date>30:
m+=1
date=1
else:
if date>feb:
m+=1
date=1
print(str(m)+'月'+str(date)+'日')
有帮助麻烦点下【采纳该答案】
答
也没有输入年份啊,怎么知道是不是闰年呢?
答
year = int(input(‘year:’))
month = int(input(‘month:’))
day = int(input(‘day:’))
day_list = [0,31,59,90,120,151,182,213,243,273,304,334]
num_day = 0
if 0<month<12:
num_day = day_list[month-1]
else:
print(“error”)
num_day += day
if (year % 400 == 0) or ((year % 4 == 0) and (year % 100 != 0)):
if month > 2 :
num_day += 1
print(num_day)