заменить for i in range на while

у меня есть код в котором используется for in range хочу поменять на while

a = int(input('Введите номер билета: '))  
sum_left = 0
sum_right = 0
for i in range(6):
    if i < 3:
        sum_right += a // 10**i % 10
    else:
        sum_left  += a // 10**i % 10 
if sum_left == sum_right:
    print('lucky')
else:
    print('unlucky')

С while:

a = int(input('Введите номер билета: '))  
sum_left = 0
sum_right = 0
i=1
while i <a:
    if i < 3:
        sum_right += a // 10**i % 10
    else:
        sum_left  += a // 10**i % 10 
if sum_left == sum_right:
    print('счастливый билет')
else:
    print('обычный билет') 

Ответы (3 шт):

Автор решения: MBo

Вы забыли изменение i в конце цикла

i += 1

Кроме того, условие в while неверное. Вероятно, требуется

i = 0

и

while i < 6:
→ Ссылка
Автор решения: Алексей Р

Я бы в данном случае обошелся без циклов, а также добавил бы проверку вводимого значения, чтобы не возникла ошибка при преобразовании строки в число:

a = input('Введите номер билета: ')
if a.isdigit() and len(a) % 2 == 0:  # проверяем, число ли ввели и равно ли количество цифр в левой и правой половинах 
    digits = list(map(int, list(a)))  # преобразуем строку в список чисел '123321' >> [1, 2, 3, 3, 2, 1]
    if sum(digits[:len(a) // 2]) == sum(digits[len(a) // 2:]):  # режем список пополам и суммируем числа в срезах
        print('счастливый билет')
    else:
        print('обычный билет')
else:
    print('Вы ввели не номер или число цифр нечетное')
Введите номер билета: 009333
счастливый билет
→ Ссылка
Автор решения: Алмат Жумагали
ticket = int(input('Введите номер билета: '))  
sum_left = 0
sum_right = 0
i=0
while i <6:    
    if i < 3:
        sum_right += ticket // 10**i % 10
    else:
        sum_left  += ticket // 10**i % 10 
    i+=1
if sum_left == sum_right:
    print('Счастливый')
else:
    print('Обычный')
→ Ссылка