Files
freeCodeCamp/guide/russian/python/functions/index.md
gmal1 5a535dffda clean up the Russian translation/fix link* (#34147)
* the Wikipedia link now points to the Russian Wikipedia page on DRY
2019-08-24 23:19:34 -07:00

6.7 KiB
Raw Blame History

title, localeTitle
title localeTitle
Functions функции

функции

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

Функции облегчают управление более сложных информационных систем по принципу DRY / Don't Repeat Yourself , разработанного для снижения повторения информации.

Хотя Python уже предоставляет множество встроенных функций, таких как print() и len() , вы также можете определить свои собственные функции для использования в ваших проектах.

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

Синтаксис

В Python определение функции имеет следующие функции:

  1. Ключевое слово def
  2. имя функции
  3. скобки '()' и входные параметры внутри скобок, хотя входные параметры могут быть опущены.
  4. двоеточие ':'
  5. некоторый блок кода для выполнения
  6. оператор возврата (необязательно)
# a function with no parameters or returned values 
 def sayHello(): 
  print("Hello!") 
 
 sayHello()  # calls the function, 'Hello!' is printed to the console 
 
 # a function with a parameter 
 def helloWithName(name): 
  print("Hello " + name + "!") 
 
 helloWithName("Ada")  # calls the function, 'Hello Ada!' is printed to the console 
 
 # a function with multiple parameters with a return statement 
 def multiply(val1, val2): 
  return val1 * val2 
 
 multiply(3, 5)  # prints 15 to the console 

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

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

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

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

# this is a basic sum function 
 def sum(a, b): 
  return a + b 
 
 result = sum(1, 2) 
 # result = 3 

Вы можете определить значения по умолчанию для параметров, таким образом Python будет интерпретировать, что значение этого параметра является значением по умолчанию, если он(и) не указан(ы).

def sum(a, b=3): 
  return a + b 
 
 result = sum(1) 
 # result = 4 

Вы можете передать параметры в том порядке, который вы хотите, используя имя параметра.

result = sum(b=2, a=2) 
 # result = 4 

Тем не менее, невозможно передать аргумент ключевого слова перед не ключевым словом

result = sum(3, b=2) 
 #result = 5 
 result2 = sum(b=2, 3) 
 #Will raise SyntaxError 

Функции также являются объектами, поэтому вы можете назначить их переменной и использовать эту переменную как функцию.

s = sum 
 result = s(1, 2) 
 # result = 3 

Заметки

  • Если определение функции включает параметры, вы должны указать одинаковое количество параметров при вызове функции.

    print(multiply(3))  # TypeError: multiply() takes exactly 2 arguments (0 given) 
    
     print(multiply('a', 5))  # 'aaaaa' printed to the console 
    
     print(multiply('a', 'b'))  # TypeError: Python can't multiply two strings 
    
    
  • Блок кода, который будет выполнять эта функция должен следовать определение функции и должен быть форматирован так, как показано внизу. [PEP-8] (https://www.python.org/dev/peps/pep-0008/#indentation) рекомендует использовать 4 пробела для форматирования блоков кода.

    def myFunc(): 
     print('this will print') 
     print('so will this') 
    
     x = 7 
     # the assignment of x is not a part of the function since it is not indented 
    
    
  • Переменные, определенные внутри функции, существуют только в пределах этой функции.

    def double(num): 
     x = num * 2 
     return x 
    
     print(x)  # error - x is not defined 
     print(double(4))  # prints 8 
    
    

    -Python интерпретирует функциональный блок только при вызове функции, а не когда функция определена. Даже если блок определения функции содержит какую-то ошибку, интерпретатор python укажет на это только тогда, когда вызывается функция.

Дополнительная информация: