Practicing with an exercise and ran into something I can't really figure out(Beginner)

https://www.codecademy.com/workspaces/65953404407dda1b0851c5f8

Within the code above whenever I type in “L” or “l” into the terminal I’m given the results for the Kgs when it should produce the results for the Lbs

Though when I instead use( As hopefully shown in script2.py)

weight = float(input("Weight: “))
unit = input(”(K)g or (L)bs: ")

if unit.upper() == == “K”:
weight *= .45
print("Weight in kgs: " + str(weight))
elif unit.upper() == “L”:
weight /= .45
print("Weight in lbs: " + str(weight))
else:
Print(‘error’)


The code works perfectly fine and was wondering why this is?

To preserve code formatting in forum posts, see: [How to] Format code in posts

Your condition

if unit == "K" or "k":

is equivalent to

if (unit == "K") or ("k"):

The second operand ("k") is truthy. Therefore the above condition will always evaluate to True irrespective of the value assigned to unit.

(See the paragraph titled “Truth Value Testing” in the documentation to see which values are considered Falsy. The rest are Truthy).

If you wish, you can write the condition as:

if (unit == "K") or (unit == "k"):
3 Likes

Understood and thank you for taking the time to give me the answer!

1 Like