python 月份天数

【问题描述】

编写一个函数 day_of_month(year, month)

编写程序输入年(year)、月(month),调用该函数,返回该年份该月的天数,输出返回的天数。

公历闰年的计算方法为:

    年份能被4整除且不能被100整除的为闰年

    或者,年份能被400整除的是闰年。

【输入描述】

共一行。有两个整数,第一个是年份,第二个是月份。年份和月份之间以一个空格隔开。

【输出描述】 

输出该年该月的天数。

【输入示例】

2017 11

【输出示例】

30

第一种解法:

#输入年份、月份,输出该月份的天数

def is_runnian(nian):
    #闰年:1. 被4整除,不被100整除 2. 被400整除
    if (nian % 4 == 0 and nian % 100 != 0) or nian % 400 == 0:
        return True
    return False
#1. 输入年份月份
ny_str = input()  #"2017 11"
nian, yue = ny_str.split()  #"2017"-->nian, "11" --> yue
nian = int(nian)
yue = int(yue)
#print("nian:", nian, "yue:", yue)

#2.输出月份的天数
yue_ts = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
if is_runnian(nian):
    yue_ts[1] = 29
print(yue_ts[yue - 1])

第二种解法:

import time
year , month = input().split()
def getDays( year, month ):
    day = 31                #定义每月最多的天数
    while day:
        try:
            time.strptime( '%s-%s-%d'%( year, month, day ), '%Y-%m-%d' )  #尝试将这个月最大的天数的字符串进行转化

            return day      #成功时返回得就是这个月的天数
        except:
            day -= 1        #否则将天数减1继续尝试转化, 直到成功为止

print (getDays(year,month))

>  巧妙利用while return 语句 和 try except 异常处理

猜你喜欢

转载自blog.csdn.net/qq_37752067/article/details/84311852
今日推荐