You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何将现有月份天数查询代码改写为使用函数实现的形式?

函数改写方案

你可以将「根据月份名称匹配对应天数」的核心逻辑封装为独立函数,和原代码逻辑完全一致的改写版本如下:

def get_month_days(month_name):
    # 定义不同天数对应的月份列表
    thirty_days = ['April','June','September','November']
    thirty_one_days = ['January','March','July','August','October','December']

    if month_name in thirty_days:
        return '30'
    elif month_name in thirty_one_days:
        return '31'
    elif month_name == 'February':
        return '28 or 29'
    else:
        return '输入的月份名称无效'

# 程序执行入口
if __name__ == '__main__':
    input_month = input('What month is it? ')
    days = get_month_days(input_month)
    print(f'Number of days: {days}')

可选优化点

  • 增加输入容错处理:用户输入的大小写不规范也能正常识别,只需要修改输入获取的代码为 input_month = input('What month is it? ').strip().capitalize()
  • 用字典替代列表做匹配,查找效率更高,代码也更简洁,改写后的函数如下:
def get_month_days(month_name):
    month_map = {
        'April': '30', 'June': '30', 'September': '30', 'November': '30',
        'January': '31', 'March': '31', 'July': '31', 'August': '31', 'October': '31', 'December': '31',
        'February': '28 or 29'
    }
    return month_map.get(month_name, '输入的月份名称无效')
  • 如果后续需要扩展闰年判断逻辑,可以再单独封装一个is_leap_year函数,输入年份返回是否为闰年,就可以精准返回二月的实际天数。

内容的提问来源于stack exchange,提问作者user17203516

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 03:06:00