我的代码有什么问题?我应该制作一个程序,在活动结束时告诉你

2024-09-20 00:11:34 发布

您现在位置:Python中文网/ 问答频道 /正文

hour = int(input("Starting time (hours): "))
mins = int(input("Starting time (minutes): "))
dura = int(input("Event duration (minutes): "))
minresult = ((mins + dura) % 60)
hourresult = (((60// dura) + hour) % 24)

print("The event will end on", hourresult,":" ,minresult)

如果输入为23、58和642,则预期结果为10:40,但我的程序打印23:40


Tags: theeventinputtimeintdurationprintstarting
3条回答

实际上,代码中的问题是,在第5行中,它应该是dura// 60,而不是60// dura

此外,在测试用例中,您将23作为输入,持续数小时,因此预期结果应该是9小时,而不是10小时。这是因为它也考虑到了24小时。你的642分钟等于10小时42分钟,因此,23+1小时=24小时,即完成1天,剩下9小时。剩下的9个小时加到另一天,输出变成9

你认为分钟实际上是1小时,也就是24小时,所以它应该显示10作为一个输出。因此,对于这一点,你已经分别计算了小时和分钟,因此那些实际上构成一个完整小时的分钟不会显示在输出中

因此,为了获得正确的输出,您必须将第5行替换为

hourresult = ((int((mins + dura)/60) + hour) % 24)

由于int((mins + dura)/60)将占会议总时间的整数部分,会议将以分钟为单位,以60分为单位转换为小时

如果您使用的是Jupyter笔记本电脑,请尝试使用%%time。这将节省大量时间。希望能有帮助

试试这个-您需要将分钟添加到hourresult计算中,并反转除法

hour = int(input("Starting time (hours): "))
mins = int(input("Starting time (minutes): "))
dura = int(input("Event duration (minutes): "))
minresult = ((mins + dura) % 60)
hourresult = (((mins + dura)//60 + hour) % 24)

print("The event will end on", hourresult,":" ,minresult)

相关问题 更多 >