Python实现分钟转时分格式时输出异常与报错问题求助
问题根因
- 小时计算逻辑错误:Python3 中
/是浮点数除法,63/60的运算结果为浮点数1.05,不是你需要的整数小时值。你应该使用整数除法运算符//,63//60会直接返回整数1。 - 修改后的返回语句逻辑错误:
- 你先把浮点型的小时值转成了带小数点的字符串(如
"1.05"),再尝试转int类型,会因为字符串包含小数点不符合整数格式触发报错 - 即使转换成功,int类型和字符串
':'直接相加也会触发类型不匹配报错
- 你先把浮点型的小时值转成了带小数点的字符串(如
修复方案
直接修改小时计算逻辑,用整数除法取整即可,字符串拼接可以用f-string简化写法,避免手动处理类型转换的问题:
def convertToHM(Mins): hours = Mins // 60 minutes = Mins % 60 return f"{hours}:{minutes}" Mins = int(input("Enter Minutes: ")) print(f"OutPut Is {convertToHM(Mins)}")
如果你要沿用原来的字符串拼接写法,修改后也可以正常运行:
def convertToHM(Mins): hours = Mins // 60 minutes = Mins % 60 return str(hours) + ':' + str(minutes) Mins = int(input("Enter Minutes: ")) print("OutPut Is " + convertToHM(Mins))
测试输入63后,输出结果为OutPut Is 1:3,符合预期。
内容的提问来源于stack exchange,提问作者Daya Yadav
相关产品推荐
相关产品推荐

