Функции
Досега пишехме целия си код в app.py, но с нарастването на програмите ни се нуждаем от по-добър начин да организираме нашия код. Трябва да разделим нашия код на по-малки, по-управляеми и по-поддържащи се части, които наричаме функции. Функцията е контейнер за няколко реда код, които изпълняват конкретна задача.
Например, вече сте научили за няколко вградени функции в Python print()
намлява input()
. Всяка функция има предназначение и знае как да изпълни конкретна задача. Така че, когато създаваме големи сложни програми, трябва да разделим нашия код на по-малки части, които могат да се използват многократно, т.е. функции.
Нека разберем тази концепция, като изградим програма за отпечатване на поздравително съобщение.
print('Hi there!')
print('Welcome aboard!')
Тук имаме проста програма само с два реда код. Сега, да речем, ще имаме нужда от тях в други програми, за да ги поставим във функция, която можем да използваме повторно.
Позволете ми да представя запазена ключова дума def
в Python, което е съкращение от define и се използва за дефиниране на функция.
def greet_user():
print('Hi there!')
print('Welcome aboard!')
Сега този блок от код ще дефинира функция "greet_user
” с редовете кодове след това. Когато тази функция бъде извикана, тези два реда ще бъдат изпълнени. Нека използваме това:
print('start')
greet_user()
print('finish')
Програмата се изпълнява последователно, което означава, че трябва да дефинирате функция, преди да я извикате в програмата.
параметри
Дефинираните функции работят малко по-различно от вградените функции на Python. Например, в случай на print()
функция, тя отнема някаква информация, която искаме да отпечатаме, но нашата функция greet не взема никаква информация. Не би ли било по-хубаво, ако можете да подадете името на потребителя тук и след това, вместо да кажете „здравей“, можете да отпечатате името на потребителя?
Можете да направите това, като добавите параметрите в скобите на дефинираната функция. Нека ти покажа:
def greet_user(name):
print('Hi there!')
print('Welcome aboard!')
Сега „name
” вътре в скобите ще действа като локална променлива и можем да предадем името на потребителя, когато я извикваме.
greet_user('Shahbaz')
Сега параметърът име е зададен на „Shahbaz
”. Нека променим програмата, за да я използваме.
def greet_user(name):
print(f'Hi {name}')
print('Welcome aboard!')
print('start')
greet_user('Shahbaz')
print('finish')
Важно е да се отбележи, че „името“ в първия ред се нарича параметър, докато предоставеното име, т.е. Shahbaz, се нарича аргумент.
Нека да стартираме тази програма.
Така че с тези параметри можем да получаваме информация в нашите функции.
Сега нека направим нещо интересно. Да приемем, че искате да добавите друго име към поздравителното съобщение. Просто е.
def greet_user(name):
print(f'Hi {name}')
print('Welcome aboard!')
print('start')
greet_user('Shahbaz')
greet_user('Aayush')
print('finish')
Сега имайте предвид, че когато една функция има параметър, ние сме длъжни да предадем стойност за този параметър. Ако премахнете името от функцията и стартирате програмата, ще получим грешка. Можете също така да използвате няколко параметъра в една функция, разделени със запетая.
Например, greet_user(first_name, last_name):
. Аргументите също ще бъдат форматирани по подобен начин.
Аргументи на ключови думи
Досега сме научили, че когато дефинираме параметри за нашите функции, трябва винаги да предоставяме стойности, в противен случай ще получим грешка. В последната програма аргументите 'Shahbaz'
намлява 'Bhatti'
се наричат позиционни аргументи, което означава, че тяхната позиция или ред имат значение в програмата.
В Python имаме друг вид аргументи, наречени аргументи на ключови думи, за които позицията няма значение. Нека ви покажа как работят.
Вижте последната програма. Можем да го модифицираме така:
def greet_user(first_name, last_name):
print(f'Hi {first_name} {last_name}')
print('Welcome aboard!')
print('start')
greet_user(first_name='Shahbaz', last_name='Bhatti')
print('finish')
Сега first_name
намлява last_name
са параметрите на ключовата дума. Можете да размените местата им и резултатът ще бъде същият.
Това не означава, че винаги трябва да използваме ключови аргументи. През повечето време използваме позиционни аргументи, но в определени ситуации тези аргументи с ключови думи ни помагат да подобрим четливостта на нашия код.
Има още нещо, което трябва да знаете за аргументите на ключовите думи. Аргументите на ключовата дума винаги трябва да идват след позиционните аргументи.
Изявление за връщане
Досега се научихме как да създаваме функции и да им изпращаме информация, използвайки техните параметри. Сега нека научим как да създаваме функции, които връщат стойности. Това е особено полезно, ако правите някакви изчисления и искате да върнете резултата на всеки, който използва вашата функция. Нека ти покажа.
Нека дефинираме функция, която ще изчисли квадрата на число.
def square(number):
return number*number
Използвахме израза return, за да върнем това число извън функцията. Сега, ако извикаме тази функция, тя връща стойност точно като input()
функция. Нека го отпечатаме на терминала.
Можете да спорите, че същият резултат може да бъде получен без използване на израза return. Нека да го проверим.
Виждаме две неща, числото 9 и нито едно. какво се случва тук
Когато интерпретаторът на Python изпълни този код, първо ще извика квадратната функция и контролата се премества към функцията. Тук изчисляваме квадрата на това дадено число и след това го отпечатваме на терминала.
Сега по подразбиране всички функции връщат стойността none. Така че, ако нямаме израз за връщане тук, по подразбиране Python не връща нито един. None е обект, който представлява липсата на стойност. Това е като нищо или нула в C, C++, Java и Javascript.
Завършете!
Надявам се, че сте разбрали важността на функциите.
Те са важен аспект от изучаването на Python, ако планирате да пишете големи и сложни програми по време на вашата кариера в кодирането.
Оставете коментар