TypeError: takes 1 positional argument but 2 were given

Question:

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' % miles_traveled)

That is the problem.

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

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

print('Miles: %f' % mph_and_minutes_to_miles(miles_per_hour, minutes_traveled))

TypeError: must be real number, not NoneType

Asked By: Thurgood Westlake

||

Answers:

You have two options here, just replace ONLY ONE of the following

def mph_and_minutes_to_miles(miles_per_hour, minutes_traveled):

or

print('Miles: %f' % mph_and_minutes_to_miles(miles_per_hour))
Answered By: João Pedro Sousa
def mph_and_minutes_to_miles(miles_per_hour, minuted_traveled):
    
    hours_traveled = minutes_traveled / 60
    miles = (minutes_traveled / 60) * miles_per_hour
    return miles

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

print('Miles: %f' % mph_and_minutes_to_miles(miles_per_hour, minutes_traveled))
Answered By: Marina Tomilko

Adding this function instead of the one you had defined in your question, should fix your error.

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

So the total code would look like:

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

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

print('Miles: %f' % mph_and_minutes_to_miles(miles_per_hour, minutes_traveled))
Answered By: AppleTechy
def mph_and_minutes_to_miles(miles_per_hour, minutes_traveled):
    hours = minutes_traveled / 60.0
    miles = hours * miles_per_hour

    return miles

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

print('Miles: {:f}'.format(mph_and_minutes_to_miles(miles_per_hour, minutes_traveled)))
Categories: questions Tags:
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.