KAGOR
Либо я устал и туплю, но я читаю код и не понимаю
Это результат того, что человек, писавший всё это, решил показать, какой он умный. Для этого у него имеется стандартный критерий новичка “умный код = короткий код”. Он его применил, поэтому теперь ты, читающий его код, должен сидеть и разворачивать у себя в голове всё это обратно, чтобы просто понять. Так выглядит работа говнокодера - куча коротких кодов, которые проще выкинуть, чем понимать, тратя на это время.
>>> def minelem(lst, i=0, length=None, acc=None):
... if length is None:
... length = len(lst)
... if i == length:
... return acc
... if acc is None:
... acc = lst[0]
... if lst[i] < acc:
... return minelem(lst, i + 1, length, lst[i])
... else:
... return minelem(lst, i + 1, length, acc)
...
>>> minelem([])
>>> minelem([1])
1
>>> minelem([1, 2])
1
>>> minelem([2, 1])
1
>>> minelem([5, 4, 1, 2, 7, 6])
1
>>> minelem([3, 2, 1])
1
>>>
>>> def nummirror(n, acc=0):
... if n == 0:
... return acc
... else:
... return nummirror(n // 10, acc * 10 + n % 10)
...
>>> nummirror(1)
1
>>> nummirror(12)
21
>>> nummirror(21)
12
>>> nummirror(123)
321
>>> nummirror(1234)
4321
>>>