0

Why A==(A or B) is True, while B==(A or B) is False?

I have very simple program to write, which check if input is A or B. I know I could go for: if input() == A or input == B: print("Ok") But why you can't make something like this? if input() == (A or B): print("Ok") In this scenario A == (A or B) is True B == (B or A) is True But A == (B or A) is False B == (A or B) is False Theoretically it's true when True==(False or True) changing it to numbers (1=0+1) Is it because strings don't have logic value of 1 prior to checking it with == ? Why would then A==(A or B) work? I'm bit confused.

13th Oct 2021, 9:57 AM
Piotr Ś
Piotr Ś - avatar
4 odpowiedzi
+ 4
All you need to know how or operator works. or returns the first Truthy value if there are any, else return the last value in the expression. print( x or y) It means if x is a Truthy value x is returned, y vice versa. Now, you can think about that cases.
13th Oct 2021, 10:19 AM
Simba
Simba - avatar
+ 3
You need to store the value of input & then compare it separately. if input() == ('A' or 'B') mean if input() == 'A' or 'B' so, here we didn't actually defined any clear logic for the second case.
13th Oct 2021, 10:06 AM
zexu knub
zexu knub - avatar
+ 2
Piotr Ś We have to check the equality of B just like we did with the A. x = input() if x == 'A' or x == 'B': print('ok')
13th Oct 2021, 10:17 AM
zexu knub
zexu knub - avatar
+ 1
Ah ok, so statement after "or" is "whatever, we already got our True, don't bother with mess after "or" "?
13th Oct 2021, 10:10 AM
Piotr Ś
Piotr Ś - avatar