Функции в Python
Начинаем цикл статей, про функции в Python 3. В этом цикле, мы с вами разберемся для чего нужны функции, синтаксис, и типы функции. Кроме всего этого, мы научимся создавать различные типы функции на Python 3.
Что такое функция?
В первую очередь, функция — это многоразовый код, мы напишем ее один раз, а затем можно вызывать эту функцию сколько угодно. Функции так же позволяют разделить нашу программу на небольшие модульные блоки. В то время как наша программа будет становиться больше, благодаря функциям, она станет организованнее, и с более понятным кодом. Самое главное преимущество функции, это возможность не повторять один и тот же код несколько раз.
Я понимаю, что для тех, кто в первый раз сталкивается с функциями, сложно сразу понять о чем идет речь, поэтому, как и в предыдущих уроках, мы шаг за шагом узнаем, что, где, и как применяется.
Синтаксис функции
def name_functions(parameters): """ Описание функции, желательно всегда писать. Что бы спустя время, вы могли понять, что делает эта функция """ pass
Выше я привел пример определения функции, оно состоит из следующих элементов.
- Ключевое слово def — определяет начало функции
- Затем следует указать название функции (обратите внимание, нельзя называть функции зарезервированными именами Python)
- Далее после название идут круглые скобки, в них мы передаем (аргументы функции). Они необязательны
- Знак двоеточия, как и в циклах и в условиях, означает конец заголовка
- Внутри функции желательно указать комментарии, что бы мы всегда знали, что делает эта функция
- Далее 4 отступа, и создаем тело функции
- return — необязательный оператор, который возвращает значения из функции
Пример функции
def hello(name): """ Эта функция приветствия. Аргумент name передается в качестве параметра """ print("Привет, "+ name + " Доброе утро")
Отлично, простейшая функция у нас готова, она приветствует всех, чье имя будет указано при вызове функции.
Как вызвать функцию?
Мы определили функцию, дали ей название hello. Вызывать эту функцию можно по разному, например из другой функции, или даже из другой программы. Сейчас вызовем эту функцию, просто введя имя этой функции, и ее параметр.
hello("Тимур") Результат: Привет, Тимур Доброе утро
Уловили суть? Мы в самом начале создали функции, в парметр функции передаем переменную name, и в print выводим переданный параметр. Затем, мы в любом месте нашей программы, можем написать имя нашей функции, передать ей параметр, и она выведет наше приветствие. Откройте свой Pycharm, и введите приведенный ниже листинг кода, и вы увидите результат.
def hello(name): """ Эта функция приветствия. Аргумент name передается в качестве параметра """ print("Привет, "+ name + " Доброе утро") hello("Тимур") Результат: Привет, Тимур Доброе утро
return — оператор возврата
Оператор return возвращает значение, если отсутствует значение, или отсутствует сам оператор return — мы получаем None объект. None объект — это пустой объект, то есть нечего ему возвращать. Рассмотрим пример:
def value(number): """ Возвращаем значение введенного числа """ if number >= 0: return number else: return -number print(value(2)) print(value(-4)) Результат: 2 4
Время жизни переменных, и область работы переменных
Параметры и переменные определенные внутри функции, работают только внутри функции, при выходе из функции, определенные ранее переменные не будут видны. Из этого следует, что область действия переменных имеют локальную область действия.
Время жизни переменных внутри функции равняется времени выполнения функции. Как только функция заканчивает свою работу, значение переменной хранящейся в памяти, уничтожается. Это говорит нам о том, что функция не запоминает значение переменной из предыдущих вызовов. Ниже рассмотрим пример, который показывает как устроен жизненный цикл переменной.
def testfunc(): x = 10 print("Значение внутри функции: ", x) x = 20 testfunc() print("Значение переменной за пределами функции: ", x) Результат: Значение внутри функции: 10 Значение переменной за пределами функции: 20
На примере выше, мы видим что изначальное значение переменной x равно 10, при вызове функции мы присвоили переменной х значение 20. В результате, как мы видим одна и та же переменная выводит разное значение. Это объясняется тем, что переменная внутри функции, это локальная переменная для функции, соответственно внешняя переменная, даже если имеет такое же название, будет другой, так как области действия этих переменных разное.
Более подробно про определение функции можно почитать в официальной документации Python, если хорошо владеете английским языком, если нет, то читайте весь мой цикл, я стараюсь максимально подробно, и с примерами объяснять материал, а в конце цикла, мы с вами разберем практический пример, что бы закрепить материал.
Программирование иногда сильно утомляет, тяжело всегда думать головой, поэтому не забывайте время от времени немного расслабляться, посмотрите лучшие моменты из ЧБД.
4 комментария “Функции Python 3”
«В первую очередь, функция — это многоразовый код, мы напишем ее один раз, а затем можно вызывать эту функцию сколько угодно. Функции так же !!!позволять!!! разделить….»
Скорей всего в !!!позволять!!! ошибка.
«небольшую» там же…
«Уловили суть? Мы в самом…» после тоже опечатки
Евгений, спасибо вам большое, вроде все поправил. Как учитель ученика ткнули меня носом прямо на ошибку =)