我今天已经发了3篇关于pyschools.com网站我希望这不算太多。不管怎样,这个练习要求我编写一个函数来将时间转换为24小时格式。 下面是一个示例:>;>;>;time24hr('12:34am')'0034hr'
我的功能,在我空闲时运行良好:
def time24hr(tstr):
am_or_pm = tstr[-2:]
first_numbers = tstr[0:2]
last_numbers = tstr[3:5]
if am_or_pm == "am":
if first_numbers == '12':
first_in_am12 = '00'
return first_in_am12 + last_numbers + am_or_pm
else:
return first_numbers + last_numbers + am_or_pm
if am_or_pm == "pm":
if first_numbers == '12':
return first_numbers + last_numbers + am_or_pm
elif int(first_numbers) > 9:
ok = repr(int(first_numbers) + 12)
return ok + last_numbers + am_or_pm
elif int(first_numbers) <= 9:
ok = repr(int(tstr[1]) + 12)
return ok + last_numbers + am_or_pm
但是,在pyschools网站上,当我运行代码时,它会给出以下错误: ValueError:基为10的int()的文本无效:“1:” 这是什么意思?在
它将在pyschools中起作用
实际上,您的代码是不正确的,您没有使用完整的测试用例进行测试。考虑以下场景
你会看到奇怪的结果
原因是,您假设输入的格式始终是HH:MM[am | pm]。你应该使你的代码能够灵活地接受其他格式。在
尝试使用}
split(':')
而不是first_numbers = tstr[0:2]
和{相关问题 更多 >
编程相关推荐