You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

12小时制转24小时制时,如何将列表中的单个字符串转为整数?

12小时制转24小时制的问题解决

你的代码报错原因

  • 第一段代码错误:input().split(" ")执行后,hr24[0]是类似"11:00"的带冒号字符串,直接用int()转换会失败,因为int()只能解析纯数字组成的字符串。
  • 第二段代码错误:map(int, hr24[0])会遍历字符串的每个字符(包括冒号:),冒号无法转换为整数,直接触发报错;而且map()返回的是迭代器对象,不是你需要的小时数值。

正确实现方式

手动处理逻辑

先拆分时间和时段,再拆分小时和分钟,最后根据AM/PM调整小时数:

# 获取输入并拆分
time_input = input().strip()
time_part, period = time_input.split(" ")
hour_str, minute = time_part.split(":")
hour = int(hour_str)

# 处理24小时制转换
if period == "PM":
    if hour != 12:
        hour += 12
else:  # AM时段
    if hour == 12:
        hour = 0

# 格式化输出,确保小时是两位数字
print(f"{hour:02d}:{minute}")

测试输入11:00 PM,输出23:00;输入12:30 AM,输出00:30;输入12:00 PM,输出12:00,覆盖常见边界情况。

用Python内置datetime模块简化

利用strptime解析12小时制时间,再用strftime输出24小时制:

from datetime import datetime

time_input = input().strip()
# 解析输入为datetime对象
time_obj = datetime.strptime(time_input, "%I:%M %p")
# 格式化为24小时制字符串
print(time_obj.strftime("%H:%M"))

这种方式无需手动处理边界情况,Python内置模块会自动处理所有规则,代码更简洁可靠。

内容的提问来源于stack exchange,提问作者rorycostigan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 03:32:51