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
相关产品推荐
相关产品推荐

