【问题标题】:Write a basic program that takes number and returns its corresponding month abbreviation编写一个基本程序,接受数字并返回其对应的月份缩写
【发布时间】:2017-08-23 22:05:03
【问题描述】:

我正在尝试编写一个基本函数,它接受一个数字并返回每个月的缩写。听起来很简单,但是如何使用“try-except”块来处理任何异常?

这是我目前所拥有的。

def month():
    months = "JanFebMarchAprilMayJuneJulyAugSepOctNovDec"
    n = eval(input("Enter month Number: "))
    pos = (n-1)*3
    monthAbbrev = months

    return monthAbbrev

我想我的问题是如何放入超出范围的 try-expect 句柄索引? 我完全迷失在这里。感谢您的帮助

【问题讨论】:

  • 并非所有月份都是缩写。为什么不直接使用列表而不是长字符串?

标签: python indexing error-handling except


【解决方案1】:

这只是在正确的索引处返回月份,如果它不存在,它会重新运行字符串 Error 将其替换为您需要的任何内容。

def month(n):
        months = ("Jan", "Feb", "Mar", ...)
        try:
            return months[n-1]
        except IndexError:
            return "Error"

【讨论】:

  • 不要玩 Pokemon 异常处理。你确实想把它们都抓起来。仅捕获错误索引会抛出的 IndexError 异常,仅此而已,例如,您不想在此处屏蔽 MemoryErrorKeyboardInterrupt
【解决方案2】:

导入日期时间 mydate = datetime.datetime.now() mydate.strftime("%b")

Get month name from number

除了捕获任何错误之外,尝试围绕它

【讨论】:

    猜你喜欢
    • 2021-11-05
    • 1970-01-01
    • 2016-02-27
    • 2014-03-30
    • 1970-01-01
    • 1970-01-01
    • 2022-11-15
    • 2022-12-04
    • 1970-01-01
    相关资源
    最近更新 更多