Уроки Python 11 - Функции

Уроки Python 11 - Функции

Сегодня мы поговорим о том, что такое функции, и как с ними работать. Иногда, набор каких-то повторяющихся команд нужно выполнять несколько раз. Такие блоки команд обычно выносят в отдельные кусочки программы. Именно из функций состоят внешние модули, которые можно подключать к программам. У функции могут быть входные параметры называемые аргументами - это одна или несколько переменных, которые пишутся в скобках после имени функции. Также функция может возвращать одно или несколько значений с помощью команды return. Объявление функции начинается с ключевого слова def, далее следует имя функции, аргументы в скобках, и программный код отделённый четырьмя пробелами. Для примера разберём простейшую функцию которая будет перемножать два любых числа. Назовём её umn.

def umn(a,b):
    c=a*b
    return c
Теперь, когда мы описали функцию, далее в этой же программе мы можем её использовать
a=int(input('Введите первое число: '))
b=int(input('Введите второе число: '))
с=umn(a,b)
print(c)
Внутри программы мы можем вызывать созданную нами функцию сколько угодно раз. Давайте создадим программу, которая будет считать прибавку к зарплате, менеджерам по продаже автомобилей. Пусть у каждого менеджера своя зарплата, в зависимости от его ранга, но начисления прибавки для всех работает по принципу +2 процента к базовой зарплате за каждый проданный автомобиль, если автомобилей продано больше чем 10. Напишем функцию которая принимает в качестве аргументов размер зарплаты сотрудника, и количество проданных им за месяц автомобилей. Используем для округления результата команду round() которая округлит прибавку до целого числа.
def pribavka(zarplata, avto):
    k=0
    if(avto > 10):
        k = round((avto - 10) * 0.02 * zarplata)
    return k

a=int(input('Введите зарплату сотрудника: '))
b=int(input('Введите количество автомобилей проданных за месяц: '))
c=pribavka(a,b)
print('В этом месяце прибавка к зарплате составит: ' + str(c))
Давайте посмотрим как работает наша программа: Введите зарплату сотрудника: 10000 Введите количество автомобилей проданных за месяц: 15 В этом месяце прибавка к зарплате составит: 1000 Если функция должна возвращать больше чем одну переменную, то переменные можно писать через запятую. Например если в конце нашей функции стоит return a,b
def myfunc(x):
    какие-то команды
    какие-то команды
    return a, b
	
то в программе, чтобы получить обе переменные мы тоже напишем их через запятую
a, b = myfunc(x)
Внутри функций вы можете использовать переменные, которые встречались в коде программы до команды вызывающей функцию по её имени. Но если внутри кода функции после какой-то из переменных поставить знак = то эта переменная автоматически становится локальной, то есть все её дальнейшие изменения не выходят в основной код программы. Поясним на примере:
def boom(a, b):
    z=15
    c=a*b*z
    return c

z=1
c=boom(15,20)
print(z)
Напечатает: 1 Так как внутри кода функции встретилась команда z=15, переменная z стала локальной, и теперь все её изменения не выходят за пределы функции. То есть переменная z, в основной программе останется равна единице. Это немного трудно понять, но любые изменения внешних переменных внутри функции делает их локальными, и не выходят за рамки данной функции. Единственная обратная связь которую предоставляет функция это возврат значений переменных с помощью команды return.

Уроки Python | Функции Лого Pythono.ru Уроки Python 11 - Функции