Hi I am a newbie here, I am writing arithmetic arranger code for the assignment but I am confused with the if and else statement the code as follows:
x = '69467675'
y = "1434"
if len(x) and len(y) <= 4:
z = '-' * (max(len(x), len(y)) + 2)
pos_of_op = 6 - (max(len(x), len(y)) + 1)
if len(x) >= len(y):
print(x.rjust(6) + '\n' + '+'.rjust(pos_of_op) + y.rjust(6 - pos_of_op) + '\n' + z.rjust(6))
elif len(y) > len(x):
print(x.rjust(6) + '\n' + '+'.rjust(pos_of_op) + y.rjust(6 - pos_of_op) + '\n' + z.rjust(6))
else:
print('ERROR: The number of digits should be less than 5')
the if else statement is not working as I have written in Pycharm but it works if I write it as :
if len(x) <= 4 and len(y) <= 4:
what is the problem can somebody help me ?
PS: the indentations are properly given and I am not getting any error but it is not satisfying the condition and follows through the code
I’ve edited your post for readability. When you enter a code block into a forum post, please precede it with a separate line of three backticks and follow it with a separate line of three backticks to make it easier to read.
You can also use the “preformatted text” tool in the editor (</>) to add backticks around text.
is not doing what you think it does. You are thinking like a human. Python is interpreting it as:
(len(x)) and (len(y) <= 4)
You are thinking “if this and that are less than or equal to 4”. That kind of construction works in English, but not for a computer. It is evaluating each side of the “and” first and then combining them with the “and” so it is thinking you mean “if this (is truthy) … and … that is less than or equal to 4”.