Функция в Python: синтаксис, return, правила PEP 8
less_20__function__scope__args_kwargs/theory_01__function_definition.md
Базовое определение функции: синтаксис def/docstring/return, объяснение того, что функция без явного return всё равно возвращает None, пример с несколькими return вместо if/else, и то, что return не может вернуть больше одного значения напрямую — только собрав их в коллекцию. Завершается перечнем правил PEP 8 для оформления функций.
- def function_name(parameters): ... return — базовый синтаксис определения и вызова
- greet(name) — простая функция без возврата значения
- add(a, b) — функция с return
- is_zero_or_positive(num) — несколько return вместо if/else
- get_all_even_numbers(*args) — 'несколько результатов' через список
- Правила PEP 8: snake_case, две пустые строки после функции, пробелы у параметров
Показать начало файла (116 строк всего)
## Функция в Python.
### Определение
**Функция** — это именованный блок кода, который
- выполняет определённое действие
- и может быть вызван в программе многократно.
Функции позволяют
- избегать дублирования кода (лаконичность и читабельность)
- структурировать код, разбить его на независимые модули, которые
- удобно по одному отладить по одному
- и затем объединить в единое целое ("разделяй и властвуй")
### Синтаксис
```python
# Определение функции
def function_name(parameters):
"""docstring описание функции""" # (optional)
...
# function_body
...
expression = ...
return expression # (optional)
# Вызов функции
arguments = ...
function_name(arguments)
```
* `def` — ключевое слово, используется для определения функции
* `function_name` — имя функции (`snake_case`, обычно глагол как действие)
* `parameters` — (optional) значения, которые функция может принимать при вызове
* `"""docstring"""` — (optional) краткое описание того, что функция делает
* `function_body` — тело функции (исполняемый функцией код)
* `return` — (optional) оператор как часть тела функции. Возвращает значение в точку вызова функции
* ВАЖНО: функция, которая ничего не возвращает, всё равно возвращает `None`
```python
def greet(name):
"""Prints a greeting with the given name."""
print(f"Hello, {name}!")
greet("John")
# Hello, John!
```
Если функция должна **вернуть результат**, используется ключевое слово **`return`**:
```python
def add(a, b):
return a + b
…