为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

撒科打诨 2022-12-06 16:44:06
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我很困惑为什么这个函数不返回字符串,而是显示返回无
查看完整描述

3 回答

?
慕娘9325324

TA贡献1783条经验 获得超4个赞

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



查看完整回答
反对 回复 2022-12-06
?
慕勒3428872

TA贡献1848条经验 获得超6个赞

以下对您的 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 a

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

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

    return b

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

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

    return c

希望能帮助到你。


查看完整回答
反对 回复 2022-12-06
?
千万里不及你

TA贡献1784条经验 获得超9个赞

如果不满足条件,则返回 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


查看完整回答
反对 回复 2022-12-06
  • 3 回答
  • 0 关注
  • 129 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信