I’m currently doing Dr. Charles Severence’s lessons on FreeCodeCamp to try to learn Python3. I’m on lesson exercise 02_03 and confused about multiplying floating-point and integer values.

The goal is to write a Python program multiplying hours worked by pay rate to come up with a pay quantity.

This is the code I wrote:

h = input("Enter hours: ")
r = input("Enter pay rate: ")
p = float(h) * r

I got a traceback error, and the video said the correct way to solve said error was change Line 3 from p = float(h) * r to p = float(h) * float(r).

However, what I’m confused about is why would I need to change r to a floating-point value when it’s already a floating-point value (since it’d be a currency value like 5.00 or something once I typed it in per the input() command*?

What am I missing here?

 


*I can’t remember: are the individual commands in a python line called “commands”?

 

 


Edit: Wrote plus signs in my post here instead of asterisks. Fixed.

 


EDIT: Thanks to @Labna@lemmy.world and @woop_woop@lemmy.world. I thought that the input() function was a string until the end-user types something in upon being prompted, and then becomes a floating-point value or integer value (or stays a string) according to what was typed.

This is incorrect: the value is a string regardless of what is typed unless it is then converted to another type.