Функции в Python

Назад в начало

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

Функция позволяет использо­вать в про­грамме один и тот же фрагмент кода нес­колько раз.

Oбъявление функции в Python выглядит так:

def function_name(argument1, argument2, ...):
    # код функции
# def - DEclare Function - "объявить функцию"
# function_name - имя функции
# (argument1, argument2, ...) - список аргументов, поступающих на вход функции при ее вызове
# тело функции - это весь код, который идет после двоеточия

# Объявление функции

def hello(name):
    print('Hello, ' + name)

# Вызовы функции

hello('Max')
hello('Ivan')
hello('Alex')
hello('Kate')

# Вывод

>> Hello, Max
>> Hello, Ivan
>> Hello, Alex
>> Hello, Kate

Оператор return возвращает значение из функции.

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

# Объявление функции

def sum2(a, b):
    return a + b

# Вызовы функции

s1 = sum2(10, 2)
s2 = sum2(108, 100)
s3 = sum2(3, 1)

print(f's1 = {s1}')
print(f's2 = {s2}')
print(f's3 = {s3}')

>> s1 = 12
>> s2 = 208
>> s3 = 4

# Функция умножения двух чисел

def mult2(a, b):
    return a * b

# Вызовем нашу функцию

m1 = mult2(10, 2)
m2 = mult2(108, 100)
m3 = mult2(3, 1)

print(f'm1 = {m1}')
print(f'm2 = {m2}')
print(f'm3 = {m3}')

>> m1 = 20
>> m2 = 10800
>> m3 = 3

Для параметров функции можно указывать значения по умолчанию. Это дает возможность вызывать функцию с меньшим числом параметров.

# Аргумент name по умолчанию равен 'world'

def hello(name='world'):
    print('Hello, ' + name)

hello()
hello('Ivan')

>> Hello, world
>> Hello, Ivan

Примеры

1. Квадрат

# Написать функцию square(), вычисляющую квадрат числа.

def square(number):
    return number * number # Возвращаем результат работы функции обратно в программу

a = square(2)
print(a)

>> 4

2. Периметр

# Напишите функцию perimetr, вычисляющую периметр прямоугольника со сторонами a и b.

def perimetr(a, b):
    return 2 * (a + b)

p = perimetr(4, 3)
print(p)

>> 14

3. Четное число

# Напишите функцию isEven, возвращающую True, если число четное, и False, если - нечетное.

def isEven(x):
    return x % 2 == 0

print(isEven(10))
print(isEven(11))

>> True
>> False

4. Сумма списка

# Напишите функцию amountList, которая возвращает сумму всех элементов списка.

def amountList(lst):
    amount = 0
    for x in lst:
        amount += x
    return amount

print(amountList([1, 2, 3]))

mylist = [1, 2, 4, 8, 16]
s = amountList(mylist)

print(f'Сумма списка {mylist} равна {s}')

>> 6
>> Сумма списка [1, 2, 4, 8, 16] равна 31

5. Фибоначчи

# Напишите функцию fib, которая возвращает n-ное число Фибоначчи.
# Последовательность Фибоначчи выглядит так: 1 1 2 3 5 8 13 21 34

def fib(n):
    a, b = 0, 1
    if n == 0: return 0
    for i in range(1, n):
        a, b = b, a + b
    return b

print(fib(2))
print(fib(3))
print(fib(4))
print(fib(5))
print(fib(10))

>> 1
>> 2
>> 3
>> 5
>> 55

6. Факториал

# Напишите функцию fact, вычисляющую значение факториала числа N.
# Факториал числа - это произведение всех чисел от 1 до N.
# Например, факториал числа 5 равен 120 (5! = 120).

def fact(n):
    result = 1
    while n > 1:
        result *= n
        n -= 1
    return result

print(fact(2))
print(fact(3))
print(fact(4))
print(fact(5))

>> 2
>> 6
>> 24
>> 120

Решение задач

1. Площадь круга

Напишите функцию, которая получает в качестве аргумента радиус круга и находит его площадь.

# Не забудьте написать функцию circle...

print(circle(4))
print(circle(1))

# Вывод:
>> 50.24
>> 3.14

2. На три

Напишите функцию, которая возвращает True, если число делится на 3, и False, если - нет.

# Не забудьте написать функцию three...

print(three(4))
print(three(3))

# Вывод:
>> False
>> True

3. Максимум в списке

Напишите функцию, которая возвращает максимальный элемент из переданного в нее списка.

# Напишите функцию maxList...
mylist = [1, 3, 2]
print(maxList(mylist))

# Вывод:
>> 3

4. Сколько четных

Напишите функцию, которая возвращает количество четных элементов в списке.

# Напишите функцию evenCounter...
mylist = [1, 10, 2, 4, 6]
evens = evenCounter(mylist)
print(even)

# Вывод:
>> 4

5. Уникальные

Напишите функцию, которая возвращает список с уникальными (неповторяющихся) элементам.

# Напишите функцию unique...
mylist = [1, 1, 2, 1, 3, 2, 3]
print(unique(mylist))

# Вывод:
>> [1, 2, 3]