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

Python使用datetime模块time()函数时出现TypeError错误如何解决

错误引发原因

  • input()函数的返回值固定为字符串类型,你直接将未处理的字符串传入datetime.time()不符合该方法的参数要求
  • datetime.time()需要接收3个独立的整数参数,分别对应小时、分钟、秒,不支持直接传入单个字符串参数,因此触发了「字符串不能被识别为整数」的类型错误

修复方法

需要先对用户输入的字符串做分割、类型转换后,再传入time()方法,根据常见的输入习惯可以选择两种适配方案:

方案1:适配逗号分隔的输入(示例输入12,50,15)

from datetime import time

def main():
    departure_time = input("请输入出发时间,按逗号分隔时、分、秒:")
    # 分割字符串并逐个转换为整数
    hour, minute, second = map(int, departure_time.split(','))
    departure = time(hour=hour, minute=minute, second=second)
    print(departure)

if __name__ == '__main__':
    main()

方案2:适配空格分隔的输入(示例输入12 50 15)

仅需修改分割逻辑即可:

hour, minute, second = map(int, departure_time.split())

可选优化:添加输入容错校验

如果要避免用户输入格式不规范导致程序崩溃,可以添加异常捕获逻辑:

from datetime import time

def main():
    while True:
        departure_time = input("请输入出发时间,按逗号分隔时、分、秒:")
        try:
            hour, minute, second = map(int, departure_time.split(','))
            departure = time(hour=hour, minute=minute, second=second)
            break
        except (ValueError, TypeError):
            print("输入格式错误,请按示例格式输入,例如:12,50,15")
    print(departure)

if __name__ == '__main__':
    main()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 09:24:03