> For the complete documentation index, see [llms.txt](https://voltbro.gitbook.io/turtlebro_py/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://voltbro.gitbook.io/turtlebro_py/tema-8-standartnye-funkcii-i-moduli-python.md).

# Тема 8:  Стандартные функции и модули Python

### Стандартные функции

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

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

1. `print()`: Эта функция используется для вывода текста или значений переменных на экран. Она может принимать один или несколько аргументов и выводить их, разделяя пробелами.

```python
print("Привет, мир!")  # Вывод: Привет, мир!
x = 10
print("Значение x =", x)  # Вывод: Значение x = 10
```

2. `len()`: Данная функция возвращает длину объекта, такого как строка, список или кортеж.

```python
text = "Привет"
print(len(text))  # Вывод: 6

numbers = [1, 2, 3, 4, 5]
print(len(numbers))  # Вывод: 5
```

3. `input()`: Эта функция используется для получения ввода пользователя с клавиатуры. Она выводит сообщение, указанное в аргументе, и ждет, пока пользователь введет данные. Введенное значение возвращается как результат функции.

```python
name = input("Введите ваше имя: ")
print("Привет, " + name + "!")  # Выводит приветствие с именем, введенным пользователем
```

4. `range()`: Эта функция создает последовательность чисел в заданном диапазоне. Она может принимать один, два или три аргумента: начальное значение, конечное значение и шаг. Возвращает объект-последовательность чисел.

```python
numbers = range(1, 6)  # Создает последовательность чисел от 1 до 5
print(list(numbers))  # Вывод: [1, 2, 3, 4, 5]

even_numbers = range(2, 11, 2)  # Создает последовательность четных чисел от 2 до 10
print(list(even_numbers))  # Вывод: [2, 4, 6, 8, 10]
```

5. `sum()`: Эта функция используется для суммирования элементов списка или чисел, переданных в виде аргументов.

```python
numbers = [1, 2, 3, 4, 5]
total = sum(numbers)
print(total)  # Вывод: 15

result = sum(1, 2, 3, 4, 5)
print(result)  # Вывод: 15
```

\
&#x20; 6\. `max()`: Функция `max()` используется для поиска наибольшего элемента в последовательности или в аргументах функции. Она может принимать один или несколько аргументов и возвращает наибольшее значение.

```python
numbers = [5, 2, 8, 1, 9]
maximum = max(numbers)
print(maximum)  # Вывод: 9

result = max(5, 2, 8, 1, 9)
print(result)  # Вывод: 9
```

7. `min()`: Функция `min()` используется для поиска наименьшего элемента в последовательности или в аргументах функции. Она работает аналогично функции `max()`, но возвращает наименьшее значение.

```python
numbers = [5, 2, 8, 1, 9]
minimum = min(numbers)
print(minimum)  # Вывод: 1

result = min(5, 2, 8, 1, 9)
print(result)  # Вывод: 1
```

Таким образом, функции `max()` и `min()` предоставляют удобные средства для поиска наибольшего и наименьшего элементов в последовательности или среди аргументов функции.&#x20;

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

### Стандартные модули

Помимо встроенных функций, в Python также существуют стандартные модули, которые содержат набор функций и классов для выполнения специфических задач. Примеры стандартных модулей включают `math`, `random`, `datetime`, `os` и другие. Каждый модуль предоставляет свой собственный набор функций и классов, которые можно использовать в программе. Подробное описание того что содержится в соответствующем модуле или как реализованы его функции можно найти на странице модуля в интернете. Например, описание использованного нами модуля `math` можно найти тут: <https://docs.python.org/3/library/math.html>

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

1. **`math`**: Модуль `math` предоставляет функции и константы для выполнения математических операций. Он включает в себя функции для округления чисел, вычисления тригонометрических функций, логарифмов, степеней и других математических операций.

```python
import math

# Вычисление квадратного корня
result = math.sqrt(25)
print(result)  # Вывод: 5.0

# Вычисление синуса и косинуса
sin_value = math.sin(math.pi/2)
cos_value = math.cos(math.pi)
print(sin_value, cos_value)  # Вывод: 1.0, -1.0
```

2. **`random`**: Модуль `random` используется для генерации случайных чисел и выбора случайных элементов из последовательности. Он предоставляет функции для генерации случайных чисел с различными распределениями, такими как равномерное, нормальное и другие.

```python
import random

# Генерация случайного целого числа
random_number = random.randint(1, 10)
print(random_number)  # Вывод: случайное число от 1 до 10

# Выбор случайного элемента из списка
my_list = ['apple', 'banana', 'orange']
random_element = random.choice(my_list)
print(random_element)  # Вывод: случайный элемент из списка
```

3. **`datetime`**: Модуль `datetime` предоставляет классы для работы с датами и временем. Он позволяет выполнять операции с датами, вычислять разницу между датами, форматировать даты и многое другое.

```python
import datetime

# Получение текущей даты и времени
current_datetime = datetime.datetime.now()
print(current_datetime)  # Вывод: текущая дата и время

# Разница между двумя датами
birthday = datetime.datetime(1990, 5, 15)
current_date = datetime.datetime.now()
age = current_date - birthday
print(age.days)  # Вывод: количество дней между датами
```

4. **`os`**: Модуль `os` предоставляет функции для взаимодействия с операционной системой. Он позволяет выполнять операции с файлами и директориями, получать информацию о системе, запускать команды оболочки и многое другое.

```python
import os

# Создание новой директории
os.mkdir("my_directory")

# Проверка существования файла или директории
file_exists = os.path.exists("my_file.txt")
directory_exists = os.path.isdir("my_directory")
print(file_exists, directory_exists)  # Вывод: True, True
```

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

*

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

Вот пример функции с необязательным параметром:

```python
def greet(name="Гость"):
    tb.say("Привет,", name)
```

В этом примере, параметр `name` имеет значение по умолчанию "Гость". Если при вызове функции не указать значение для `name`, будет использовано значение по умолчанию. Например:

```python
greet()  # Робот скажет: Привет, Гость
greet("Алиса")  # Робот скажет: Привет, Алиса
```

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

Функции обратного вызова (callback functions) - это функции, которые передаются в качестве аргументов другим функциям и вызываются внутри этих функций в определенных моментах или при выполнении определенных условий. Функции обратного вызова предоставляют гибкость и расширяемость кода, позволяя определить поведение функции внутри другой функции динамически.

Для работы с функциями обратного вызова в Python мы можем передавать имя функции или использовать анонимные функции (lambda-функции). Вот пример использования функции обратного вызова:

```python
pythonCopy codedef process_data(data, callback):
    # Выполнение некоторой обработки данных
    processed_data = process_data_somehow(data)
    
    # Вызов функции обратного вызова
    callback(processed_data)

def print_data(data):
    print("Данные:", data)

data = [1, 2, 3, 4, 5]
process_data(data, print_data)
```

В этом примере, у нас есть функция `process_data()`, которая принимает данные и функцию обратного вызова `callback`. Внутри функции мы обрабатываем данные и затем вызываем функцию `callback` с обработанными данными в качестве аргумента. В данном случае, мы передали функцию `print_data()` в качестве функции обратного вызова, которая просто выводит данные на экран.

Использование функций обратного вызова позволяет нам разделить логику обработки данных и действия, выполняемые после обработки. Это делает наш код более гибким и позволяет нам легко изменять поведение программы, добавлять новые функции обратного вызова или заменять их при необходимости.

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