'How do I factor out a unit conversion in python

If there is an answer somewhere else, please just link it. I looked for hours.

Problem

Write a function so that the main program below can be replaced by the simpler code that calls function mph_and_minutes_to_miles(). Original main program:

miles_per_hour = float(input())
minutes_traveled = float(input())
hours_traveled = minutes_traveled / 60.0
miles_traveled = hours_traveled * miles_per_hour

print('Miles: {:f}'.format(miles_traveled))

Sample output with inputs: 70.0 100.0 Miles: 116.666667

MY CODE

def mph_and_minutes_to_miles(miles_per_hour, minutes_traveled):
    miles_per_hour = float(input())
    hours_traveled = minutes_traveled / 60
    miles_traveled = hours_traveled * miles_per_hour
    return hours_traveled

miles_per_hour = float(input())
minutes_traveled = float(input())

print('Miles: {:f}'.format(mph_and_minutes_to_miles(miles_per_hour, minutes_traveled)))

OUTPUTS

Testing with inputs: 70.0 100.0

Output differs. See highlights below.

Your output Miles: 1.666667

Expected output Miles: 116.666667



Solution 1:[1]

here it works correctly

# python program to convert mph and minutes to miles

def main():
    print("This program converts mph and minutes to miles\n")

    mph = input("Enter the speed in mph: ")
    minutes = input("Enter the time in minutes: ")

    miles = mph * minutes / 60

    print("The distance is", miles, "miles")


main()

Solution 2:[2]

def mph_and_minutes_to_miles(miles_per_hour, minutes_traveled):
    hours_traveled = minutes_traveled / 60
    return hours_traveled * miles_per_hour


miles_per_hour = float(input())
minutes_traveled = float(input())

print('Miles: {:f}'.format(mph_and_minutes_to_miles(miles_per_hour, minutes_traveled)))

Solution 3:[3]

What worked for me in the most recent ZyBooks edition:

def mph_and_minutes_to_miles(miles_per_hour, minutes_traveled):
    hours_traveled = minutes_traveled / 60.0
    miles_traveled = hours_traveled * miles_per_hour
    return miles_traveled

miles_per_hour = float(input())
minutes_traveled = float(input())

print('Miles: {:f}'.format(mph_and_minutes_to_miles(miles_per_hour, minutes_traveled)))

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Ishan J.
Solution 2 n3on
Solution 3 lemon