возникли проблемы с пониманием отступов во вложенных циклах

#python #loops #nested-loops #indentation

Вопрос:

Почему в коде print(j) не отображается только 100? Почему не 10 и 100, как указано в списке? вот код :

 x = [1, 2]
y = [10, 100]

for i in x:
    for j in y:
        if i % 2 == 0:
            print(i * j)
        print(i)
    print(j)```

output:

1 
1
100
20
2
200
2
100

 

Комментарии:

1. Поскольку print(j) он не входит в область внутреннего цикла, он содержит только последнее присвоенное значение j . Вам нужно сдвинуть его вправо.

Ответ №1:

У меня недостаточно населения для комментариев, поэтому посмотрите на это здесь 10 и 100:

 >>> for i in x:
print(i)
for j in y:
    print(j)
    if i % 2 == 0:
        print( i * j)

        
1
10
100
2
10
20
100
200