[{"data":1,"prerenderedAt":1156},["ShallowReactive",2],{"navigation":3,"\u002Fblog\u002Fpython\u002Fst5":386,"\u002Fblog\u002Fpython\u002Fst5-surround":1151},[4],{"title":5,"path":6,"stem":7,"children":8,"page":114},"Blog","\u002Fblog","blog",[9,115,184,329],{"title":10,"path":11,"stem":12,"children":13,"page":114},"Ege","\u002Fblog\u002Fege","blog\u002Fege",[14,18,22,26,30,34,38,42,46,50,54,58,62,66,70,74,78,82,86,90,94,98,102,106,110],{"title":15,"path":16,"stem":17},"ЕГЭ Задание 1","\u002Fblog\u002Fege\u002Ftask1","blog\u002Fege\u002Ftask1",{"title":19,"path":20,"stem":21},"ЕГЭ Задание 10","\u002Fblog\u002Fege\u002Ftask10","blog\u002Fege\u002Ftask10",{"title":23,"path":24,"stem":25},"ЕГЭ Задание 11","\u002Fblog\u002Fege\u002Ftask11","blog\u002Fege\u002Ftask11",{"title":27,"path":28,"stem":29},"ЕГЭ Задание 12","\u002Fblog\u002Fege\u002Ftask12","blog\u002Fege\u002Ftask12",{"title":31,"path":32,"stem":33},"ЕГЭ Задание 13","\u002Fblog\u002Fege\u002Ftask13","blog\u002Fege\u002Ftask13",{"title":35,"path":36,"stem":37},"ЕГЭ Задание 14","\u002Fblog\u002Fege\u002Ftask14","blog\u002Fege\u002Ftask14",{"title":39,"path":40,"stem":41},"ЕГЭ Задание 15","\u002Fblog\u002Fege\u002Ftask15","blog\u002Fege\u002Ftask15",{"title":43,"path":44,"stem":45},"ЕГЭ Задание 16","\u002Fblog\u002Fege\u002Ftask16","blog\u002Fege\u002Ftask16",{"title":47,"path":48,"stem":49},"ЕГЭ Задание 17","\u002Fblog\u002Fege\u002Ftask17","blog\u002Fege\u002Ftask17",{"title":51,"path":52,"stem":53},"ЕГЭ Задание 18","\u002Fblog\u002Fege\u002Ftask18","blog\u002Fege\u002Ftask18",{"title":55,"path":56,"stem":57},"ЕГЭ Задание 19, 20, 21","\u002Fblog\u002Fege\u002Ftask19_20_21","blog\u002Fege\u002Ftask19_20_21",{"title":59,"path":60,"stem":61},"ЕГЭ Задание 2","\u002Fblog\u002Fege\u002Ftask2","blog\u002Fege\u002Ftask2",{"title":63,"path":64,"stem":65},"ЕГЭ Задание 22","\u002Fblog\u002Fege\u002Ftask22","blog\u002Fege\u002Ftask22",{"title":67,"path":68,"stem":69},"ЕГЭ Задание 23","\u002Fblog\u002Fege\u002Ftask23","blog\u002Fege\u002Ftask23",{"title":71,"path":72,"stem":73},"ЕГЭ Задание 24","\u002Fblog\u002Fege\u002Ftask24","blog\u002Fege\u002Ftask24",{"title":75,"path":76,"stem":77},"ЕГЭ Задание 25","\u002Fblog\u002Fege\u002Ftask25","blog\u002Fege\u002Ftask25",{"title":79,"path":80,"stem":81},"ЕГЭ Задание 26","\u002Fblog\u002Fege\u002Ftask26","blog\u002Fege\u002Ftask26",{"title":83,"path":84,"stem":85},"ЕГЭ Задание 27","\u002Fblog\u002Fege\u002Ftask27","blog\u002Fege\u002Ftask27",{"title":87,"path":88,"stem":89},"ЕГЭ Задание 3","\u002Fblog\u002Fege\u002Ftask3","blog\u002Fege\u002Ftask3",{"title":91,"path":92,"stem":93},"ЕГЭ Задание 4","\u002Fblog\u002Fege\u002Ftask4","blog\u002Fege\u002Ftask4",{"title":95,"path":96,"stem":97},"ЕГЭ Задание 5","\u002Fblog\u002Fege\u002Ftask5","blog\u002Fege\u002Ftask5",{"title":99,"path":100,"stem":101},"ЕГЭ Задание 6","\u002Fblog\u002Fege\u002Ftask6","blog\u002Fege\u002Ftask6",{"title":103,"path":104,"stem":105},"ЕГЭ Задание 7","\u002Fblog\u002Fege\u002Ftask7","blog\u002Fege\u002Ftask7",{"title":107,"path":108,"stem":109},"ЕГЭ Задание 8","\u002Fblog\u002Fege\u002Ftask8","blog\u002Fege\u002Ftask8",{"title":111,"path":112,"stem":113},"ЕГЭ Задание 9","\u002Fblog\u002Fege\u002Ftask9","blog\u002Fege\u002Ftask9",false,{"title":116,"path":117,"stem":118,"children":119,"page":114},"Oge","\u002Fblog\u002Foge","blog\u002Foge",[120,124,128,132,136,140,144,148,152,156,160,164,168,172,176,180],{"title":121,"path":122,"stem":123},"ОГЭ Задание 1","\u002Fblog\u002Foge\u002Ftask1","blog\u002Foge\u002Ftask1",{"title":125,"path":126,"stem":127},"ОГЭ Задание 10","\u002Fblog\u002Foge\u002Ftask10","blog\u002Foge\u002Ftask10",{"title":129,"path":130,"stem":131},"ОГЭ Задание 11","\u002Fblog\u002Foge\u002Ftask11","blog\u002Foge\u002Ftask11",{"title":133,"path":134,"stem":135},"ОГЭ Задание 12","\u002Fblog\u002Foge\u002Ftask12","blog\u002Foge\u002Ftask12",{"title":137,"path":138,"stem":139},"ОГЭ Задание 13","\u002Fblog\u002Foge\u002Ftask13","blog\u002Foge\u002Ftask13",{"title":141,"path":142,"stem":143},"ОГЭ Задание 14","\u002Fblog\u002Foge\u002Ftask14","blog\u002Foge\u002Ftask14",{"title":145,"path":146,"stem":147},"ОГЭ Задание 15","\u002Fblog\u002Foge\u002Ftask15","blog\u002Foge\u002Ftask15",{"title":149,"path":150,"stem":151},"ОГЭ Задание 16","\u002Fblog\u002Foge\u002Ftask16","blog\u002Foge\u002Ftask16",{"title":153,"path":154,"stem":155},"ОГЭ Задание 2","\u002Fblog\u002Foge\u002Ftask2","blog\u002Foge\u002Ftask2",{"title":157,"path":158,"stem":159},"ОГЭ Задание 3","\u002Fblog\u002Foge\u002Ftask3","blog\u002Foge\u002Ftask3",{"title":161,"path":162,"stem":163},"ОГЭ Задание 4","\u002Fblog\u002Foge\u002Ftask4","blog\u002Foge\u002Ftask4",{"title":165,"path":166,"stem":167},"ОГЭ Задание 5","\u002Fblog\u002Foge\u002Ftask5","blog\u002Foge\u002Ftask5",{"title":169,"path":170,"stem":171},"ОГЭ Задание 6","\u002Fblog\u002Foge\u002Ftask6","blog\u002Foge\u002Ftask6",{"title":173,"path":174,"stem":175},"ОГЭ Задание 7","\u002Fblog\u002Foge\u002Ftask7","blog\u002Foge\u002Ftask7",{"title":177,"path":178,"stem":179},"ОГЭ Задание 8","\u002Fblog\u002Foge\u002Ftask8","blog\u002Foge\u002Ftask8",{"title":181,"path":182,"stem":183},"ОГЭ Задание 9","\u002Fblog\u002Foge\u002Ftask9","blog\u002Foge\u002Ftask9",{"title":185,"path":186,"stem":187,"children":188,"page":114},"Python","\u002Fblog\u002Fpython","blog\u002Fpython",[189,193,197,201,205,209,213,217,221,225,229,233,237,241,245,249,253,257,261,265,269,273,277,281,285,289,293,297,301,305,309,313,317,321,325],{"title":190,"path":191,"stem":192},"Знакомство с синтаксисом","\u002Fblog\u002Fpython\u002Fst1","blog\u002Fpython\u002Fst1",{"title":194,"path":195,"stem":196},"Отладка","\u002Fblog\u002Fpython\u002Fst10","blog\u002Fpython\u002Fst10",{"title":198,"path":199,"stem":200},"Модули и пакеты","\u002Fblog\u002Fpython\u002Fst11","blog\u002Fpython\u002Fst11",{"title":202,"path":203,"stem":204},"Кортежи","\u002Fblog\u002Fpython\u002Fst12","blog\u002Fpython\u002Fst12",{"title":206,"path":207,"stem":208},"Знакомство со списками","\u002Fblog\u002Fpython\u002Fst13","blog\u002Fpython\u002Fst13",{"title":210,"path":211,"stem":212},"Списки и циклы","\u002Fblog\u002Fpython\u002Fst14","blog\u002Fpython\u002Fst14",{"title":214,"path":215,"stem":216},"Использование списков ч.1","\u002Fblog\u002Fpython\u002Fst15","blog\u002Fpython\u002Fst15",{"title":218,"path":219,"stem":220},"Использование списков ч.2","\u002Fblog\u002Fpython\u002Fst16","blog\u002Fpython\u002Fst16",{"title":222,"path":223,"stem":224},"Использование списков ч.3","\u002Fblog\u002Fpython\u002Fst17","blog\u002Fpython\u002Fst17",{"title":226,"path":227,"stem":228},"Словари","\u002Fblog\u002Fpython\u002Fst18","blog\u002Fpython\u002Fst18",{"title":230,"path":231,"stem":232},"Множества","\u002Fblog\u002Fpython\u002Fst19","blog\u002Fpython\u002Fst19",{"title":234,"path":235,"stem":236},"Переменные","\u002Fblog\u002Fpython\u002Fst2","blog\u002Fpython\u002Fst2",{"title":238,"path":239,"stem":240},"Хеш-таблицы","\u002Fblog\u002Fpython\u002Fst20","blog\u002Fpython\u002Fst20",{"title":242,"path":243,"stem":244},"Решето Эратосфена","\u002Fblog\u002Fpython\u002Fst21","blog\u002Fpython\u002Fst21",{"title":246,"path":247,"stem":248},"Длинная арифметика","\u002Fblog\u002Fpython\u002Fst22","blog\u002Fpython\u002Fst22",{"title":250,"path":251,"stem":252},"Декораторы функций","\u002Fblog\u002Fpython\u002Fst23","blog\u002Fpython\u002Fst23",{"title":254,"path":255,"stem":256},"Знакомство с алгоритмами","\u002Fblog\u002Fpython\u002Fst24","blog\u002Fpython\u002Fst24",{"title":258,"path":259,"stem":260},"Бинарный поиск – примеры задач","\u002Fblog\u002Fpython\u002Fst25","blog\u002Fpython\u002Fst25",{"title":262,"path":263,"stem":264},"Сортировка выбором","\u002Fblog\u002Fpython\u002Fst26","blog\u002Fpython\u002Fst26",{"title":266,"path":267,"stem":268},"Рекурсия и стек","\u002Fblog\u002Fpython\u002Fst27","blog\u002Fpython\u002Fst27",{"title":270,"path":271,"stem":272},"Быстрая сортировка","\u002Fblog\u002Fpython\u002Fst28","blog\u002Fpython\u002Fst28",{"title":274,"path":275,"stem":276},"Поиск в ширину","\u002Fblog\u002Fpython\u002Fst29","blog\u002Fpython\u002Fst29",{"title":278,"path":279,"stem":280},"Работа со строками","\u002Fblog\u002Fpython\u002Fst3","blog\u002Fpython\u002Fst3",{"title":282,"path":283,"stem":284},"Поиск в глубину","\u002Fblog\u002Fpython\u002Fst30","blog\u002Fpython\u002Fst30",{"title":286,"path":287,"stem":288},"Сбалансированные деревья","\u002Fblog\u002Fpython\u002Fst31","blog\u002Fpython\u002Fst31",{"title":290,"path":291,"stem":292},"Алгоритм Дейкстры","\u002Fblog\u002Fpython\u002Fst32","blog\u002Fpython\u002Fst32",{"title":294,"path":295,"stem":296},"Жадные алгоритмы","\u002Fblog\u002Fpython\u002Fst33","blog\u002Fpython\u002Fst33",{"title":298,"path":299,"stem":300},"Динамическое программирование","\u002Fblog\u002Fpython\u002Fst34","blog\u002Fpython\u002Fst34",{"title":302,"path":303,"stem":304},"Алгоритм k ближайших соседей","\u002Fblog\u002Fpython\u002Fst35","blog\u002Fpython\u002Fst35",{"title":306,"path":307,"stem":308},"Типы данных","\u002Fblog\u002Fpython\u002Fst4","blog\u002Fpython\u002Fst4",{"title":310,"path":311,"stem":312},"О функциях","\u002Fblog\u002Fpython\u002Fst5","blog\u002Fpython\u002Fst5",{"title":314,"path":315,"stem":316},"Свойства и методы","\u002Fblog\u002Fpython\u002Fst6","blog\u002Fpython\u002Fst6",{"title":318,"path":319,"stem":320},"Определение функций","\u002Fblog\u002Fpython\u002Fst7","blog\u002Fpython\u002Fst7",{"title":322,"path":323,"stem":324},"Логика","\u002Fblog\u002Fpython\u002Fst8","blog\u002Fpython\u002Fst8",{"title":326,"path":327,"stem":328},"Циклы","\u002Fblog\u002Fpython\u002Fst9","blog\u002Fpython\u002Fst9",{"title":330,"path":331,"stem":332,"children":333,"page":114},"Toi","\u002Fblog\u002Ftoi","blog\u002Ftoi",[334,338,342,346,350,354,358,362,366,370,374,378,382],{"title":335,"path":336,"stem":337},"Информация и информационные процессы","\u002Fblog\u002Ftoi\u002Fst1","blog\u002Ftoi\u002Fst1",{"title":339,"path":340,"stem":341},"Электронные таблицы","\u002Fblog\u002Ftoi\u002Fst10","blog\u002Ftoi\u002Fst10",{"title":343,"path":344,"stem":345},"Система, её свойства и компоненты. Моделирование","\u002Fblog\u002Ftoi\u002Fst11","blog\u002Ftoi\u002Fst11",{"title":347,"path":348,"stem":349},"Представление информации в компьютере","\u002Fblog\u002Ftoi\u002Fst12","blog\u002Ftoi\u002Fst12",{"title":351,"path":352,"stem":353},"Средства информационно-коммуникационных технологий. Файловая система","\u002Fblog\u002Ftoi\u002Fst13","blog\u002Ftoi\u002Fst13",{"title":355,"path":356,"stem":357},"Комбинаторика","\u002Fblog\u002Ftoi\u002Fst2","blog\u002Ftoi\u002Fst2",{"title":359,"path":360,"stem":361},"Адресация в интернете","\u002Fblog\u002Ftoi\u002Fst3","blog\u002Ftoi\u002Fst3",{"title":363,"path":364,"stem":365},"Измерение количества информации","\u002Fblog\u002Ftoi\u002Fst4","blog\u002Ftoi\u002Fst4",{"title":367,"path":368,"stem":369},"Системы счисления","\u002Fblog\u002Ftoi\u002Fst5","blog\u002Ftoi\u002Fst5",{"title":371,"path":372,"stem":373},"Диаграммы Эйлера — Венна","\u002Fblog\u002Ftoi\u002Fst6","blog\u002Ftoi\u002Fst6",{"title":375,"path":376,"stem":377},"Условие Фано","\u002Fblog\u002Ftoi\u002Fst7","blog\u002Ftoi\u002Fst7",{"title":379,"path":380,"stem":381},"Теория графов","\u002Fblog\u002Ftoi\u002Fst8","blog\u002Ftoi\u002Fst8",{"title":383,"path":384,"stem":385},"Алгебра логики","\u002Fblog\u002Ftoi\u002Fst9","blog\u002Ftoi\u002Fst9",{"id":387,"title":310,"author":388,"body":393,"date":1142,"description":1143,"extension":1144,"image":1145,"meta":1146,"minRead":1147,"navigation":1148,"num":848,"path":311,"seo":1149,"stem":312,"__hash__":1150},"python\u002Fblog\u002Fpython\u002Fst5.md",{"name":389,"avatar":390},"Штана Альберт Игоревич",{"src":391,"alt":392},"me.jpg","@ashtana",{"type":394,"value":395,"toc":1125},"minimark",[396,401,406,410,417,473,479,519,523,526,531,546,564,567,571,578,607,610,620,623,646,649,705,714,718,721,725,728,761,764,792,795,799,802,857,860,893,896,956,959,963,970,974,980,1036,1039,1042,1086,1089,1092,1096,1107,1118,1121],[397,398,400],"h2",{"id":399},"функции","Функции",[402,403,405],"h3",{"id":404},"вызов-функции","Вызов функции",[407,408,409],"p",{},"Сложение, конкатенация, нахождение остатка от деления и остальные рассмотренные операции — это базовые возможности языков программирования.\nМатематика не ограничена арифметикой, кроме нее есть и другие разделы со своими операциями — например, статистика.\nТо же самое касается и строк: их можно переворачивать, менять регистр букв, удалять лишние символы — и это только самое простое.\nЕще на более высоком уровне есть прикладная логика конкретного приложения. Программы списывают деньги, считают налоги, формируют отчеты.\nКоличество подобных операций бесконечно и индивидуально для каждой программы. И их нужно уметь выражать в коде.\nЧтобы выразить любую произвольную операцию, в программировании существует понятие функция.\nФункции бывают встроенные и добавленные программистом. С одной встроенной функцией мы уже знакомы — это print().\nФункции — одна из ключевых конструкций в программировании. Без них невозможно сделать практически ничего.\nЗнакомство с ними нужно начинать как можно раньше, так как весь дальнейший материал оперирует функциями по максимуму.\nСначала необходимо научится пользоваться уже созданными функциями, а потом создавать собственные.",[407,411,412,416],{},[413,414,415],"strong",{},"Функция len()"," считает количество символов в строке. Пример ее вызова:",[418,419,424],"pre",{"className":420,"code":421,"language":422,"meta":423,"style":423},"language-python shiki shiki-themes github-light","# Вызов функции len с параметром 'Python'\nresult = len('Python')\nprint(result)  # => 6\n","python","",[425,426,427,436,461],"code",{"__ignoreMap":423},[428,429,432],"span",{"class":430,"line":431},"line",1,[428,433,435],{"class":434},"sAwPA","# Вызов функции len с параметром 'Python'\n",[428,437,439,443,447,451,454,458],{"class":430,"line":438},2,[428,440,442],{"class":441},"sgsFI","result ",[428,444,446],{"class":445},"sD7c4","=",[428,448,450],{"class":449},"sYu0t"," len",[428,452,453],{"class":441},"(",[428,455,457],{"class":456},"sYBdl","'Python'",[428,459,460],{"class":441},")\n",[428,462,464,467,470],{"class":430,"line":463},3,[428,465,466],{"class":449},"print",[428,468,469],{"class":441},"(result)  ",[428,471,472],{"class":434},"# => 6\n",[407,474,475,478],{},[413,476,477],{},"Параметры или аргументы"," — это информация, которую функция получает при вызове. На основе этой информации функция обычно вычисляет и выдает результат.\nВ примере выше мы создали переменную result и указали интерпретатору конкретное действие: надо записать в нее результат, который возвращается функцией len() при ее вызове.\nВ этом смысле функции подобны операциям — они всегда возвращают результат своей работы.\nЗапись len('Python') означает, что вызывается функция с именем len, в которую передали параметр 'Python'. Функция len() считает длину той строки, которую ей передали.\nВызов функции всегда обозначается скобками (), которые идут сразу за именем функции. В скобках может быть любое количество параметров, а иногда ни одного.\nКоличество зависит от используемой функции. Возьмем для примера функцию pow(), которая возводит указанное число в нужную степень.\nОна принимает на вход два параметра: берет первый параметр и возводит его в степень, переданную вторым параметром:",[418,480,482],{"className":420,"code":481,"language":422,"meta":423,"style":423},"result = pow(2, 4)  # 2 * 2 * 2 * 2\nprint(result)  # => 16\n",[425,483,484,510],{"__ignoreMap":423},[428,485,486,488,490,493,495,498,501,504,507],{"class":430,"line":431},[428,487,442],{"class":441},[428,489,446],{"class":445},[428,491,492],{"class":449}," pow",[428,494,453],{"class":441},[428,496,497],{"class":449},"2",[428,499,500],{"class":441},", ",[428,502,503],{"class":449},"4",[428,505,506],{"class":441},")  ",[428,508,509],{"class":434},"# 2 * 2 * 2 * 2\n",[428,511,512,514,516],{"class":430,"line":438},[428,513,466],{"class":449},[428,515,469],{"class":441},[428,517,518],{"class":434},"# => 16\n",[402,520,522],{"id":521},"сигнатура-функции","Сигнатура функции",[407,524,525],{},"Посмотрим на функции, которые возводят число в степень и округляют.\nТакже на их примере разберем, что такое сигнатура, и какие параметры называют обязательными и необязательными.",[527,528,530],"h4",{"id":529},"функция-pow","Функция pow()",[407,532,533,534,537,538,545],{},"Функция ",[413,535,536],{},"pow()"," возводит число в степень. Она принимает два параметра: какое число возводить и в какую степень возводить.\nЕсли вызывать pow() без параметров, то Python выдаст следующее: \"TypeError: pow expected at least 2 arguments, got 0\".\nИнтерпретатор сообщает, что функция ожидает два параметра, а вы вызвали ее без них.\nФункция pow() всегда имеет два обязательных параметра, поэтому ее невозможно вызвать с другим количеством параметров.\nБолее того, параметрами pow() могут быть только числа.\nНапример, если передать в нее пару строк, это приведет к следующей ошибке: \"TypeError: unsupported operand type(s) for ** or pow(): 'str' and 'str'\".\nРезультат вызова функции — тоже всегда число. Другая функция может иметь другое число параметров и другие типы параметров.\nНапример, может существовать функция, которая принимает три параметра: число, строку и еще одно число.\nЧтобы знать такие подробности о конкретной функции, нужно изучать ее сигнатуру.\nОна определяет входные параметры и их типы, а также выходной параметр и его тип.\nПро функцию pow() можно почитать в ",[539,540,544],"a",{"href":541,"rel":542},"https:\u002F\u002Fdocs.python.org\u002F3\u002Flibrary\u002Ffunctions.html#pow",[543],"nofollow","официальной документации Python",".\nОбычно документация для функции выглядит так:",[418,547,549],{"className":420,"code":548,"language":422,"meta":423,"style":423},"pow(x, y[, z])\nВозвращает x в степени y; если z присутствует, возвращает x в степени y, по модулю z\n",[425,550,551,559],{"__ignoreMap":423},[428,552,553,556],{"class":430,"line":431},[428,554,555],{"class":449},"pow",[428,557,558],{"class":441},"(x, y[, z])\n",[428,560,561],{"class":430,"line":438},[428,562,563],{"class":441},"Возвращает x в степени y; если z присутствует, возвращает x в степени y, по модулю z\n",[407,565,566],{},"Первая строка здесь — это сигнатура функции. У функции два обязательных параметра — x и y.\nНеобязательный параметр z указан в квадратных скобках. Следом поясняется, для чего функция нужна.\nДокументация дает понять, сколько аргументов у функции и какого они типа.\nТакже она описывает, что возвращает функция и какого типа будет возвращаемое значение.\nРассмотрим еще одну функцию — она округляет число.",[527,568,570],{"id":569},"функция-round","Функция round()",[407,572,573,574,577],{},"Рассмотрим функцию ",[413,575,576],{},"round()",", которая округляет переданное ей число:",[418,579,581],{"className":420,"code":580,"language":422,"meta":423,"style":423},"result = round(9.35, 0)  # 9.0\n",[425,582,583],{"__ignoreMap":423},[428,584,585,587,589,592,594,597,599,602,604],{"class":430,"line":431},[428,586,442],{"class":441},[428,588,446],{"class":445},[428,590,591],{"class":449}," round",[428,593,453],{"class":441},[428,595,596],{"class":449},"9.35",[428,598,500],{"class":441},[428,600,601],{"class":449},"0",[428,603,506],{"class":441},[428,605,606],{"class":434},"# 9.0\n",[407,608,609],{},"Мы передали в нее два параметра:",[611,612,613,617],"ul",{},[614,615,616],"li",{},"Число, которое нужно округлить",[614,618,619],{},"Точность округления",[407,621,622],{},"Создатели функции round сделали второй параметр необязательным и задали ему внутри функции значение по умолчанию None.\nЕсли не указывать второй параметр, то результат будет целым значением (int):",[418,624,626],{"className":420,"code":625,"language":422,"meta":423,"style":423},"result = round(9.23)  # 9\n",[425,627,628],{"__ignoreMap":423},[428,629,630,632,634,636,638,641,643],{"class":430,"line":431},[428,631,442],{"class":441},[428,633,446],{"class":445},[428,635,591],{"class":449},[428,637,453],{"class":441},[428,639,640],{"class":449},"9.23",[428,642,506],{"class":441},[428,644,645],{"class":434},"# 9\n",[407,647,648],{},"А если нужна точность, то можно передать параметр:",[418,650,652],{"className":420,"code":651,"language":422,"meta":423,"style":423},"# округление до одного знака после запятой\nprint(round(8.25, 1))  # 8.2\nprint(round(8.15, 1))  # 8.2\n",[425,653,654,659,684],{"__ignoreMap":423},[428,655,656],{"class":430,"line":431},[428,657,658],{"class":434},"# округление до одного знака после запятой\n",[428,660,661,663,665,668,670,673,675,678,681],{"class":430,"line":438},[428,662,466],{"class":449},[428,664,453],{"class":441},[428,666,667],{"class":449},"round",[428,669,453],{"class":441},[428,671,672],{"class":449},"8.25",[428,674,500],{"class":441},[428,676,677],{"class":449},"1",[428,679,680],{"class":441},"))  ",[428,682,683],{"class":434},"# 8.2\n",[428,685,686,688,690,692,694,697,699,701,703],{"class":430,"line":463},[428,687,466],{"class":449},[428,689,453],{"class":441},[428,691,667],{"class":449},[428,693,453],{"class":441},[428,695,696],{"class":449},"8.15",[428,698,500],{"class":441},[428,700,677],{"class":449},[428,702,680],{"class":441},[428,704,683],{"class":434},[407,706,707,708,713],{},"В первом случае округление в меньшую сторону, а во втором случае округление в большую сторону.\nСогласно ",[539,709,712],{"href":710,"rel":711},"https:\u002F\u002Fdocs.python.org\u002F3\u002Flibrary\u002Fstdtypes.html#numeric-types-int-float-complex",[543],"документации"," среднее значение округляется в сторону четного числа.\nЕсли функция в Python принимает необязательные аргументы, то они всегда стоят после обязательных. Их количество может быть любым.\nЭто зависит от самой функции, но они всегда идут рядом и в конце списка аргументов.",[402,715,717],{"id":716},"вызов-функции-выражение","Вызов функции — выражение",[407,719,720],{},"Можно ли вызов функции принять за выражение?",[527,722,724],{"id":723},"что-принимается-за-выражение","Что принимается за выражение",[407,726,727],{},"Выражение в программировании возвращает результат, который можно использовать.\nНапример, такие математические операции, как сложение и вычитание, строковые операции, как конкатенация, — все это выражения.\nОсобенность выражений в том, что они возвращают результат, который можно использовать дальше: например, присвоить переменной или вывести на экран.\nТак это выглядит в коде:",[418,729,731],{"className":420,"code":730,"language":422,"meta":423,"style":423},"# Тут выражение — это 1 + 5\nsumm = 5 + 5\nprint(summ)\n",[425,732,733,738,754],{"__ignoreMap":423},[428,734,735],{"class":430,"line":431},[428,736,737],{"class":434},"# Тут выражение — это 1 + 5\n",[428,739,740,743,745,748,751],{"class":430,"line":438},[428,741,742],{"class":441},"summ ",[428,744,446],{"class":445},[428,746,747],{"class":449}," 5",[428,749,750],{"class":445}," +",[428,752,753],{"class":449}," 5\n",[428,755,756,758],{"class":430,"line":463},[428,757,466],{"class":449},[428,759,760],{"class":441},"(summ)\n",[407,762,763],{},"Но не все в программировании — выражение. Определение переменной — это инструкция, значит, она не может быть частью выражения. То есть такой код выдаст ошибку:",[418,765,767],{"className":420,"code":766,"language":422,"meta":423,"style":423},"# Бессмысленный код, который не сработает\n5 + summ = 5 + 5\n",[425,768,769,774],{"__ignoreMap":423},[428,770,771],{"class":430,"line":431},[428,772,773],{"class":434},"# Бессмысленный код, который не сработает\n",[428,775,776,779,781,784,786,788,790],{"class":430,"line":438},[428,777,778],{"class":449},"5",[428,780,750],{"class":445},[428,782,783],{"class":441}," summ ",[428,785,446],{"class":445},[428,787,747],{"class":449},[428,789,750],{"class":445},[428,791,753],{"class":449},[407,793,794],{},"Теперь разберемся, принимается ли за выражение вызов функции.",[527,796,798],{"id":797},"можно-ли-считать-вызов-функции-выражением","Можно ли считать вызов функции выражением",[407,800,801],{},"Функции возвращают результат — значит, они выражения. Например, можно использовать вызов функции прямо в математических операциях.\nВот как можно получить индекс последнего символа в слове:",[418,803,805],{"className":420,"code":804,"language":422,"meta":423,"style":423},"name = 'Python'\n# Индексы начинаются с нуля\n# Вызов функции и вычитание вместе!\nlast_i = len(name) - 1\nprint(last_i)  # => 5\n",[425,806,807,817,822,827,846],{"__ignoreMap":423},[428,808,809,812,814],{"class":430,"line":431},[428,810,811],{"class":441},"name ",[428,813,446],{"class":445},[428,815,816],{"class":456}," 'Python'\n",[428,818,819],{"class":430,"line":438},[428,820,821],{"class":434},"# Индексы начинаются с нуля\n",[428,823,824],{"class":430,"line":463},[428,825,826],{"class":434},"# Вызов функции и вычитание вместе!\n",[428,828,830,833,835,837,840,843],{"class":430,"line":829},4,[428,831,832],{"class":441},"last_i ",[428,834,446],{"class":445},[428,836,450],{"class":449},[428,838,839],{"class":441},"(name) ",[428,841,842],{"class":445},"-",[428,844,845],{"class":449}," 1\n",[428,847,849,851,854],{"class":430,"line":848},5,[428,850,466],{"class":449},[428,852,853],{"class":441},"(last_i)  ",[428,855,856],{"class":434},"# => 5\n",[407,858,859],{},"В этом коде нет нового синтаксиса. Мы всего лишь соединили уже известные части, опираясь на их природу. Можно пойти еще дальше:",[418,861,863],{"className":420,"code":862,"language":422,"meta":423,"style":423},"name = 'Python'\nprint(len(name) - 1)  # => 5\n",[425,864,865,873],{"__ignoreMap":423},[428,866,867,869,871],{"class":430,"line":431},[428,868,811],{"class":441},[428,870,446],{"class":445},[428,872,816],{"class":456},[428,874,875,877,879,882,884,886,889,891],{"class":430,"line":438},[428,876,466],{"class":449},[428,878,453],{"class":441},[428,880,881],{"class":449},"len",[428,883,839],{"class":441},[428,885,842],{"class":445},[428,887,888],{"class":449}," 1",[428,890,506],{"class":441},[428,892,856],{"class":434},[407,894,895],{},"Все это справедливо для любых функций, например, строковых:",[418,897,899],{"className":420,"code":898,"language":422,"meta":423,"style":423},"name = 'Python'\n# Используется интерполяция\nprint(f'Последний символ: {name[len(name) - 1]}')\n# => Последний символ: n\n",[425,900,901,909,914,951],{"__ignoreMap":423},[428,902,903,905,907],{"class":430,"line":431},[428,904,811],{"class":441},[428,906,446],{"class":445},[428,908,816],{"class":456},[428,910,911],{"class":430,"line":438},[428,912,913],{"class":434},"# Используется интерполяция\n",[428,915,916,918,920,923,926,929,932,934,936,938,940,943,946,949],{"class":430,"line":463},[428,917,466],{"class":449},[428,919,453],{"class":441},[428,921,922],{"class":445},"f",[428,924,925],{"class":456},"'Последний символ: ",[428,927,928],{"class":449},"{",[428,930,931],{"class":441},"name[",[428,933,881],{"class":449},[428,935,839],{"class":441},[428,937,842],{"class":445},[428,939,888],{"class":449},[428,941,942],{"class":441},"]",[428,944,945],{"class":449},"}",[428,947,948],{"class":456},"'",[428,950,460],{"class":441},[428,952,953],{"class":430,"line":829},[428,954,955],{"class":434},"# => Последний символ: n\n",[407,957,958],{},"Как вы увидите дальше, выражения можно комбинировать, получая все более сложное поведение в разных местах и любым образом.\nЧем глубже вы будете изучать Python и практиковаться в нем, тем лучше вы будете понимать работу с выражениями.\nСо временем вы лучше поймете, как соединять части кода, чтобы получить нужный результат.",[402,960,962],{"id":961},"детерминированность","Детерминированность",[407,964,965,966,969],{},"У функций внутри каждого языка программирования есть фундаментальные свойства.\nЭти свойства помогают прогнозировать поведение функций, способы их тестирования и место использования.\nК таким свойствам относится ",[967,968,961],"em",{},".\nДавайте разберемся с детерминированной функцией. Узнаем, зачем эта функция выдает результат, который никак не применяется.",[527,971,973],{"id":972},"детерминированная-функция","Детерминированная функция",[407,975,976,979],{},[967,977,978],{},"Детерминированная функция возвращает один и тот же результат для одинаковых входных параметров.","\nНапример, детерминированной можно назвать функцию, которая считает количество символов:",[418,981,983],{"className":420,"code":982,"language":422,"meta":423,"style":423},"len('Python')  # 6\nlen('Python')  # 6\nlen('hex')  # 3\nlen('hex')  # 3\n",[425,984,985,998,1010,1024],{"__ignoreMap":423},[428,986,987,989,991,993,995],{"class":430,"line":431},[428,988,881],{"class":449},[428,990,453],{"class":441},[428,992,457],{"class":456},[428,994,506],{"class":441},[428,996,997],{"class":434},"# 6\n",[428,999,1000,1002,1004,1006,1008],{"class":430,"line":438},[428,1001,881],{"class":449},[428,1003,453],{"class":441},[428,1005,457],{"class":456},[428,1007,506],{"class":441},[428,1009,997],{"class":434},[428,1011,1012,1014,1016,1019,1021],{"class":430,"line":463},[428,1013,881],{"class":449},[428,1015,453],{"class":441},[428,1017,1018],{"class":456},"'hex'",[428,1020,506],{"class":441},[428,1022,1023],{"class":434},"# 3\n",[428,1025,1026,1028,1030,1032,1034],{"class":430,"line":829},[428,1027,881],{"class":449},[428,1029,453],{"class":441},[428,1031,1018],{"class":456},[428,1033,506],{"class":441},[428,1035,1023],{"class":434},[407,1037,1038],{},"Можно бесконечно вызывать эту функцию и передавать туда значение 'Python' — она всегда вернет 6.",[407,1040,1041],{},"Посмотрим и обратный случай — недетерминированные функции.\nНапример, к этой категории относится функция, которая возвращает случайное число: у одного и того же входа мы получим всегда разный результат.\nЕсли хотя бы один из миллиона вызовов функции вернет другой результат, она считается недетерминированной.\nЭто работает и в том случае, если параметры не принимаются:",[418,1043,1045],{"className":420,"code":1044,"language":422,"meta":423,"style":423},"# Про синтаксис импортов позже\nfrom random import random\n# Функция, которая возвращает случайное число\nrandom()  # 0.0432523454325265\nrandom()  # 0.2364564577656544\n",[425,1046,1047,1052,1066,1071,1079],{"__ignoreMap":423},[428,1048,1049],{"class":430,"line":431},[428,1050,1051],{"class":434},"# Про синтаксис импортов позже\n",[428,1053,1054,1057,1060,1063],{"class":430,"line":438},[428,1055,1056],{"class":445},"from",[428,1058,1059],{"class":441}," random ",[428,1061,1062],{"class":445},"import",[428,1064,1065],{"class":441}," random\n",[428,1067,1068],{"class":430,"line":463},[428,1069,1070],{"class":434},"# Функция, которая возвращает случайное число\n",[428,1072,1073,1076],{"class":430,"line":829},[428,1074,1075],{"class":441},"random()  ",[428,1077,1078],{"class":434},"# 0.0432523454325265\n",[428,1080,1081,1083],{"class":430,"line":848},[428,1082,1075],{"class":441},[428,1084,1085],{"class":434},"# 0.2364564577656544\n",[407,1087,1088],{},"Детерминированность — это важное свойство функции, так как она влияет на многие аспекты.\nНапример, детерминированные функции удобны в работе — их легко оптимизировать и тестировать.\nЕсли возможно, то лучше сделать функцию детерминированной.",[407,1090,1091],{},"Для примера рассмотрим одну необычную функцию — она возвращает результат, с которым ничего нельзя сделать.",[527,1093,1095],{"id":1094},"побочные-эффекты","Побочные эффекты",[407,1097,1098,1099,1102,1103,1106],{},"В Python есть функция ",[413,1100,1101],{},"print()",", которая принимает на вход данные любого типа и выводит их на экран.\nОна вызывает ",[413,1104,1105],{},"побочный эффект"," — из-за выполнения функции запускается действие, которое изменяет среду выполнения.\nЕщё побочные эффекты вызывают любые сетевые взаимодействия, чтение и запись файлов, вывод информации на экран и печать на принтере.\nПобочные эффекты — один из основных источников проблем и ошибок в программных системах. Такой код сложнее тестировать, снижается его надежность.\nПри этом без побочных эффектов программирование не имеет смысла.\nБез них было бы невозможно получить результат работы программы: например, записать в базу, вывести на экран и отправить по сети.\nПобочными эффектами print() отличается от других функций, которые также принимают на вход данные любого типа.\nДругие функции возвращают значения, которые можно дальше использовать.\nВ отличие от них, функция print() выводит такой результат, с которым ничего нельзя сделать.\nВывод на экран и возврат значения из функции — разные и независимые операции.",[407,1108,1109,1110,1113,1114,1117],{},"Попробуйте сами запустить код в окне ниже с интерпретатором Python и повторите примеры из статьи чтобы самим увидеть и понять как всё это работает.\nДля этого в ячейке с кодом нажмите клавиши на клавиатуре ",[413,1111,1112],{},"Shift+Enter"," или запустите код через ",[413,1115,1116],{},"кнопку Run"," по значку ▶.",[1119,1120],"jypiter",{},[1122,1123,1124],"style",{},"html pre.shiki code .sAwPA, html code.shiki .sAwPA{--shiki-default:#6A737D}html pre.shiki code .sgsFI, html code.shiki .sgsFI{--shiki-default:#24292E}html pre.shiki code .sD7c4, html code.shiki .sD7c4{--shiki-default:#D73A49}html pre.shiki code .sYu0t, html code.shiki .sYu0t{--shiki-default:#005CC5}html pre.shiki code .sYBdl, html code.shiki .sYBdl{--shiki-default:#032F62}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":423,"searchDepth":438,"depth":848,"links":1126},[1127],{"id":399,"depth":438,"text":400,"children":1128},[1129,1130,1134,1138],{"id":404,"depth":463,"text":405},{"id":521,"depth":463,"text":522,"children":1131},[1132,1133],{"id":529,"depth":829,"text":530},{"id":569,"depth":829,"text":570},{"id":716,"depth":463,"text":717,"children":1135},[1136,1137],{"id":723,"depth":829,"text":724},{"id":797,"depth":829,"text":798},{"id":961,"depth":463,"text":962,"children":1139},[1140,1141],{"id":972,"depth":829,"text":973},{"id":1094,"depth":829,"text":1095},"2025-01-26","Использование готовых функций. Приём и возврат значений функций. Свойства функций","md","images\u002Fblog\u002Fpython\u002Fst5\u002Fimg.png",{},14,true,{"title":310,"description":1143},"568TvG4SmbMI2FA0Z1eIV5DnmPc2TcSFDfIFGkGprv4",[1152,1154],{"title":306,"path":307,"stem":308,"description":1153,"children":-1},"Типы данных. Изменяемость данных",{"title":314,"path":315,"stem":316,"description":1155,"children":-1},"Использование встроенных функций. Цепочки методов. Стандартная библиотека Python",1780737507868]