适合初学者的Python

时间:2013-09-12 02:16:55

标签: python-3.x

Python编程:我需要编写一个带有两个军事时间输入的程序。例如,(0900,1700)并输出两个输入的时间差,以小时,分钟为单位

例如:

print("Enter the first time:") 0900
print("Enter the second time:") 1730

输出

8 hours 30 minutes

以相反的顺序

print("Enter the second time:") 1730
print("Enter the first time:") 0900

输出

15 hours 30 minutes

我已经尝试了下面的代码,但输出只是我的输入。

import datetime,time

first = input("Enter the first time in military hours:")
second = input( "Enter the second time in military hours:")
first_t= datetime.time(hour=int(first[0:2]), minute=int(first[2:4]))
second_t= datetime.time(hour=int(second[0:2]), minute=int(second[2:4]))
hour = ( second.hour-first.hour )
minute= (second.hour-first.hour)
fmt = ("%H ,%M")
print (first_t.strftime(fmt) , second_t.strftime(fmt))

对于输入值0500,1830,它为我提供了05 , 00 18 , 30

的输出

1 个答案:

答案 0 :(得分:0)

欢迎使用python。在python中一切都很简单。首先,您需要在更深层次上理解您的问题。这里的问题只是意识到你拿两个略有不同的总和。解决这个问题的一个好方法是以通用形式(分钟)表示它们,然后在那里完成所有数学运算并仅仅为显示目的而改回。例如:

def time_diference(time1, time2):
    hour_change = abs(int(time1[:2]) - int(time2[:2]))
    minute_change = int(time2[2:]) - int(time1[2:])
    # Change hours to equivalent minutes so you're really comparing apples to apples
    total_minute_change = hour_change * 60 + minute_change
    return total_minutes_change

def print_time(minute_difference):
    # Display the answer back to the user

print_time(time_difference(first, second))

既然你已经将它们进行了比较并且你有所不同,那么你应该更好地掌握如何继续进行,但仍然需要考虑边缘情况。

例如,如果你有时间“0900”和“0845”会发生什么。在您的原始示例中,您可能想要考虑另一个边缘情况,即在您收到否定分钟时就是这种情况,例如:09451337,在这种情况下您的解决方案会中断。

我正在努力不要用勺子喂你,因为这是你真正需要自己弄清楚的东西,因为这是家庭作业,但我希望这给你一个好的起点。