繁体   English   中英

意外的回路输出

[英]Unexpected loop output

该代码输出00000000,但我认为它将输出00000011,因为最后两个索引满足if条件。

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)  

将您的循环更改为此:

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

如果您想使用索引,可以更改代码,如下所示:

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)  

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM