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

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

def greet(name):
    print("Hello, " + name + "!")

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

greet("Alice")
#Hello, Alice!

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

def square(x):
    return x * x

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

result = square(3)
print(result)
#9

Кроме того, функции могут иметь аргументы по умолчанию. Аргументы по умолчанию - это значения, которые будут использоваться, если функция вызывается без указания этих аргументов. Например:

def greet(name, greeting="Hello"):
    print(greeting + ", " + name + "!")

greet("Alice")
#Hello, Alice!
greet("Bob", "Hi")
#Hi, Bob!