-- My goal is to make a code where user has to enter temperature, then user has to enter unit (C or F), then I wanna show conversion to F if users type C and vice versa. what wrong here tell me please I am super new to python and learning it all day, thanks.
print("Lets convert from C to F/ F to C")
temp = int(input("enter the temperature: "))
unit = input("enter the unit (C or F)")
if unit == C:
F = temp * 1.8 32
print(temp "C is equal to" F "F")
elif unit == F:
C = temp / 1.8 - 32
print(temp "F is equal to" C "C")
CodePudding user response:
You might want to pay more attention to strings.
- use string literals
'F'
and'C'
(not bareF
andC
) in theif
conditions. - explicitly convert
int
tostr
by usingstr()
, when you concatenate anint
andstr
. Or better, use f-string.
print("Lets convert from C to F/ F to C")
temp = int(input("enter the temperature: "))
unit = input("enter the unit (C or F)")
if unit == 'C':
F = temp * 1.8 32
print(str(temp) "C is equal to" str(F) "F")
elif unit == 'F':
C = temp / 1.8 - 32
print(str(temp) "F is equal to" str(C) "C")
By the way, I am afraid the formula is a little bit off. Another version, in which I corrected the formula and used f-string, is as follows:
print("Let's convert from °C to °F or °F to °C!")
temp = int(input("Enter the temperature: "))
unit = input("Enter the unit (C or F): ")
if unit.upper() == 'C':
F = temp * 1.8 32
print(f"{temp}°C is equal to {F}°F")
elif unit.upper() == 'F':
C = (temp - 32) / 1.8
print(f"{temp}°F is equal to {C}°C")
CodePudding user response:
You need to get some practice handling strings and numbers and converting between the two. Note for example that input()
always gives you strings, whereas doing maths always needs numbers.
So there are a few things going on here:
- Compare
unit
to"C"
(a string), notC
(a variable). - Before trying to do maths with
temp
, convert it to a number withfloat(temp)
. (Don't useint()
because if someone enters21.9
(say),int
will round down. - When you construct a string with
str(num)
.
And be careful with the order of operations in your formula!
CodePudding user response:
print("Lets convert from C to F/ F to C")
temp = int(input("enter the temperature: "))
unit = input("enter the unit (C or F)")
if unit == "C": #small typo
F = temp * 1.8 32
print(str(temp) "C is equal to" str(F) "F") # you cant do int str
elif unit == "F":
C = temp / 1.8 - 32
print(str(temp) "F is equal to" str(C) "C")
CodePudding user response:
In the condition, you have used C and F which are interpreted as variables, you should use " marks ("F", "C"). Also for printing you should pass string to the print function, so convert your int variables ( "item" and F and C) to strings using str()