我正在尝试将12小时格式的时间转换为24小时格式。我不确定为什么我会收到无效的语法错误。
def timeConversion(s):
# Complete this function
if s[-2:]=='PM':
temp=s[:-2].split(':')
print temp
if temp[0]=='12':
time= str(12)+':'+temp[1]+':'+temp[2]
else:
time= str(int(temp[0]+12)+':'+temp[1]+':'+temp[2]
elif s[-2:]=='AM':
temp=s[:-2].split(':')
print temp
if temp[0]=='12':
time= '00:'+temp[1]+':'+temp[2]
else:
time= temp[0]+':'+temp[1]+':'+temp[2]
return time
timeConversion("07:05:45PM")
以下是错误:
答案 0 :(得分:3)
您缺少右括号:
time= str(int(temp[0]) + 12)+':'+temp[1]+':'+temp[2]
^
here
return time
行的缩进需要与if/elif
语句一致。
或者,您可以通过strptime
将字符串加载到日期时间对象,然后使用strftime
输出所需格式来完成您要做的事情。
from datetime import datetime
print datetime.strptime("07:05:45PM", "%I:%M:%S%p").strftime("%H:%M:%S")
答案 1 :(得分:1)
我会发布一个答案,因为我无法发表评论,因为@ILostMySpoon告诉你,你错过了演员阵容中的一个括号。我想补充一点的是,通常对于“非法语法”错误,你应该注意与引发错误的那一行相关的一行。我认为这是因为解释器认为“elif”行是先例的延续,显然它不理解语法。