#while-loop
#цикл while
Вопрос:
Здесь новичок в Python. У меня уже есть решение вопроса, но я не понимаю, почему переменная «добавить» в решении играет роль создания исключений для удаления чисел от 6 до 9. Я уже пробовал Python Tutor, но все еще не понимаю. Заранее большое спасибо!
ВОПРОС: Верните сумму чисел в массиве, за исключением игнорирования разделов чисел, начинающихся с 6 и продолжающихся до следующих 9 (за каждым 6 будет следовать по крайней мере один 9). Верните 0 для отсутствия чисел.
Пример кода решения
def summer_69(arr):
total = 0
add = True
for num in arr:
while add:
if num != 6:
total = num
break
else:
add = False
while not add:
if num != 9:
break
else:
add = True
break
return total
Примеры ответов:
summer_69([1, 3, 5]) --> 9
summer_69([4, 5, 6, 7, 8, 9]) --> 9
summer_69([2, 1, 6, 9, 11]) --> 14
Комментарии:
1. Все ваши примеры выполняются успешно. О каких исключениях и о каких входных данных вы говорите? Не могли бы вы привести пример?
Ответ №1:
Вы можете думать о переменной «add» как о флаге. Я думаю, что это может быть лучшим именем для этой переменной в данном случае.
Он используется только для определения, столкнулись ли вы с 6 в последовательности чисел в массиве, затем, как только он был установлен, он проходит через произвольное количество чисел в массиве, пока не получит 9, а затем сбрасывает флаг.
Может помочь переименовать переменную «добавить» в «флаг». Установите для вашей новой переменной «flag» значение по умолчанию False, а затем, если вы столкнетесь с 6, установите для «flag» значение true. Как только флаг включен, не добавляйте никаких конечных чисел в последовательности, пока не столкнетесь с числом 9, а затем сбросьте значение false.
Возможно, это улучшит читаемость. Присвоение имен переменным — самая сложная часть программирования.
Комментарии:
1. @keab28 Нет проблем!