【发布时间】:2020-10-29 03:53:58
【问题描述】:
我试图创建一个函数 timeConversion,它以 12 小时时间格式作为输入并返回 24 小时时间格式。输入是一个包含 12 小时格式时间的字符串,即hh:mm:ssAM、hh:mm:ssPM。 hh、mm、ss分别代表小时、分钟和秒。
完整代码:
def timeConversion(s):
s = list(s)
if s[-2:] == 'AM':
if s[:2] == ['1', '2']:
s[0] = 0
s[1] = 0
else :
if s[:2] != ['1', '2']:
s[0] = (int(s[0])*10 + int(s[1]) + 12) // 10
s[1] = (int(s[0]+s[1]) + 12) % 10
del s[-2:]
s = ''.join(s)
return s
x = timeConversion("07:05:45PM")
x
在第 10 行
s[1] = (int(s[0]+s[1]) + 12) % 10
我收到以下错误消息:
TypeError: +: 'int' 和 'str' 的操作数类型不受支持
我尝试过使用
type(int(s[0]+s[1]))
它返回 int 类型,那么我错过了什么?
【问题讨论】:
-
s包含什么? -
猜你想要
(int(s[0])+int(s[1]) + 12) % 10 -
“我尝试使用 ... 并且它返回 int 类型” - 尝试将其放在错误位置之前,您会发现这也会引发 TypeError。您的类型在整个程序中并不一致。
-
到第 10 行时,
s[0]是一个整数,s[1]是一个字符串。所以s[0]+s[1]给了你的TypeError。
标签: python arrays string concatenation typeerror