23

Программирование Python по моим конспектам. Лекция 27

Пост можно топить, минусить и всячески убивать, ибо в горячем он нахер не нужен, а вот подписчикам пригодится.



Для тех кто не в теме, тут я перевожу свои лекции по питону с языка немецкого на язык человеческий, поэтому- если что- я не виноват. Эти лекции созданы не для того, чтобы сделать из человека говнокодера, а для того, чтобы помочь в сложных темах, которые некому объяснить, а книга по программированию не может с этим помочь. Если вы никогда не были в такой ситуации- значит вы вундеркинд и я хочу от вас детей.



Отвечая на 90% одинаковых вопросов-


Я знаю, что это есть в каждой книге по питону. Это логично. Не логично было бы, если бы это было в книге по анатомии хомяков.


Я это делаю, потому что мне это нравится.




Ахой, я выбрался, дабы наваять вам очередную лекцию. И я еще вот решил писать номер лекции по порядку, а не как раньше- через точку. Так сподручнее

Надеюсь, все за это время уже напрограммировали нашу игру с планетами, и она выглядит уже как то так

Нет? Ну и хрен с ней.


Я думал долго, писать ли лекции более подробно, или упоминать самое необходимое, но быстро. Но решил писать подробно и затянуть все на сраные года. Однако, если я вас заебал  у вас другие предложения- готов выслушать.

Сегодня поговорим о таком звере, как рекурсивная функция.

Это очень непростой зверь, но при детальном изучении оного, мы получим отличный инструмент.

Рекурсивная функция в двух словах, это функция, которая вызывает сама себя.


Вы, дорогие друзья, тоже можете быть носителями рекурсии. Вот вам пример. Попали вы в незнакомый город, и спрашиваете прохожих как попасть на вокзал. Выглядит это так

-Подскажите пожалуйста, как пройти на вокзал

-Дойдите до перекрестка, сверните направо, а там еще кого-нибудь спросите.


вы так и делаете, и возвращаетесь к вашей просьбе. И делаете это до тех пор, пока вы не упретесь мордашкой в вокзального бомжа и не поймете, что вы таки добрались. На этом ваша рекурсия закончилась.

Наш мозг запрограммирован так

- Если проблема решается легко- решай ее

-если нет- ищи путь, который кажется тебе более легким для ее решения


Иногда проблема не решается легко, да и вообще никак не решается. Это называется бесконечной рекурсией. Сейчас приготовитесь впасть в бесконечную рекурсию

Подумайте над предложением "мои предки это мои родители и предки моих родителей..и предки моих предков....."

Мы сейчас пытаемся понять дефиницию слова "предки", но нам это не удается и мы падаем в глубокую прострацию, перебирая проблему до бесконечности.


Самый известный пример бесконечной рекурсии, без которого ни одна говнокнижка или говнопост типа этого, не обойдется, и выглядит так

Зеркало в зеркале....


Для того, чтобы показать как работает рекурсия мы позовем черепашку

Знакомитесь

Это Череапах. И в нашем коде, мы так и напишем import turtle (turtle- пинд. яз- черепаха)

Черепах очень хороший зверь и он покажет нам визуально, то, что сложно объяснить словами. Смотрим ниже. Вот так она выглядит

черепах смотрит на право

Сейчас я сказал ей пройти прямо на 100 пикселей, затем развернуться на 90 градусов и пройти вниз на 200 пикселей с помощью этого кода

А теперь загоним нашего зверя в рекурсию

Вот что мы имеем на выходе

Каждый раз вызывая сама себя функция передает себе каждый раз новый аргумент х (порядком уменьшенным ввиду умножения на 0,9)


Выглядит это так-

Сначала х равен 200

передаем его в функцию

идем на 200 пикселей прямо

поворачиваем на право

умножаем 200 на 0,9- получаем 180

х указывает на 180

передаем 180 в функцию

идем на 180 прямо..... и пока х не станет меньше 5


еще один пример, который введет вас в ступор. Рисуем дерево. Сейчас из каждой ветки мы будем отращивать еще пару веток, а из них еще ветки.. короче это как модель спаривания кроликов из ранних лекций. Только дерево.

И вот вам дерево..

Для того чтобы понять, мой совет- на бумажке попробуйте написать себе как работает эта функция и какие значения принимает х. Куда при этом идет черепах и куда он смотрит при этом. На сегодня все. Дерзайте

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества