Программирование Python по моим конспектам Лекция 10.2
Пост можно топить, минусить и всячески убивать, ибо в горячем он нахер не нужен, а вот подписчикам пригодится.
Для тех кто не в теме, тут я перевожу свои лекции по питону с языка немецкого на язык человеческий, поэтому- если что- я не виноват. Эти лекции созданы не для того, чтобы сделать из человека говнокодера, а для того, чтобы помочь в сложных темах, которые некому объяснить, а книга по программированию не может с этим помочь. Если вы никогда не были в такой ситуации- значит вы вундеркинд и я хочу от вас детей.
Отвечая на 90% одинаковых вопросов-
Я знаю, что это есть в каждой книге по питону. Это логично. Не логично было бы, если бы это было в книге по анатомии хомяков.
Я это делаю, потому что мне это нравится.
список предыдущих лекций -
http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...
http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...
http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...
http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...
http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...
http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...
http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...
http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...
http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...
http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...
http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...
http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...
http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...
http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...
http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...
http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...
http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...
http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...
http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...
http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...
http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...
http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...
http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...
http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...
http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...
Приветствую!
К сожалению, в связи со скорой защитой кандидатской, у меня все меньше времени на лекции и на ответы вам, поэтому приходится делать паузы больше, а лекции короче. Но я все еще тут, а это главное.
Сегодня мы все так же говорим о функциях.
Как мы помним, функция должна предусматривать четко определенное количество аргументов, которые она может принять. Если в параметрах стоит funk(a,b,c), то мы не передадим ей funk(a,b,c,d). Правильно- ибо нехер!
НО!
Как всегда бородатые дядьки продумали подобный вариант. И сказали они- давайте сделаем возможность передачи любого количества аргументов, епта!
Таким образом родился параметр функции со звездочкой.
Например вот так funk( *args), если кто знает С или С++, простите пОцоны..я знаю...Там это значит немного другое.
Смотрим на пример
Я передаю функции любое количество аргументов. В данном случае их 4, но может быть сколько угодно. Когда функция принимает эти эти аргументы, она создает из них кортеж, который мы потом и используем как обычный аргумент. Так что Это ничем не отличается от от того, если бы мы передали функции кортеж.
Ну это не тяжело. Справитесь.
Дальше идут у нас по списку такие звери, как Локальные функции. Сие значит, что в теле одной функции могут быть написаны другие функции. Данные функции видятся только функцией-родителем и не могут быть вызваны "из вне".
Для примера мы напишем программу, которая определяет является ли текст написанным по английски.
Итак для того, чтобы определить какой текст мы пишем, необходимо нам сначала определить частоту повторения в процентах определенных букв в англ. языке. Выглядит это дело так.
Чаще всего встречается Е и так далее.
В данном случае я пишу функцию eng() и ее локальную функцию e(), которая будет считать непосредственно частоту повторения буквы.
Итак, что же происходит. Мы передаем строку функции eng(), она, в свою очередь, обрабатывает ее в локальной функции e(), для выявления частоты появления конкретной буквы. Мы узнаем количество переданных букв в строке, затем узнаем ее частоту в процентах и возвращаем все это дело.
Я взял только a, e, o. Для примера этого хватит. Так как нельзя абсолютно точно сказать, что в каждом предложении именно такой будет частота букв как в таблице выше, я расширил диапазон каждой буквы на + - 4%. Впрочем это не особо важно, так как важно понять что такое локальные функции, а не выявление букв в англ языке))
Таким образом функция e() вызывается из главной функции eng() трижды, и учитывая полученные показатели решает является ли язык английским.
На этом я бегу.
п.с отпишитесь как там дела с планетами, дабы знать стоит ли давать новые задания