заменить 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('Обычный')