Язык Python предлагает множество заранее определённых, то есть встроенных функций. Их определения скрыты от глаз программиста в "глубинах" языка, и разработчику достаточно понимать, какие аргументы они принимают и что на выходе возвращают, что составляет их интерфейс.

Мы уже познакомились с рядом встроенных функций, которые касаются ввода-вывода и работы с данными. Это такие функции, как print(), input(), int(), float(), str(), bool(), type(). Полный список встроенных функций Python можно найти в официальной документации: документация.

В этом уроке мы рассмотрим некоторые встроенные функции, разбив их на группы по категориям:

  • функции для работы с символами – ord(), chr(), len()
  • математические функции – abs(), round(), divmod(), pow(), max(), min(), sum()

Функция ord() предоставляет возможность узнать числовой код символа по таблице Unicode. Она принимает как аргумент одиночный символ, заключённый в кавычки:

>>> ord('z')
122
>>> ord('ф')
1092
>>> ord('@')
64

Функция chr() делает наоборот: возвращает символ, соответствующий указанному номеру:

>>> chr(87)
'W'
>>> chr(1049)
'Й'
>>> chr(10045)
'✽'

Чтобы разобраться, когда использовать ord(), а когда chr(), нужно помнить, что имени функции соответствует действие. Оно подсказывает, что мы хотим сделать. Ord соответствует получению порядкового номера символа, в то время как chr возвращает сам символ, если передать ему номер.

Функция len() принимает в качестве аргумента объект, содержащий несколько элементов, и возвращает их число. С числами (как с атомарными объектами) она работать не может. Однако строки можно передавать:

>>> len('abc')
3
>>> s1 = '------'
>>> s2 = '_______'
>>> len(s1) > len(s2)
False
>>> len(s1)
6
>>> len(s2)
7

Кроме строк, len() может работать и с другими структурами, с которыми мы пока не знакомы.

Функция abs() возвращает модуль числа, то есть его расстояние от нуля:

>>> abs(-2.2)
2.2
>>> abs(9)
9

Когда необходимо округлить число с плавающей запятой, на помощь приходит функция round(). Она позволяет указать количество знаков после запятой:

>>> a = 10/3
>>> a
3.3333333333333335
>>> round(a,2)
3.33
>>> round(a)
3

Если второй параметр не задан, округление идет до целого числа. Возможность задания отрицательного второго аргумента позволяет "округлять" не дробную часть, а, например, десятки и сотни:

>>> round(5321, -1)
5320
>>> round(5321, -3)
5000
>>> round(5321, -4)
10000

Обратите внимание, что функция делает именно округление по математическим правилам, а не просто отбрасывает части числа.

>>> round(3.76, 1)
3.8
>>> round(3.72, 1)
3.7
>>> round(3.72)
4
>>> round(3.22)
3

Если необходимо отбросить дробную часть без округления, можно воспользоваться функцией int():

>>> int(3.78)
3

Функция round() часто используется вместе с print(), чтобы избежать сложного форматирования вывода:

>>> a = 3.45673
>>> print("Number: %.2f" % a)
Number: 3.46
>>> print("Number:", round(a, 2))
Number: 3.46

В последнем случае код становится более понятным.

Функция divmod() одновременно выполняет деление нацело и определяет остаток:

>>> divmod(10, 3)
(3, 1)
>>> divmod(20, 7)
(2, 6)

Она возвращает кортеж, извлечение данных из которого мы ещё не изучили. В большинстве языков часто встречаются отдельные функции: div() для деления и mod() для остатка. В Python для этих операций можно использовать специальные операторы:

>>> 10 // 3
3
>>> 10 % 3
1

Функция pow() занимается возведением числа в степень. Первый аргумент — база, второй — показатель степени:

>>> pow(3, 2)
9
>>> pow(2, 4)
16

Та же операция может быть выполнена с использованием оператора:

>>> 3**2
9
>>> 2**4
16

Однако pow() полезна, когда вы хотите воспользоваться третьим аргументом, который указывает модуль деления результата возведения в степень:

>>> pow(2, 4, 4)
0
>>> 2**4 % 4
0

Преимущество первого способа — в его быстроте.

Функции max(), min() и sum() позволяют находить, соответственно, максимальный, минимальный элемент и сумму элементов переданного списка:

>>> max(10, 12, 3)
12
>>> min(10, 12, 3, 9)
3
>>> a = (10, 12, 3, 10)
>>> sum(a)
35

Для sum() необходимо предоставить структуру данных, такую как кортеж. В min() и max() обычно также используется один итерируемый объект:

>>> max(a)
12

Практическая работа

  1. Создайте программу, что циклически запрашивает у пользователя коды символов Unicode и выводит соответствующие им символы. Программа завершается при вводе нуля.
  2. Создайте программу, которая измеряет длину введённой строки. Если длина превышает десять символов, выводит предупреждение. Если строка короче, добавляет в неё столько символов *, чтобы её длина составила десять символов, после этого выводит на экран новую строку.
  3. Напишите программу, которая запросит у пользователя шесть чисел с плавающей запятой. Выведите минимальное и максимальное из них, округлённые до двух цифр после запятой. Выполните без использования min() и max().

Вопросы для самопроверки:

  1. Что возвращает функция ord() и какой аргумент она принимает?
  2. Какое действие выполняет функция chr() и какой тип аргумента она принимает?
  3. Для каких структур данных можно использовать функцию len()?
  4. Какое значение возвращает функция abs() и какой тип аргумента она принимает?
  5. Как функция round() может округлять числа и какие параметры она принимает?
  6. Какую задачу выполняет функция max() и что ей нужно для работы?
  7. Для чего используется функция sum() и какой тип аргумента она ожидает?

Программа курса:

  1. Описание курса
  2. Эволюция и основы языков программирования

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

  3. Знакомство с основами Python

    Особенности языка Python, работа в интерактивном режиме и подготовка файлов с исходным кодом.

  4. Типы данных и переменные в Python

    Базовые типы данных в Python: целое, вещественное числа, строки. Изменение типа данных с помощью встроенных функций. Понятие об операциях и переменных. Присваивание значения переменной.

  5. Ввод и вывод данных с Python функциями

    Для вывода на экран в Python 3.x используется функция print(). Вывод может быть предварительно отформатирован. Для ввода данных с клавиатуры используется функция input(), которая возвращает в программу строку.

  6. Логические выражения и операторы в Python

    Логические выражения. Логические операторы языка Python: == (равно), != (не равно), (больше), = (больше или равно), and (логическое И), or (логическое ИЛИ), not (отрицание).

  7. Ветвление и условные операторы в Python

    Управление потоком программы с помощью операторов if-else. Создание логических ветвлений, обработка условий и выполнение разных блоков кода в Python.

  8. Изучите обработку ошибок и исключений в Python

    Общее представление об ошибках и исключениях в языке программирования Python. SyntaxError, NameError, TypeError, ValueError, ZeroDivisionError. Обработка исключений с помощью инструкции try-except.

  9. Множественное ветвление с if-elif-else в Python

    Оператор множественного ветвления языка Python позволяет организовать более двух веток выполнения программы без необходимости вложения условных операторов друг в друга. Конструкция включает одну ветку if, произвольное количество elif и необязательную ветку else.

  10. Цикл while и его применение в Python

    С помощью циклов в программировании организуется многократное следующее друг за другом выполнение одних и тех же участков кода. Бывают циклы с условием и со счетчиком. К первым относится цикл while, или цикл "пока".

  11. Изучите функции и их применение в Python

    Функции - важный элемент структурного программирования. Они позволяют обособить участок кода, выполняющий определенную задачу. В дальнейшем к нему можно обращаться из разных мест программы по имени, которым он назван. В языке Python функции определяются с помощью оператора def.

  12. Локальные и глобальные переменные в Python

    В программировании важное значение имеет представление о локальных и глобальных переменных. Локальные переменные существуют внутри функций и не доступны за ее пределами. Глобальные переменные видны во всей программе.

  13. Оператор return и возврат значений в Python

    С помощью оператора return можно вернуть значение из тела функции в основную программу. В языке программирования Python можно вернуть несколько значений, перечислив их через запятую после оператора return. Также в функции может быть несколько return, но всегда выполняется только один из них.

  14. Параметры и аргументы функций в Python

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

  15. Встроенные функции Python для работы

    Язык программирования Python включает множество встроенных функций. В предыдущих уроках мы использовали такие функции как print() и input(), а также функции преобразования типов данных. В этом уроке рассматриваются встроенные функции для работы с символами и числами.

  16. Использование модулей в Python

    Использование модулей в программировании позволяет изолировать код, выполняющий частные задачи, в отдельные файлы. После чего обращаться к нему из разных программ. Создание модулей - следующий шаг после функций, когда участок кода обособляется внутри одного файла-программы. Для языка Python есть множество встроенных и сторонних модулей.

  17. Генерация псевдослучайных чисел в Python

    Для генерации псевдослучайных чисел в языке программирования Python используются функции модуля random. Функция random() генерирует вещественное число от 0 до 1. Функции randint() и randrange() производят целые псевдослучайные числа в указанных диапазонах.

  18. Изучение списков в Python - основы и операции

    Списки в Python - это аналог массивов в других языках программирования. Однако список может содержать элементы разных типов. В терминологии Python список - это изменяемая упорядоченная структура данных. Можно заменять его элементы, добавлять и удалять их, брать срезы. В язык встроены методы для работы со списками.

  19. Изучение цикла for в Python

    Цикл for в языке программирования Python предназначен для перебора элементов структур данных (списков, словарей, кортежей, множеств) и многих других объектов. Это не цикл со счетчиком, каковым является for во многих других языках. Нередко цикл for используется совместно с функцией range(), генерирующей объекты-диапазоны.

  20. Строки в Python - методы и срезы

    В Python строки - это неизменяемые последовательности символов или подстрок. Из них, так же как из списков, можно извлекать отдельные символы с помощью индексов или подстроки с помощью взятия срезов. В языке Python есть множество встроенных строковых методов, позволяющих упростить обработку строк.

  21. Кортежи - неизменяемые структуры данных

    Кортежи в Python - это неизменяемые структуры данных, состоящие из элементов одного или разных типов. Кортежи подобны спискам и обычно используются для защиты последних от изменений. Преобразование одного в другой выполняется с помощью встроенных функций tuple() и list().

  22. Словари в Python - работа с ключами и значениями

    Словарь в Python - это изменяемая неупорядоченная структура данных, элементами которой являются пары "ключ:значение". В словари можно добавлять и удалять элементы, изменять значения ключей. В Python словари имеют ряд методов, упрощающих работу с ними.

  23. Работа с файлами в Python

    В языке программирования Python открытие файлов выполняется с помощью функции open(), которой передается два аргумента - имя файла и режим. Файл может быть открыт в режиме чтения, записи, добавления. Также может быть указан тип файла - текстовый или бинарный. Для файлов есть ряд встроенных методов чтения, записи и др.