'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 |
