This is the code I successfully ended the lesson with:
def cube(number):
return (number)**3
def by_three(number):
if (number) % 3==0:
return cube(number)
else:
return False
I understand the end product of the code to get passed this lesson. I just don’t really follow why I need to have 3==0:
Example:
This is incorrect if(number)%3:
This is correct if(number)%3==0:
Please explain to me why I need the ==0: in there?
Hope I kept this organized neatly for you guys, thanks in advance 
2 Likes
@pvmsupra,
The so-called modulo / remainder-operator if used it will return the rest-value.
9%3 You read it as nine modulo three is zero, as 9 divided by 3 has NO rest-value.
22%6 You read 22 modulo six is 4, as 22 divided by 6 will leave you with rest-value 4
16%8 You read it as sixteen modulo eight is zero, as sixteen divided by 8 has NO rest-value
Thus if you use the modulo operator in a condition,
where the result should give a Boolean Value of true
or false
you will use a comparison
like
number%2 == 0
if true
, the number would be an =even= number.
Reference:
google search
== the Book ==
modulo operator site:python.org
== discussions / opinions ==
python modulo operator explained site:stackoverflow.com
3 Likes
This code didn’t work for me.
What is Fals
? Check spelling carefully. 
Can you tell me if this is an accurate way of rephrasing part of your post?
The ==0: is required to ensure that a whole number is the result of the algorithm.
With - if (number) % 3==0: - you filter out any division that would result in there being a remainder.
Example: 5/2 (1 remains because 2 goes in twice - leaving 1.)
If there is any rest-value(going back to the modulo) then it is not a number that the code will process because it will be false.
I was having some trouble with this… I am so grateful for these forums. I am completely novice with coding so it helps a bunch.
2 Likes
def cube(number):
return (number)**3
def by_three(number):
if (number) % 3==0:
return cube(number)
else:
return False
This didn’t work for me
@trlee20,
As soon as you reach a return statement
you will EXIT the function…
In this case the effective FUNCTION would only consist of
def cube(number):
return (number)**3
as the rest would NEVER be reached/executed…!!!
def cube(number):
return (number)**3
def by_three(number):
if (number)% 3 == 0:
return cube(number)
else:
return False