意外循环输出

2024-07-08 17:21:12 发布

您现在位置:Python中文网/ 问答频道 /正文

这段代码输出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)  

Tags: 代码inimportnumberforif条件pygame
2条回答

如果要使用索引,可以如下更改代码:

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)  

将循环更改为:

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

相关问题 更多 >

    热门问题