此代碼輸出 00000000,但我認為它會輸出 00000011,因為最后 2 個索引符合 if 條件。import pygamenumbers = [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 = 0binary = ""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)
2 回答

滄海一幻覺
TA貢獻1824條經(jīng)驗 獲得超5個贊
將您的循環(huán)更改為:
for number in numbers:
print(number)
if number == pygame.Color("#FF0000"):
binary += "1"
elif number == pygame.Color("#FFFFFF"):
binary += "0"
numbers[x]將始終指向第一個元素,因為您沒有增加x. 因此,更改numbers[x]為number.

慕哥9229398
TA貢獻1877條經(jīng)驗 獲得超6個贊
如果你想使用索引,你可以像這樣更改代碼:
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)
添加回答
舉報
0/150
提交
取消