Предмет: Информатика, автор: mininaelisabeta89

Помогите,пожалуйста, язык Пайтон!!!

Приложения:

Ответы

Автор ответа: 4688f71163
1

Объяснение:

Итак, разберем код.

Считаем первую строку, будем считывать, пока не получим 100.

разобьем строку на "числа" (тип str) по пробелам - по условию формат входных данных не меняется

заведем список good_numbers - это список чисел, в которых содержится ноль

найдем все такие числа с помощью цикла for и условия

добавим в good_numbers сумму всех чисел в текущей итерации

с помощью join выведем в нужном формате

Приложения:

Vovchik04: А где сортировка по возрастанию?
Vovchik04: Во-первых, твоё решение не предполагает сортировки по возрастанию в зависимости от чётности индекса строки.
Во-вторых,
Vovchik04: вывод должен производиться после ввода всех строк, а не после ввода каждой строки
Vovchik04: Я считаю это решение некачественным, написанным ради получения баллов, если у тебя нет желания напрягаться и выполнять поставленную задачу полностью, лучше вообще её не выполняй.
4688f71163: Насчет сортировки по возрастанию вынужден согласиться, не увидел данную строчку в условии. Исправленная версия: https://yadi.sk/i/-KhnQP7CTWakyg
4688f71163: Что же касается вашего мнения о качестве решения, можете оставить его при себе. Сперва стоит научиться вежливо вести диалог.
Тем более, почитайте комментарии к своему решению, вы откроете для себя много интересного :)
Автор ответа: Vovchik04
1

Ответ:

x = [int(item) for item in input().split()]

a=s=0

z = ''

while x[0] != 100:

   list = []

   s = 0

   for i in x:

      if '0' in str(i):

          list.append(i)

          s += i

   if a%2 == 0:

       list = sorted(list)

       list.append(s)

   else:

      list = sorted(list, reverse=True)

      list.append(s)

   list = [str(item) for item in list]

   z += ':'.join(list)+'\n'

   a +=1

   x = [int(item) for item in input().split()]

print(z)


4688f71163: давайте разберем ваше "качественное" решение :)
4688f71163: a=s=0 - неинформативное имя переменной
4688f71163: list = [] - занимаете внутреннее имя Python, теряя дальнейшую возможность использования функции list()
4688f71163: list = sorted(list) - перезапись списка; неэффективно по памяти
4688f71163: list.append(s) - дублирование кода в if-else блоке; безусловное выполнение части конструкции
4688f71163: x = [int(item) for item in input().split()]
list = []
list = sorted(list)
list = [str(item) for item in list]
x = [int(item) for item in input().split()]
вы пять раз создаете списки, катастрофически неэффективно по памяти
4688f71163: z += ':'.join(list)+'\n' - циклическая перезапись строки без использования специальных методов конкатенации; крайне неэффективно по памяти; используйте enum или StringIO модуль
Похожие вопросы
Предмет: Математика, автор: pavlentu
Предмет: Алгебра, автор: samira3492