python输入月份判断天数用函数的方法,python 月份天数

本文介绍如何使用Python编写函数来判断年份是否为闰年,并根据输入的年份和月份计算该月的天数,包括两种不同的实现方法,同时利用try-except处理异常。通过实例演示了如何输入年月并获取相应天数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【问题描述】

编写一个函数 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 异常处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值