【问题标题】:How can I loop this Python program indefinitely, and convert floating point hours into hours and minutes? [closed]如何无限期地循环这个 Python 程序,并将浮点小时转换为小时和分钟? [关闭]
【发布时间】:2017-03-15 22:44:53
【问题描述】:

所以我需要制作一个油耗计算器,它还可以计算特定行程所花费的时间。

我不知道如何让程序以“小时:分钟”格式告诉我花费的时间,而不仅仅是小时的浮点变量。

Time traveled: 1.6666666666666667 hours 应该 Time traveled: 1h:45min

另外,我不知道如何让程序重复问题并无限给出结果,直到关闭。

这是我的代码:

# Get L/100km used from the user
fuel = input("Enter car's L/100kmh:")
fuel = float(fuel)

# Get distance driven from the user
distance = input("Enter kilometers driven:")
distance = float(distance)

# Get speed used from the user
speed = input("Enter driving speed:")
speed = float(speed)

# Calculate and print the answer
time = distance / speed
fuel_burned = distance / 100 * fuel
print("Time traveled:", time,"hours")
print("Fuel burned:", fuel_burned,"liters")

【问题讨论】:

  • 您的问题与 GUI 无关。您想要一个可以满足您的要求的 GUI 吗?
  • GUI 是一种图形用户界面,意味着可以处理文本以外的内容。我在想你想要一个 CLI 或命令行界面,它会一遍又一遍地循环,要求用户输入,他们输入并按 Enter 键,直到他们准备好退出,然后他们将输入其他内容退出。这是否能更好地表达您的需求?
  • 你是对的 - CLI,命令行类型的东西是我想到的......标题错误地结束了,现在我无法更改它 - 我什至不应该在这里提到 GUI...
  • roganjosh,您是否知道如何将其转换为 GUI?因为那会更好......
  • 用笔和纸你会怎么做?先弄清楚这一点。然后尝试编写代码。

标签: python loops time calculator


【解决方案1】:

你可以把它包装在一个while循环中。您的标题毫无意义,因为这与 GUI(图形用户界面)无关

示例:

while True: 

    # Get L/100km used from the user
    fuel = input("Enter car's L/100kmh:")
    fuel = float(fuel)

    # Get distance driven from the user
    distance = input("Enter kilometers driven:")
    distance = float(distance)

    # Get speed used from the user
    speed = input("Enter driving speed:")
    speed = float(speed)

    # Calculate and print the answer
    time = distance / speed
    fuel_burned = distance / 100 * fuel
    print("Time traveled:", time,"hours")
    print("Fuel burned:", fuel_burned,"liters")

【讨论】:

    【解决方案2】:

    此代码已经过大量编辑,以尽可能准确。我的解决方案假定您希望能够优雅地退出程序,而不是让它在系统关闭时终止,但如果不是这种情况,只需删除循环的最后一部分,从 again = ... 开始。

    while True:
        # Get L/100km used from the user
        fuel = input("Enter car's L/100kmh:")
        fuel = float(fuel)
    
        # Get distance driven from the user
        distance = input("Enter kilometers driven:")
        distance = float(distance)
    
        # Get speed used from the user
        speed = input("Enter driving speed:")
        speed = float(speed)
    
        # Calculate and print the answer
        time = distance / speed
        fuel_burned = distance / 100 * fuel
        hours = int(time)
        minutes_remainder = (time - hours) * 60
        minutes = int(minutes_remainder) 
        print("Time traveled: ", hours,":",minutes)
        print("Fuel burned: ", fuel_burned," liters")
    
         again = input("Go again? (y/n)")
         if again == "n":
            break
    

    Here 是在 C++ 中将十进制小时转换为小时:分钟:秒的示例,我曾经用它来得出我给出的解决方案。

    【讨论】:

    • 它是 Python ......并被标记为这样。
    • 我相应地编辑了我的答案。谢谢
    猜你喜欢
    • 1970-01-01
    • 2016-06-29
    • 1970-01-01
    • 2016-07-18
    • 1970-01-01
    • 1970-01-01
    • 2021-02-22
    • 2017-12-23
    相关资源
    最近更新 更多