python:转换 24 小时以及为什么使用 if 将返回 None

def time24hr(tstr): 

    if tstr[-2:0] == 'am' and tstr[0:2] == '12':

        a = '00' + tstr[3:5] + 'hr'

        return a


    elif tstr[-2:0] == 'am' and tstr[0:2] != '12':

        b = tstr[0:2] + tstr[3:5] + 'hr'

        return b

    elif tstr[-2:0] == 'pm':

        c = str(int(tstr[0:2]) + 12) + tstr[3:5] + 'hr'

        return c

我很困惑为什么这个函数不返回字符串,而是显示返回无


撒科打诨
浏览 132回答 3
3回答

慕娘9325324

你有if.. elif.. elif,这意味着如果输入tstr不满足任何条件,你的函数将返回无,因为在if 或 elif 块之外没有 return 语句。

慕勒3428872

以下对您的 if 条件的更改将有助于解决您的问题。我刚转换tstr[-2:0]成tstr[-2:]def time24hr(tstr): if tstr[-2:] == 'am' and tstr[0:2] == '12':    a = '00' + tstr[3:5] + 'hr'    return aelif tstr[-2:] == 'am' and tstr[0:2] != '12':    b = tstr[0:2] + tstr[3:5] + 'hr'    return belif tstr[-2:] == 'pm':    c = str(int(tstr[0:2]) + 12) + tstr[3:5] + 'hr'    return c希望能帮助到你。

千万里不及你

如果不满足条件,则返回 None(因为在这种情况下没有返回值)。如果不满足所有条件(即false),您可以添加返回值。这表明tstr您提供的时间格式不正确,无法在您的函数中进行转换。 def time24hr(tstr):     if tstr[-2:0] == 'am' and tstr[0:2] == '12':        a = '00' + tstr[3:5] + 'hr'        return a    elif tstr[-2:0] == 'am' and tstr[0:2] != '12':        b = tstr[0:2] + tstr[3:5] + 'hr'        return b    elif tstr[-2:0] == 'pm':        c = str(int(tstr[0:2]) + 12) + tstr[3:5] + 'hr'        return c    return false
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python