So I’m trying to make a list of numbers that are multiples of 3, this is my code:
multiples_of_3 = []
for value in range(3, 31):
number = value % 3 == 0
multiples_of_3.append(number)
print(multiples_of_3)
But it transforms the results into booleans, which throws me a list with false and trues instead of numbers, what I’m doing wrong? I know comprehension lists exist and that this could be done more efficiently but well, I’m trying to learn and writing it as a comprehension list doesn’t make it easier.
It’s because the
number
variable is a boolean, equal to “is value % 3 zero?”. You’re appending that result to the list for every number.What you want is:
multiples_of_3 = [] for value in range(3, 31): if value % 3 == 0: multiples_of_3.append(value) print(multiples_of_3)
The if statement means that you only append to the list if it’s a multiple.