Latest web development tutorials

функция python3

Функция является хорошая организация, многоразовые, используется для достижения одного сегмента кода, или связанные с ними функции.

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


Определим функцию

Вы можете определить функцию из функции, которую вы хотите, следующих простых правил:

  • Функциональный блокЗащиту ключевое слово в начале, за которым следует имя функции и идентификаторов в скобках ().
  • Любые входящие параметры и аргументы должны быть помещены в скобках в середине, он может быть использован для определения параметров в круглых скобках.
  • В первой строке заявления функции можно дополнительно использовать строку документа - используются для описания функции.
  • Содержание функции, начиная с толстой кишки и отступов.
  • вернуться [выражение] конец функции, необязательно возвращать значение вызывающей. вернуться без выражения эквивалент не возвращать None.

грамматика

Python-функции, определяемые с помощью ключевого слова четкости, общий формат выглядит следующим образом:

def 函数名(参数列表):
    函数体

По умолчанию, имя параметра и значение параметра в порядке, определенном в объявлении функции совпадает.

примеров

Давайте использовать функцию для вывода "Hello World!":

>>> def hello() :
   print("Hello World!")

   
>>> hello()
Hello World!
>>> 

Применение более сложной точки, чтобы вывести переменные параметров функции:

#!/usr/bin/python3

# 计算面积函数
def area(width, height):
    return width * height
 
def print_welcome(name):
    print("Welcome", name)

print_welcome("w3big")
w = 4
h = 5
print("width =", w, " height =", h, " area =", area(w, h))

Примеры вышеуказанного вывода:

Welcome w3big
width = 4  height = 5  area = 20

вызов функции

Определим функцию: дать функцию имя, указать параметры функции содержит и блок кода структуры.

После завершения основной структуры этой функции можно выполнить еще один вызов функции, которая будет выполнена непосредственно из командной строки Python.

Следующие примеры называются функцией PrintMe ():

#!/usr/bin/python3
 
# 定义函数
def printme( str ):
   "打印任何传入的字符串"
   print (str);
   return;
 
# 调用函数
printme("我要调用用户自定义函数!");
printme("再次调用同一函数");

Примеры вышеуказанного вывода:

我要调用用户自定义函数!
再次调用同一函数

Параметры, передаваемые по параметрам стоимости и пройти по ссылке

В Python, все параметры (переменные) передаются по ссылке. При изменении параметра в функции, то эта функция вызывается функция, исходные параметры также изменились. Например:

#!/usr/bin/python3
 
# 可写函数说明
def changeme( mylist ):
   "修改传入的列表"
   mylist.append([1,2,3,4]);
   print ("函数内取值: ", mylist)
   return
 
# 调用changeme函数
mylist = [10,20,30];
changeme( mylist );
print ("函数外取值: ", mylist)

И передается в функцию объекта в конце добавить новое содержание, используя ту же ссылку. Таким образом, выходные результаты являются следующие:

函数内取值:  [10, 20, 30, [1, 2, 3, 4]]
函数外取值:  [10, 20, 30, [1, 2, 3, 4]]

параметры

Ниже приведен формальный тип параметра может использоваться при вызове функции:

  • Требуемые параметры
  • Ключевое слово аргументы
  • Параметры по умолчанию
  • Параметры переменной длины

Требуемые параметры

Требуемые параметры в правильном порядке, чтобы быть переданы функции. Когда количество звонков и должны быть такими же декларация.

Вызов PrintMe () функция, вы должны передать в качестве параметра, или будет происходить ошибка синтаксиса:

#!/usr/bin/python3
 
#可写函数说明
def printme( str ):
   "打印任何传入的字符串"
   print (str);
   return;
 
#调用printme函数
printme();

Примеры вышеуказанного вывода:

Traceback (most recent call last):
  File "test.py", line 10, in <module>
    printme();
TypeError: printme() missing 1 required positional argument: 'str'

Ключевое слово аргументы

Ключевое слово аргументы и вызовы функций тесные отношения функции вызова с использованием ключевых слов аргументы, чтобы определить значение параметра, переданного.

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

Функция PrintMe Следующий пример () вызывается с именем параметра:

#!/usr/bin/python3
 
#可写函数说明
def printme( str ):
   "打印任何传入的字符串"
   print (str);
   return;
 
#调用printme函数
printme( str = "本教程");

Примеры вышеуказанного вывода:

本教程

Следующий пример демонстрирует использование параметров функции не нужно использовать указанный порядок:

#!/usr/bin/python3
 
#可写函数说明
def printinfo( name, age ):
   "打印任何传入的字符串"
   print ("名字: ", name);
   print ("年龄: ", age);
   return;
 
#调用printinfo函数
printinfo( age=50, name="w3big" );

Примеры вышеуказанного вывода:

名字:  w3big
年龄:  50

Параметры по умолчанию

Когда функция вызывается, если параметр не передается, он будет использовать параметры по умолчанию. В следующем примере, если не входящего параметра возраста, значение по умолчанию:

#!/usr/bin/python3
 
#可写函数说明
def printinfo( name, age = 35 ):
   "打印任何传入的字符串"
   print ("名字: ", name);
   print ("年龄: ", age);
   return;
 
#调用printinfo函数
printinfo( age=50, name="w3big" );
print ("------------------------")
printinfo( name="w3big" );

Примеры вышеуказанного вывода:

名字:  w3big
年龄:  50
------------------------
名字:  w3big
年龄:  35

Параметры переменной длины

Вам может понадобиться функция, которая может обрабатывать больше, чем первоначальное сообщение параметров. Эти параметры называются параметрами переменной длины, а два типа параметров различны, не именования декларации. Базовый синтаксис выглядит следующим образом:

def functionname([formal_args,] *var_args_tuple ):
   "函数_文档字符串"
   function_suite
   return [expression]

Звездочкой (*) будут храниться в именах переменных все неназванные переменными параметрами. Если аргумент, когда функция вызывается, это пустой кортеж. Мы не можем передать неназванный переменную в функцию. Ниже приведены примеры:

#!/usr/bin/python3
 
# 可写函数说明
def printinfo( arg1, *vartuple ):
   "打印任何传入的参数"
   print ("输出: ")
   print (arg1)
   for var in vartuple:
      print (var)
   return;
 
# 调用printinfo 函数
printinfo( 10 );
printinfo( 70, 60, 50 );

Примеры вышеуказанного вывода:

输出:
10
输出:
70
60
50

функция Anonymous

Python с помощью лямбда, чтобы создать анонимную функцию.

Так называемый анонимный, что означает больше не использовать эту стандартную форму заявления четкости для определения функции.

  • Просто лямбда-выражение, тело функции гораздо проще, чем опр.
  • Тело лямбда-выражение, а не блок кода. Мы можем только упаковать ограниченную логику в лямбда-выражения.
  • лямбда-функция имеет свое собственное пространство имен, и не могут быть доступны за пределами своего собственного списка аргументов или параметров глобального пространства имен.
  • Хотя лямбда-функция выглядит писать только одну строку, но не такой же, как встроенные функции в C или C ++, последняя цель не занята при вызове функции небольшой стек памяти для увеличения эффективности работы.

грамматика

Синтаксис функции Лямбда содержит только один оператор, следующим образом:

lambda [arg1 [,arg2,.....argn]]:expression

Ниже приведены примеры:

#!/usr/bin/python3
 
# 可写函数说明
sum = lambda arg1, arg2: arg1 + arg2;
 
# 调用sum函数
print ("相加后的值为 : ", sum( 10, 20 ))
print ("相加后的值为 : ", sum( 20, 20 ))

Примеры вышеуказанного вывода:

相加后的值为 :  30
相加后的值为 :  40

геЬигп

вернуться [выражение] оператор используется для выхода из функции, избирательно вызывающий возвращает выражение.оператор возврата без параметров возвращает None. Ни одна из предыдущих примеров не показано, как возвращать значение, следующий пример демонстрирует использование оператора возврата:

#!/usr/bin/python3

# 可写函数说明
def sum( arg1, arg2 ):
   # 返回2个参数的和."
   total = arg1 + arg2
   print ("函数内 : ", total)
   return total;

# 调用sum函数
total = sum( 10, 20 );
print ("函数外 : ", total)

Примеры вышеуказанного вывода:

函数内 :  30
函数外 :  30

Переменная Объем

Pyhton, переменная не положение, в котором программа может получить доступ, доступ зависит от того, где присваивается переменная.

Область действия переменной определяет, какая часть программы, в которой вы можете получить доступ к конкретной переменной имя. Существуют два основных переменной сфера выглядит следующим образом:

  • Глобальные переменные
  • Локальные переменные

Глобальные и локальные переменные

Определение функции внутренних переменных имеют локальную область видимости, как это определено в внешней функции имеет глобальную область.

Локальные переменные могут быть объявлены только внутри функции ее доступа к глобальным переменным можно обращаться в течение процедур. При вызове функции все имена переменных в объявлении функции будут добавлены в область. Ниже приведены примеры:

#!/usr/bin/python3

total = 0; # 这是一个全局变量
# 可写函数说明
def sum( arg1, arg2 ):
    #返回2个参数的和."
    total = arg1 + arg2; # total在这里是局部变量.
    print ("函数内是局部变量 : ", total)
    return total;

#调用sum函数
sum( 10, 20 );
print ("函数外是全局变量 : ", total)

Примеры вышеуказанного вывода:

函数内是局部变量 :  30
函数外是全局变量 :  0