I've put three conditions:
I did the following:
n1 = input("We need you to input two numbers. Input the first number: \n > ")
n2 = input("Now the second number: \n > ")
n1 = float(n1)
n2 = float(n2)
if n1 and n2 > 15:
    print(n1*n2)
elif n1 > 15 and n2 <= 15:
    print(n1+n2)
elif n1 <= 15 and n2 > 15:
    print(n1+n2)
else:
    print(0)
It works fine when n1 and n2 > 15, when n1 > 15 and n2 <= 15, and when n1 and n2 <15. However, if n1 <= 15 and n2 > 15, it returns the product. Any ideas as to why?
Hey João,
Thank you for your question!
First, let me address this line in the code here:
if n1 and n2 > 15:
    *something happens*
Notice that this is not equivalent to checking whether both n1 and n2 are larger than 15. Rather, it is equivalent to
if n1:
    if n2 > 15:
        *something happens*
The first condition will always be True for n1 different than 0. You can check that for yourself :)
Let me share one way to think about this problem. You have the following 4 cases that I have represented with the table below
| n1 greater than 15? | n2 greater than 15? | |
| Case 1 | Yes | Yes | 
| Case 2 | Yes | No | 
| Case 3 | No | Yes | 
| Case 4 | No | No | 
Let's cover the first case, where both numbers are greater than 15:
if n1 > 15 and n2 > 15:
    print(f'Product: {n1*n2}')
elif ...
    ...
The elif command that follows implies that either of the three remaining cases is satisfied. Let's cover Cases 2 and 3 as follows:
if n1 > 15 and n2 > 15:
    print(f'Product: {n1*n2}')
elif n1 > 15 or n2 > 15:
    print(f'Sum: {n1+n2}')
Finally, the only remaining option is that both numbers are smaller than or equal to 15. We cover it by introducing the else statement:
if n1 > 15 and n2 > 15:
    print(f'Product: {n1*n2}')
elif n1 > 15 or n2 > 15:
    print(f'Sum: {n1+n2}')
else:
    print(0)
Hope this helps!
Kind regards,
365 Hristina