Function Input not working as anticipated

40 Views Asked by At

I have a unit converter that isn't cooperating as intended. I get traceback on my print line saying it won't print. Here's the code:

def big_to_small(kilometer,hours,minutes):
    totalTimeMinutes = (hours * 60) + minutes
    totalTimeHours = hours + (minutes / 60)
    kpm = kilometer/totalTimeMinutes
    kph = kilometer/totalTimeHours
    freedoms = kilometer / 1.61
    meters = kilometer / 1000
    seconds = totalTimeMinutes / 60
    fph = freedoms / totalTimeHours
    feetps = (freedoms * 5280) / seconds
    print('Kilos per minute = ' + float(kpm))
    print('kilos per hour = ' + float(kph))

k = float(input("Kilometers known"))
h = float(input("Hours traveled"))
m = float(input("Additional Minutes"))

big_to_small(k, h, m)

I'm not sure what else to try at this point

2

There are 2 best solutions below

1
Yakov Dan On

You can't concatenate floating point values with strings:

    print('kilos per hour = ' + float(kph))

Here, adding a floating point number to a string makes no sense. Instead, convert your floating point value to a string:

def big_to_small(kilometer,hours,minutes):
    totalTimeMinutes = (hours * 60) + minutes
    totalTimeHours = hours + (minutes / 60)
    kpm = kilometer/totalTimeMinutes
    kph = kilometer/totalTimeHours
    freedoms = kilometer / 1.61
    meters = kilometer / 1000
    seconds = totalTimeMinutes / 60
    fph = freedoms / totalTimeHours
    feetps = (freedoms * 5280) / seconds
    print(f'Kilos per minute = {kpm}')
    print(f'kilos per hour = {kph}')

k = float(input("Kilometers known"))
h = float(input("Hours traveled"))
m = float(input("Additional Minutes"))


big_to_small(k, h, m)
1
Alaya Isuekebhor On

The reason why it wasn't working was because you can't concatenate a string and a floating point number, but you can wrap the float in a string. A working example would be :

def big_to_small(kilometer,hours,minutes):
    totalTimeMinutes = (hours * 60) + minutes
    totalTimeHours = hours + (minutes / 60)
    kpm = kilometer/totalTimeMinutes
    kph = kilometer/totalTimeHours
    freedoms = kilometer / 1.61
    meters = kilometer / 1000
    seconds = totalTimeMinutes / 60
    fph = freedoms / totalTimeHours
    feetps = (freedoms * 5280) / seconds
    print('Kilos per minute = ' + str(float(kpm)))
    print('kilos per hour = ' + str(float(kph)))

k = float(input("Kilometers known : "))
h = float(input("Hours traveled : "))
m = float(input("Additional Minutes : "))

big_to_small(k, h, m)