Вывести содержимое списка по 10 элементов в строке так, чтобы вывод происходил
как-бы по спирали: каждая вторая строка должна выводиться задом наперед.
**Решение задачи:**
Зная номер строки и то, что элементов в строке 10, можно вычислить индексы
первого и последнего элементов в строке. А далее в цикле вывести элементы либо
от первого к последнему, либо от последнего к первому в зависимости от
четности строки.
Номер первого элемента в строке можно определить по формуле i * 10, где i -
это номер строки. Действительно, если строка нулевая, то индекс первого
элемента будет 0, а если строка первая, то индекс будет 10. Индекс же
последнего элемента в строке отличается от первого на 9 единиц, хотя всего
элементов в строке 10.
"Счетчиком" в цикле, выводящем строку элементов задом наперед, является индекс
последнего элемента; он же используется при выводе элемента.
import random a = [] for i in range(100): a.append(round(random.random() * 50)) i = 1 # обычный вывод для сравнения while i <= 100: print('%4d' % a[i-1], end='') if i%10 == 0: print() i += 1 print() i = 0 # вывод по спирали while i < 10: if i%2 == 0: j = i * 10 k = j + 9 while j <= k: print('%4d' % a[j], end='') j += 1 print() else: j = i * 10 k = j + 9 while j <= k: print('%4d' % a[k], end='') k -= 1 print() i += 1Пример выполнения скрипта:
29 9 50 36 25 1 2 43 13 41 0 23 43 45 26 40 1 41 1 44 47 45 1 38 32 5 40 30 41 25 25 43 37 9 45 33 6 38 13 47 33 4 15 18 18 32 29 48 20 18 49 11 50 8 37 23 25 3 18 5 50 19 24 44 5 11 25 30 39 35 17 31 33 18 7 21 41 41 6 48 19 4 31 9 23 49 39 6 25 21 27 12 27 25 26 47 18 15 3 33 29 9 50 36 25 1 2 43 13 41 44 1 41 1 40 26 45 43 23 0 47 45 1 38 32 5 40 30 41 25 47 13 38 6 33 45 9 37 43 25 33 4 15 18 18 32 29 48 20 18 5 18 3 25 23 37 8 50 11 49 50 19 24 44 5 11 25 30 39 35 48 6 41 41 21 7 18 33 31 17 19 4 31 9 23 49 39 6 25 21 33 3 15 18 47 26 25 27 12 27