Formatting Code - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: General Coding Help (https://python-forum.io/forum-8.html) +--- Thread: Formatting Code (/thread-10063.html) |
Formatting Code - zeaky3000 - May-11-2018 Can someone please explain to me the difference between the following two examples and why the shorter one compiles correctly and the longer one doesn't? Don't they both say the same thing? Forgive me, I'm new to coding! The number 6 is a truly great number. Given two int values, a and b, return True if either one is 6. Or if their sum or difference is 6. Note: the function abs(num) computes the absolute value of a number. def love6(a, b): return a == 6 or b == 6 or (a + b) == 6 or abs(a - b) == 6 #passes all tests def love6(a, b): if a == 6 or b == 6: return True if (a + b) == 6 or abs(a - b) == 6: return True #Doesn't pass RE: Formatting Code - buran - May-11-2018 What test do you perform/fail? RE: Formatting Code - ThiefOfTime - May-11-2018 The shorter one returns False if the expression is not correct. The longer version does not return False but returns None automatically, if none of the expressions are True. That is the main difference. so just change the longer one to: def love6(a, b): if a == 6 or b == 6: return True if (a + b) == 6 or abs(a - b) == 6: return True return FalseThat should do the trick :) RE: Formatting Code - Larz60+ - May-11-2018 first one broken into steps: >>> def love6(a, b): ... x1 = a == 6 ... x2 = b == 6 ... x3 = (a + b) == 6 ... x4 = abs(a - b) == 6 ... x5 = x1 or x2 or x3 or x4 ... print(f'x1: {x1}, x2: {x2}, x3: {x3}, x4: {x4}, x5: {x5}') ... >>> love6(6, 6) x1: True, x2: True, x3: False, x4: False, x5: True >>> love6(2, 6) x1: False, x2: True, x3: False, x4: False, x5: True >>>step 2 broken into steps: >>> def love6(a, b): ... x1 = a == 6 ... x2 = b == 6 ... x3 = x1 or x2 ... x4 = (a + b) == 6 ... x5 = (abs(a - b)) == 6 ... x6 = x4 or x5 ... print(f'x1: {x1}, x2: {x2}, x3: {x3}, x4: {x4}, x5: {x5}, x6: {x6}') ... >>> love6(6, 6) x1: True, x2: True, x3: True, x4: False, x5: False, x6: False >>> love6(2, 6) x1: False, x2: True, x3: True, x4: False, x5: False, x6: False >>> |