betacode

Руководство Python Function

  1. Python Function
  2. Пример с Function
  3. Функция с обязательным параметром
  4. Функция с параметром по умолчанию
  5. Функция с параметром переменной длины
  6. Анонимная функция

1. Python Function

Функция (function) - это специальный командный блок, который назван и он помогает программному коду быть более легким для чтения, и он вызывается для использования в разных местах программы. Эта функция является многоразовым (reuseable) командным блоком.
Синтаксис:
** function syntax **
def functionName( parameters ):
   "Short description of the function"
   codes ...
   return [expression]
  • Любая функция (function) начинается с ключевого слова def (аббревиатура define) и сопровождается именем функции.
  • Далее, это список параметров в скобках () и двоеточии (:), функция может включать 0, 1 или много параметров, параметры разделяются запятой.
  • Первая строка тела функции (function body) - это краткое описание функции (необязательно).
Команда возврата (return):
Команда возврата используется чтобы вернуть значение (или выражение), или просто возвращает "ничего". Когда выполняется команла return (возврат), функция будет завершена. Возврат (return) - это необязательная команда в теле функции.
Пример
Описание
return 3
функция возвращает значение и заканчивается.
return
функция ничего не возвращает и заканчивается.
Параметры (parameters):
Функция включает 0, 1 или много параметров, разделённые запятой. Существует четыре вида параметров:
  • Обьязательный параметр
  • Параметр по умолчанию (Default parameter)
  • Параметр переменной длины (Variable-Length Parameter)
  • Параметр ключевого слова (Keyword Parameter)

2. Пример с Function

Например, функция с параметром и возвращает "ничего".
functionExample1.py
# Определение функции:
def sayHello(name)  : 
    # Проверить является ли name пустым (empty) или null.
    if not name   : 
        print( "Hello every body!" ) 
    # Если name не является пустым и не null.    
    else :          
        print( "Hello " + name)

# Вызвать функцию, передать параметр в функцию.
sayHello("") 
sayHello("Python");  
sayHello("Java");
Output:
Hello every body!
Hello Python
Hello Java
Следующий пример функции с параметром и возвращает значение.
functionExample2.py
# Определение функции:
def getGreeting(name)  :

    # Проверить является ли name пустым (empty) или null (None).
    if not name   :
        # Возвращает значение.
        # И функция закончится здесь.
        return "Hello every body!"
    
    # Если name не является пустым и не null (Не None).
    # код ниже будет выполнен.
    return "Hello " + name

# Вызвать функцию, передать параметр в функцию.
greeting = getGreeting("") 
print(greeting)  
greeting = getGreeting("Python") 
print(greeting)
Output:
Hello every body!
Hello Python

3. Функция с обязательным параметром

Следующий пример определяет функцию showInfo, имеющую 2 параметра, оба параметра обязательны. Когда вы вызываете эту функцию, вам нужно передать 2 параметра для функции. В противном случае программа выдаст ошибку.
requiredParameterExample.py
def showInfo(name, gender):
    print ("Name: ", name);
    print ("Gender: ", gender);

# Valid  
showInfo("Tran", "Male")  
# Invalid ==> Error!!
showInfo("Tran")

4. Функция с параметром по умолчанию

Функция имеет много параметров, включая обьязательные параметры и парамтры со значениями по умолчанию.
Функция showInfo ниже имеет три параметра (name, gender = "Male", country = "US"):
  • name является обьязательным параметром.
  • gender является параметром со значением по умолчанию "Male".
  • country является параметром со значением по умолчанию "US".
defaultParameterExample.py
def showInfo(name, gender = "Male", country ="US"):
    print ("Name: ", name)
    print ("Gender: ", gender)
    print ("Country: ", country)

# Valid    
showInfo("Aladdin", "Male", "India")  
print (" ------ ")
# Valid  
showInfo("Tom", "Male")
print (" ------ ")
# Valid  
showInfo("Jerry")
print (" ------ ")
# Valid  
showInfo(name = "Tintin", country ="France")
print (" ------ ")
Output:
Name: Aladdin
Gender: Male
Country: India
 ------
Name: Tom
Gender: Male
Country: US
 ------
Name: Jerry
Gender: Male
Country: US
 ------
Name: Tintin
Gender: Male
Country: France
 ------

5. Функция с параметром переменной длины

Параметр переменной длины (Variable-length Parameter) является специальным параметром. При вызове функции вы можете передать 0, 1 или много значений этому параметру.

Примечание:"Variable-length Parameter" всегда должен быть последним параметром функции.
Пример:
Функция sumValues имеет три параметра:
  • Параметры a, b обьязательны.
  • Параметр *others является "Variable-Length Parameter".
variableLengthParameterExample.py
def sumValues(a, b, *others): 
    retValue = a + b
    
    # Параметр 'others' похож на массив.
    for other in others :
        retValue = retValue + other
        
    return retValue
Как вызвать функцию:
testVariableLengthParameter.py
from variableLengthParameterExample import sumValues

# Передать: *others = []
a = sumValues(10, 20) 
print("sumValues(10, 20) = ", a);

# Передать: *others = [1]
a = sumValues(10, 20, 1);  
print("sumValues(10, 20, 1 ) = ", a);

# Передать: *others = [1,2]
a = sumValues(10, 20, 1, 2);  
print("sumValues(10, 20, 1 , 2) = ", a);

# Передать: *others = [1,2,3,4,5]
a = sumValues(10, 20, 1, 2,3,4,5);  
print("sumValues(10, 20, 1, 2, 3, 4, 5) = ", a);
Output:
sumValues(10, 20) = 30
sumValues(10, 20, 1) = 31
sumValues(10, 20, 1, 2) = 33
sumValues(10, 20, 1, 2, 3, 4, 5) = 45

6. Анонимная функция

Функции являются анонимными (anonymous) если они не определены обычным способом ключевым словом def, а используя ключевое слово lambda.
  • Анонимная функция может иметь 0 или более параметров, но в теле функции есть только одно выражение (expression). Значение выражения является возвращенным значением функции. Но нельзя использовать ключевое слово 'return' сразу перед выражением.
  • Список параметров разделены запятой, и не должны быть в круглых скобках ( ).
  • В теле анонимной функции, вы не можете иметь доступ к переменным снаружи, вы можете только иметь досту к е параметрам.
  • Анонимная функция не может вызвать напрямую функцию print, так как lambda требует выражение.
Синтаксис:
* syntax *
lambda [arg1 [,arg2,.....argn]]  :  expression
пример
lambdaFunctionExample.py
# Объявить переменную: hello = анонимная фукнция и не имеет параметра.
hello = lambda  : "Hello"

# Объявить переменную: mySum = анонимная фукнция с 2-мя параметрами.
mySum = lambda a, b : a + b 

a= hello() 
print (a) 

a = mySum(10, 20) 
print (a)
Output:
Hello
30