Встроенные функции

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

Ряд встроенных функций, касающихся ввода-вывода и типов данных, мы уже использовали. Это print(), input(), int(), float(), str(), bool(), type(). Перечень всех встроенных в Python функций можно найти в официальной документации по языку: https://docs.python.org/3/library/functions.html .

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

  • функции для работы с символами – 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(), помните, что функция – это действие. Ее имя как бы отвечает на вопрос "Что сделать?". Order – это порядок. Значит, мы хотим получить порядковый номер элемента в ряду. А чтобы получить номер, должны передать символ. Character – это символ. Значит, мы хотим получить символ. Поэтому должны передать порядковый номер.

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

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

Функция abs() возвращает абсолютное значение числа:

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

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

Функция именно округляет согласно правилу округления из математики, а не отбрасывает. Поэтому 5 тысяч неожиданно округляются до десяти.

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

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

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

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

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

Функция pow() возводит в степень. Первое число – основание, второе – показатель:

То же самое можно проделать так:

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

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

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

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

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

  1. Напишите программу, которая циклично запрашивает у пользователя номера символов по таблице Unicode и выводит соответствующие им символы. Завершает работу при вводе нуля.

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

  3. Напишите программу, которая запрашивает у пользователя шесть вещественных чисел. На экран выводит минимальное и максимальное из них, округленные до двух знаков после запятой. Выполните задание без использования встроенных функций min() и max().

Last updated

Was this helpful?