@awox

Почему выполняется только последний вложенный цикл?

let = tuple('ABEKMHOPCTXY')
num = tuple('0123456789')

let1 = 0
num1 = 0
num2 = 0
num3 = 0
let2 = 0
let3 = 0

while let1 < 12:
    while num1 < 10:
        while num2 < 10:
            while num3 < 10:
                while let2 < 12:
                    while let3 < 12:
                        print(let[let1], num[num1], num[num2], num[num3], let[let2], let[let3], sep='')
                        let3 += 1
                    let2 += 1
                num3 += 1
            num2 += 1
        num1 += 1
    let1 += 1


Консоль:
A000AA
A000AB
A000AE
A000AK
A000AM
A000AH
A000AO
A000AP
A000AC
A000AT
A000AX
A000AY

Process finished with exit code 0
  • Вопрос задан
  • 148 просмотров
Решения вопроса 2
adugin
@adugin Куратор тега Python
Классический Delphi style, на Python так не пишут. Вот как правильно:
from itertools import product

let = 'ABEKMHOPCTXY'
num = '0123456789'

for item in product(let, *[num]*3, *[let]*2):
    print(''.join(item))
Ответ написан
Комментировать
Определённо, потому что переменные-счётчики перед циклами не обновляешь.
let = tuple('ABEKMHOPCTXY')
num = tuple('0123456789')

let1 = 0
num1 = 0
num2 = 0
num3 = 0
let2 = 0
let3 = 0

while let1 < 12:
    num1 = 0
    while num1 < 10:
        num2 = 0
        while num2 < 10:
            num3 = 0
            while num3 < 10:
                let2 = 0
                while let2 < 12:
                    let3 = 0
                    while let3 < 12:
                        print(let[let1], num[num1], num[num2], num[num3], let[let2], let[let3], sep='')
                        let3 += 1
                    let2 += 1
                num3 += 1
            num2 += 1
        num1 += 1
    let1 += 1

Последний цикл у тебя первый раз срабатывает, а во втором условие уже не True и больше ничего не печатается.
Не знаю как объяснить понятнее)
P.S. Это кстати номера машин ты генерируешь?)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы