xam1816А, а я не понял, что ты там решил расширить возможности алгоритма.
я сначала так и сделал, но с другим шагом не через 1, а через 5 к примеру, не выходит
Я вот сделал две простых добавки в свой код (чтобы добавить шаг), причём очень быстро, без каких-либо размышлений, и он в итоге работает правильно, его даже проверять не надо.
>>> n = 4 # int(input()) >>> m = 5 # int(input()) >>> >>> index = 1 >>> step = 5 >>> for i in range(n): ... row = [] ... for j in range(m): ... row.append(index) ... index += step ... if i % 2 == 1: ... row = row[::-1] ... rowstr = ' '.join('{:>2}'.format(i) for i in row) ... print(rowstr) ... 1 6 11 16 21 46 41 36 31 26 51 56 61 66 71 96 91 86 81 76 >>>
А у тебя как бы всё склеено в монолит, поэтому для единицы получается какой-то вот такой бред про вычисление единицы для умножения на эту единицу. А вырезать эту штуку нельзя, потому что она для пятёрки не сработает. Как бы строчек меньше в коде, памяти меньше оно ест, а как поменять его надо, так его не поменяешь даже, потому что всё прибито гвоздями друг к другу. Также нужно кубатурить долго, чтобы убедиться, что никаких ошибок в нём нет, что все его поведения учтёны и работают без ошибок.
Поэтому простой код, который легко читается и над которым думать не надо, он лучше, даже если он там больше. Об этом всём также говорит PEP20. Но это не там придумали, просто повторили те же идеи, которые ещё с UNIX известны.