logo

Функції Python

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

Дещо Переваги використання функцій

  • Підвищення читабельності коду
  • Підвищення повторного використання коду

Оголошення функції Python

Синтаксис для оголошення функції такий:



Функції Python

Синтаксис оголошення функції Python

Типи функцій у Python

Нижче наведено різні типи функцій у Python :

  • Функція вбудованої бібліотеки: Це Стандартні функції на Python, які доступні для використання.
  • Функція, визначена користувачем: Ми можемо створювати власні функції на основі наших вимог.

Створення функції в Python

Ми можемо визначити функцію в Python, використовуючи зах ключове слово. Ми можемо додати до нього будь-які типи функціональних можливостей і властивостей за потреби. На наступному прикладі ми можемо зрозуміти, як написати функцію на Python. Таким чином ми можемо створити визначення функції Python за допомогою ключового слова def.

Python3
# A simple Python function def fun(): print('Welcome to GFG')>

Виклик функції в Python

Після створення функції в Python ми можемо викликати її, використовуючи назву функції Python, за якою слідують дужки, що містять параметри цієї конкретної функції. Нижче наведено приклад виклику функції визначення Python.

Python3
# A simple Python function def fun(): print('Welcome to GFG') # Driver code to call a function fun()>

Вихід:

Welcome to GFG>

Функція Python з параметрами

Якщо у вас є досвід роботи з C/C++ або Java, то ви повинні подумати про тип повернення функції і тип даних аргументів. Це також можливо в Python (зокрема для Python 3.5 і вище).

Синтаксис функції Python із параметрами

 def function_name(parameter: data_type) ->return_type: '''Docstring''' # тіло виразу повернення функції>

У наступному прикладі використовується аргументи та параметри про який ви дізнаєтеся пізніше в цій статті, щоб ви могли повернутися до нього знову, якщо не зрозуміли.

Python3
def add(num1: int, num2: int) ->int: '''Додати два числа''' num3 = num1 + num2 return num3 # Код драйвера num1, num2 = 5, 15 ans = add(num1, num2) print(f'Додавання {num1} і {num2} результати {ans}.')>

Вихід:

Урфі Джавед
The addition of 5 and 15 results 20.>

Примітка: Наступні приклади визначені за допомогою синтаксису 1, спробуйте перетворити їх у синтаксис 2 для практики.

Python3
# some more functions def is_prime(n): if n in [2, 3]: return True if (n == 1) or (n % 2 == 0): return False r = 3 while r * r <= n: if n % r == 0: return False r += 2 return True print(is_prime(78), is_prime(79))>

Вихід:

False True>

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

Аргументи – це значення, передані всередині дужок функції. Функція може мати будь-яку кількість аргументів, розділених комою.

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

Python3
# A simple Python function to check # whether x is even or odd def evenOdd(x): if (x % 2 == 0): print('even') else: print('odd') # Driver code to call the function evenOdd(2) evenOdd(3)>

Вихід:

even odd>

Типи аргументів функції Python

Python підтримує різні типи аргументів, які можна передати під час виклику функції. У Python ми маємо такі типи аргументів функції:

  • Аргумент за замовчуванням
  • Аргументи ключових слів (іменовані аргументи)
  • Позиційні аргументи
  • Довільні аргументи (аргументи змінної довжини *args і **kwargs)

Розглянемо кожен тип докладніше.

Аргументи за замовчуванням

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

Python3
# Python program to demonstrate # default arguments def myFun(x, y=50): print('x: ', x) print('y: ', y) # Driver code (We call myFun() with only # argument) myFun(10)>

Вихід:

x: 10 y: 50>

Як і стандартні аргументи C++, будь-яка кількість аргументів у функції може мати значення за замовчуванням. Але як тільки у нас є аргумент за замовчуванням, усі аргументи праворуч від нього також повинні мати значення за замовчуванням.

Аргументи ключових слів

Ідея полягає в тому, щоб дозволити абоненту вказувати назву аргументу зі значеннями, щоб абоненту не потрібно було запам’ятовувати порядок параметрів.

Python3
# Python program to demonstrate Keyword Arguments def student(firstname, lastname): print(firstname, lastname) # Keyword arguments student(firstname='Geeks', lastname='Practice') student(lastname='Practice', firstname='Geeks')>

Вихід:

Geeks Practice Geeks Practice>

Позиційні аргументи

Ми використовували Аргумент позиції під час виклику функції, щоб перший аргумент (або значення) було призначено імені, а другий аргумент (або значення) присвоєно віку. Змінивши позицію або якщо ви забули порядок позицій, значення можуть використовуватися не в тих місцях, як показано у прикладі Case-2 нижче, де 27 призначається імені, а Suraj — віку.

Python3
def nameAge(name, age): print('Hi, I am', name) print('My age is ', age) # You will get correct output because  # argument is given in order print('Case-1:') nameAge('Suraj', 27) # You will get incorrect output because # argument is not in order print('
Case-2:') nameAge(27, 'Suraj')>

Вихід:

  Case-1:  Hi, I am Suraj My age is 27   Case-2:  Hi, I am 27 My age is Suraj>

Аргументи довільного ключового слова

У довільних ключових словах Python, *args і **kwargs може передавати змінну кількість аргументів функції за допомогою спеціальних символів. Є два спеціальні символи:

  • *args у Python (аргументи, не пов’язані з ключовими словами)
  • **kwargs у Python (аргументи ключових слів)

приклад 1: Неключовий аргумент змінної довжини

Python3
# Python program to illustrate # *args for variable number of arguments def myFun(*argv): for arg in argv: print(arg) myFun('Hello', 'Welcome', 'to', 'techcodeview.com')>

Вихід:

Hello Welcome to techcodeview.com>

приклад 2: Ключові аргументи змінної довжини

Python3
# Python program to illustrate # *kwargs for variable number of keyword arguments def myFun(**kwargs): for key, value in kwargs.items(): print('%s == %s' % (key, value)) # Driver code myFun(first='Geeks', mid='for', last='Geeks')>

Вихід:

first == Geeks mid == for last == Geeks>

Рядок документації

Перший рядок після функції називається рядком документа або Рядок документації коротко. Це використовується для опису функціональності функції. Використання docstring у функціях є необов’язковим, але вважається хорошою практикою.

Наведений нижче синтаксис можна використовувати для друку рядка документації функції.

метод tostring java
  Syntax:   print(function_name.__doc__)>

приклад: Додавання Docstring до функції

Python3
# A simple Python function to check # whether x is even or odd def evenOdd(x):  '''Function to check if the number is even or odd''' if (x % 2 == 0): print('even') else: print('odd') # Driver code to call the function print(evenOdd.__doc__)>

Вихід:

Function to check if the number is even or odd>

Функція Python у функціях

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

Python3
# Python program to # demonstrate accessing of # variables of nested functions def f1(): s = 'I love techcodeview.com' def f2(): print(s) f2() # Driver's code f1()>

Вихід:

I love techcodeview.com>

Анонімні функції в Python

У Python ан анонімна функція означає, що функція не має імені. Як ми вже знаємо, ключове слово def використовується для визначення звичайних функцій, а ключове слово lambda використовується для створення анонімних функцій.

Python3
# Python code to illustrate the cube of a number # using lambda function def cube(x): return x*x*x cube_v2 = lambda x : x*x*x print(cube(7)) print(cube_v2(7))>

Вихід:

343 343>

Рекурсивні функції в Python

Рекурсія у Python означає, коли функція викликає сама себе. Є багато випадків, коли вам потрібно створити рекурсивну функцію для вирішення Математичні та рекурсивні задачі.

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

Python3
def factorial(n): if n == 0: return 1 else: return n * factorial(n - 1) print(factorial(4))>

Вихід

24>

Тут ми створили рекурсивну функцію для обчислення факториалу числа. Ви можете побачити кінцевий оператор для цієї функції, коли n дорівнює 0.

Інструкція Return у функції Python

Оператор повернення функції використовується для виходу з функції та повернення до викликаної функції та повернення вказаного значення або елемента даних до викликаючої. Синтаксис оператора return такий:

return [expression_list]>

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

приклад: Оператор повернення функції Python

Python3
def square_value(num):  '''This function returns the square  value of the entered number''' return num**2 print(square_value(2)) print(square_value(-4))>

Вихід:

4 16>

Передача за посиланням і Передача за значенням

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

Python3
# Here x is a new reference to same list lst def myFun(x): x[0] = 20 # Driver Code (Note that lst is modified # after function call. lst = [10, 11, 12, 13, 14, 15] myFun(lst) print(lst)>

Вихід:

[20, 11, 12, 13, 14, 15]>

Коли ми передаємо посилання та змінюємо отримане посилання на щось інше, зв’язок між переданими та отриманими параметрами розривається. Наприклад, розглянемо наведену нижче програму так:

Python3
def myFun(x): # After below line link of x with previous # object gets broken. A new object is assigned # to x. x = [20, 30, 40] # Driver Code (Note that lst is not modified # after function call. lst = [10, 11, 12, 13, 14, 15] myFun(lst) print(lst)>

Вихід:

[10, 11, 12, 13, 14, 15]>

Інший приклад демонструє, що посилання на посилання порушується, якщо ми призначаємо нове значення (всередині функції).

Python3
def myFun(x): # After below line link of x with previous # object gets broken. A new object is assigned # to x. x = 20 # Driver Code (Note that x is not modified # after function call. x = 10 myFun(x) print(x)>

Вихід:

10>

Вправа: Спробуйте вгадати результат наступного коду.

Python3
def swap(x, y): temp = x x = y y = temp # Driver code x = 2 y = 3 swap(x, y) print(x) print(y)>

Вихід:

2 3>

Швидкі посилання

  • Тест про функції Python
  • Різниця між методом і функцією в Python
  • Функції першого класу в Python
  • Останні статті про функції Python .

Поширені запитання – функції Python

Q1. Що таке функція в Python?

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

Q2. Які 4 типи функцій існують у Python?

Основні типи функцій у Python:

  • Вбудована функція
  • Функція, визначена користувачем
  • Лямбда-функції
  • Рекурсивні функції

Q3. Х як написати функцію на Python ?

Щоб написати функцію на Python, ви можете використати ключове слово def, а потім написати назву функції. Ви можете надати код функції після використання ':'. Основний синтаксис для визначення функції:

def function_name():

#заява

Q4. Які параметри функції в Python?

Параметри в Python — це змінні, які приймають значення, передані як аргументи під час виклику функцій. Функція може мати будь-яку кількість параметрів. Ви також можете встановити значення за замовчуванням для параметра в Python.