# Тема 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()` в качестве функции обратного вызова, которая просто выводит данные на экран.

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

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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://voltbro.gitbook.io/turtlebro_py/tema-8-standartnye-funkcii-i-moduli-python.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
