Module (22%)
Section (100%)

Основные тезисы

1. С помощью параметров Вы можете передавать информацию в функции. Ваши функции могут иметь столько параметров, сколько Вам нужно.

Пример функции с одним параметром:

def hi(name): print("Hi,", name) hi("Greg")

Пример функции с двумя параметрами:

def hi_all(name_1, name_2): print("Hi,", name_2) print("Hi,", name_1) hi_all("Sebastian", "Konrad")

Пример функции с тремя параметрами

def address(street, city, postal_code): print("Your address is:", street, "St.,", city, postal_code) s = input("Street: ") p_c = input("Postal Code: ") c = input("City: ") address(s, c, p_c)

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

  • позиционная передача аргументов , в которой порядок передачи аргументов имеет значение (Пример 1)
  • передача аргументов по имени, в которой порядок переданных аргументов не имеет значения (Пример 2)
  • сочетание позиционной передачи аргументов с передачей по имени (Пример 3).
Пример 1 def subtra(a, b): print(a - b) subtra(5, 2) # outputs: 3 subtra(2, 5) # outputs: -3 Пример 2 def subtra(a, b): print(a - b) subtra(a=5, b=2) # outputs: 3 subtra(b=2, a=5) # outputs: 3 Пример 3 def subtra(a, b): print(a - b) subtra(5, b=2) # outputs: 3 subtra(5, 2) # outputs: 3

Важно помнить, что позиционные аргументы не должны следовать за именованными. Поэтому, если Вы попытаетесь запустить следующий код:

def subtra(a, b): print(a - b) subtra(5, b=2) # outputs: 3 subtra(a=5, 2) # Syntax Error

Python не позволит вам сделать это, сигнализируя об ошибке SyntaxError.




3. Вы можете использовать технику передачи аргументов по имени, чтобы предварительно определить значение для данного аргумента:

def name(first_name, last_name="Smith"): print(first_name, last_name) name("Andy") # outputs: Andy Smith name("Betty", "Johnson") # outputs: Betty Johnson (the keyword argument replaced by "Johnson")



Упражнение 1

Что выведет следующий код?

def intro(a="James Bond", b="Bond"): print("My name is", b + ".", a + ".") intro()

Упражнение 2

Что выведет следующий код?

def intro(a="James Bond", b="Bond"): print("My name is", b + ".", a + ".") intro(b="Sean Connery")

Упражнение 3

Что выведет следующий код?

def intro(a, b="Bond"): print("My name is", b + ".", a + ".") intro("Susan")

Упражнение 4

Что выведет следующий код?

def add_numbers(a, b=2, c): print(a + b + c) add_numbers(a=1, c=3)