Урок 12. Функції у Python

У Python функції є засобом організації коду, який дозволяє групувати і повторно використовувати блоки коду для виконання певних завдань. Функції використовуються для виконання конкретних операцій або обчислень при виклику з інших частин програми.

Приклад з відео:

#Функція — це блок коду, який виконується лише тоді, коли його викликають.
#Ви можете передавати дані, відомі як параметри, у функцію.
#Функція може повертати дані як результат.
#У Python функція визначається за допомогою ключового слова def
def greeting_function():
    print("Hello buddy!")
    
greeting_function()

Аргументи функції

Аргументи функції у Python — це значення, які передаються у функцію під час її виклику. Ці значення використовуються в тілі функції для виконання певних операцій або обчислень. Вони дозволяють функціям приймати зовнішні дані і оперувати ними всередині свого тіла.

Приклад з відео:

#Інформацію можна передати у функції як аргументи.
#Аргументи вказуються після імені функції,
#в дужках.
#Ви можете додати скільки завгодно аргументів,
#просто розділіть їх комою.
def greeting_function(nameVar):
    print("Hello",nameVar)
    
greeting_function("Walter")
greeting_function("Skyler")

Відмінність між параметрами та аргументами

Параметри функції — це іменовані змінні, оголошені в заголовку функції, які визначають дані, які функція очікує отримати при своєму виклику. Вони вказуються в круглих дужках після імені функції і визначають, які дані можна передати у функцію.

Аргументи функції — це конкретні значення, які передаються у функцію під час її виклику. Це дані або значення, які ви передаєте у функцію для обробки або виконання операцій, що вона виконує.

Приклад з відео:

#Параметр — це змінна, вказана в дужках
#у визначенні функції.
#Аргумент — це значення, яке надсилається функції
#коли її викликають.
def add_two_numbers(num1, num2):
    print(num1+num2)
    
add_two_numbers(5,10)

Кількість аргументів

У Python функції можуть приймати різну кількість аргументів залежно від потреб програми. Це дозволяє створювати більш гнучкі та універсальні функції.

Приклад з відео:

#функцію потрібно викликати з правильною кількістю аргументів.
#Це означає, що якщо ваша функція очікує 2 аргументи,
#ви повинні викликати функцію з 2 аргументами,
#не більше і не менше.
def greeting_function(nameVar, surnameVar):
    print("Hello", nameVar, surnameVar)
    
greeting_function("Walter", "White")

*args

У Python параметр *args використовується для передачі довільної кількості позиційних аргументів у функцію. Цей параметр дозволяє функції приймати будь-яку кількість аргументів, які передаються у вигляді кортежу.

Приклад з відео:

#Якщо ви не знаєте, скільки аргументів буде передано
#у свою функцію додайте * перед назвою параметра
#у визначенні функції
#Таким чином функція отримає кортеж аргументів,
#і може отримати доступ до елементів відповідно
def greeting_function(*namesVar):
    print("Hello {}, {}".format(namesVar[0], namesVar[1]))
    
greeting_function("Walter", "Skyler")

Синтаксис ключ-значення

У Python синтаксис ключ-значення при використанні аргументів функцій використовується для передачі іменованих аргументів у вигляді пари “ключ=значення”. Цей підхід дозволяє передавати аргументи у будь-якому порядку, не обов’язково використовувати порядок, вказаний у визначенні функції, і також задавати значення за замовчуванням для параметрів.

Приклад з відео:

#Ви також можете надсилати аргументи 
#за допомогою синтаксису ключ = значення.
def greeting_function(name1, name2, name3):
    print("Hello {}, {}, {}!".format(name1, name2, name3))
    
greeting_function(name3="Walter", name2="Skyler", name1="Hank")

**kwargs

У Python параметр **kwargs використовується для передачі довільної кількості іменованих (ключованих) аргументів у функцію. Цей параметр дозволяє функції приймати будь-яку кількість іменованих аргументів, які не є обов’язковими, і збирає їх у словник.

Приклад з відео:

#Якщо ви не знаєте, скільки аргументів ключових слів
#буде передано у вашу функцію, додайте
#дві зірочки: ** перед назвою параметра при
#визначенні функції.
#Таким чином функція отримає словник аргументів,
#і може отримати доступ до елементів відповідно
def greeting_function(**names):
    print("Hello {}, {}!".format(names["name1"], names["name2"]))
    
greeting_function(name1 = "Skyler", name2 = "Walter")

Значення параметру за помовчанням

У Python значення параметру за замовчуванням використовується для встановлення значення параметра, яке буде використовуватися, якщо при виклику функції або при створенні об’єкта параметр не передається. Це дає можливість функціям мати значення аргументів, які вони використовують за замовчуванням, що спрощує їхнє використання в коді.

Приклад з відео:

#Якщо ми викликаємо функцію без аргументів,
#використовуються значення за умовчанням
def greeting_function(name="James"):
    print("Hello {}!".format(name))
    
greeting_function("Walter")
greeting_function()

Використання return та pass

У Python оператор return використовується для завершення виконання функції та повернення значення (або значень) з функції до місця її виклику. Коли викликають функцію із return, вона повертає обчислене значення (або нічого, якщо return відсутній) та перериває подальше виконання функції.

У Python ключове слово pass використовується як пустий оператор. Воно не робить нічого ігноруючи його наявність. pass зазвичай використовується там, де синтаксис мови вимагає наявності коду (наприклад, у визначенні функцій, класів або умовних конструкціях), але жодних дій виконувати не потрібно.

Приклад з відео:

#Щоб дозволити функції повертати значення, 
#використовуйте оператор return
def multiply_by_itself(num1):
    return num1*num1

result1 = multiply_by_itself(3)
print(result1)
result2 = multiply_by_itself(5)
print(result2)
result3 = multiply_by_itself(7)
print(result3)

# визначення функції не можуть бути порожніми, але якщо ви
#з якихось причин маєте визначення функції без вмісту,
#введіть оператор pass, щоб уникнути помилки.
def greeting_function():
    pass

Рекурсія

Рекурсія в Python (і в інших мовах програмування) є технікою, коли функція викликає саму себе під час свого виконання. Це дозволяє вирішувати складні завдання, розбиваючи їх на менші або подібні задачі. Рекурсія є важливим інструментом у програмуванні, особливо в алгоритмах, де задачі мають структуру, що повторюється або рекурсивну.

Приклад з відео:

#Рекурсія — поширена математична та програмна концепція.
#Це означає, що функція викликає сама себе.
#Це має перевагу, оскільки ви можете перерахувати дані
#для досягнення потрібного результату.
def recursion_function(num1):
    if(num1<10):
        result=0
        print(num1)
        print(result)
        result = num1 + recursion_function(num1+1)
        print(result)
    else:
        result=10
        print("Else statement works.")
    return result

recursion_function(1)

Лямбда-функції

У Python лямбда-функція – це коротка функція, яка може мати лише один вираз. Вона створюється за допомогою ключового слова lambda, яке дозволяє швидко оголосити функцію без необхідності використання імені через звичайний визначення def.

Приклад з відео:

#Лямбда-функція — це невелика анонімна функція.
#Лямбда-функція може приймати будь-яку кількість аргументів,
#але може мати лише один вираз.
#синтаксис
#лямбда-аргументи : вираз
#lambda arguments : expression
plusFive = lambda num1 : num1+5
print(plusFive(10))

multiplyTwoNums = lambda num1, num2 : num1*num2
print(multiplyTwoNums(5,7))

sumOfThreeNums = lambda num1, num2, num3 : num1+num2+num3
print(sumOfThreeNums(5,7,9))

Ще один приклад використання лямбда-функції:

#Потужність лямбда краще проявляється, 
#коли ви використовуєте їх як
#анонімну функція всередині іншої функції.
def my_function(num1):
    return lambda unknownNum : unknownNum * num1

doubleNum = my_function(2)
print("Doubled results")
print(doubleNum(1))
print(doubleNum(5))
print(doubleNum(10))

numByFive = my_function(5)
print("Multiplied by five results")
print(numByFive(5))
print(numByFive(10))
Урок 12. Функції у Python

В цьому відео поговоримо про:
00:19 Functions – Функції
02:36 Arguments – Аргументи
04:10 Parameters and arguments – Параметри і аргументи
06:26 Number of arguments – Кількість аргументів
07:51 *args – якщо не знаємо скільки аргументів
11:47 Keyword arguments – Синтаксис ключ-значення
17:07 **kwargs – якщо невідомо скільки агрументів, але можливе використання ключових слів
22:03 Default parameter value – Параметр за помовчанням
24:11 Return values and pass statement – Повернення значень та pass
29:34 Recursion – Рекурсія
42:05 Lambda functions – Лямбда функції

Приклади на Github

Leave a Reply

Your email address will not be published. Required fields are marked *