Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
pythono
7 лет назад

Уроки 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.

В следующем уроке мы начнём работать с сетью интернет, подписывайтесь на мой блог, будет еще много интересных уроков!

15
277.844 GOLOS
На Golos с August 2017
Комментарии (3)
Сортировать по:
Сначала старые