Reputation: 73
This code outputs 00000000 but I would think it would output 00000011, since the last 2 indexes meet the if criteria.
import pygame
numbers = [pygame.Color("#FFFFFF"),
pygame.Color("#FFFFFF"),
pygame.Color("#FFFFFF"),
pygame.Color("#FFFFFF"),
pygame.Color("#FFFFFF"),
pygame.Color("#FFFFFF"),
pygame.Color("#FF0000"),
pygame.Color("#FF0000")]
x = 0
binary = ""
for number in numbers:
print(number)
if numbers[x] == pygame.Color("#FF0000"):
binary += "1"
elif numbers[x] == pygame.Color("#FFFFFF"):
binary += "0"
print("after: ", binary)
Upvotes: 0
Views: 42
Reputation: 354
if you want to use the index you can change the code like this:
binary = ""
for x, number in enumerate(numbers):
print(number) # number = numbers[x]
if numbers[x] == pygame.Color("#FF0000"):
binary += "1"
elif numbers[x] == pygame.Color("#FFFFFF"):
binary += "0"
print("after: ", binary)
Upvotes: 0
Reputation: 16633
Change your loop to this:
for number in numbers:
print(number)
if number == pygame.Color("#FF0000"):
binary += "1"
elif number == pygame.Color("#FFFFFF"):
binary += "0"
numbers[x]
will always point to the first element, as you aren't incrementing x
. So, change numbers[x]
to number
.
Upvotes: 1