python字符串相关问题

写一个函数view_24hour,输入12小时制时间,输出24小时时间

例如:

view_24hour("9:30pm"),输出"21:30"

view_24hour("8:20am"),输出"8:20"

注意,输入和输出都是str类型变量。

def view_24hour(str1):
if str1[-2:]=="am" and str1[:2]=="12":
return "00" + str1[2:-2]
elif str1[-2:] == "am":
return str1[:-2]
elif str1[-2:] == "pm" and str1[:2] == "12":
return str1[:-2]
else:
return str(int(str1[:2])+12)+str1[2:8]

view_24hour("9:30pm")

我测试结果出不来,一直报错,不知道哪里错了

改了一下,望采纳,谢谢

def view_24hour(str1):
    if str1[-2:]=="am" and str1[:2]=="12":
        return "00" + str1[2:-2]
    elif str1[-2:] == "am":
        return str1[:-2]
    elif str1[-2:] == "pm" and str1[:2] == "12":
        return str1[:-2]
    else:
        return str(int(str1.strip(':')[0]) +12)+ ':' + str(str1[2:8])

print(view_24hour("9:30pm"))


import re
def view_24hour(a):
    if "am" in a:
        b = re.match(r"[0-9]{1,2}:[0-9]{1,2}",a).span()
        return a[b[0]:b[1]]
    elif "pm" in a:
        b = int(a[0:a.index(":")])+12
        c = str(b)+a[a.index(":"):a.index("p")]
        return c
    return ""
print(view_24hour(input()))