Параметры функции

Параметры функции

@ProgHelpBot
  1. Параметры функции
  2. Значения по умолчанию
  3. Именованные и позиционные параметры
  4. Неопределённое количество параметров

Параметры функции

Функция может принимать параметры. Через параметры в функцию можно передавать данные.

def say_hello(name):
  print(f"Hello, {name}")


say_hello("Alex")  # Hello, Alex
say_hello("Bill")  # Hello, Bill

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

def print_person(name, age):
  print(f"Name: {name}, age: {age}")


print_person("Alex", 18)  # Name: Alex, age: 18
print_person("Alice" 22)  # Name: Bill, age: 22

Значения по умолчанию

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

def say_hello(name="human"):
  print(f"Hello, {name}")


say_hello()  # Hello, human
say_hello("Alex")  # Hello, Alex

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

def [имя функции]([обязательные], [необязательные]):
  [инструкции]

Пример:

def print_person(age, name="anonymous"):
  print(f"Name: {name}, age: {age}")


print_person(32)  # Name: anonymous, age: 32
print_person(18, "Alex")  # Name: Alex, age: 18

Именованные и позиционные параметры

В примерах выше при вызове функции значения передаются параметрами функции по позиции. Но также можно передавать значения параметрам по имени. Для этого при вызове функции указывается имя параметра и ему присваивается значение. В этом случай порядок записи значений неважен.

def print_person(name, age):
  print(f"Name: {name}, age: {age}")


print_person(age=16, name="Alex")  # Name: Alex, age: 18

Параметры могут быть именованными (получают значения только по имени, не зависят от позиции) и позиционными (получают значения только по позиции и зависят от неё). Особенности их расположения следующие:

def [имя функции]([позиционные], /, [прочие], *, [именованные]):
  [инструкции]

Пример:

def print_person(name, /, age, *, company):
  print(f"Name: {name}, age: {age}, company: {company}")


print_person("Alex", 18, company="Google")  # Name: Alex, age: 18, company: Google
print_person("Alex", company="Google", age=18)  # То же самое

В примере выше age может получать значение как по позиции, так и по имени.

Неопределённое количество параметров

С помощью символа звездочки можно определить параметр, через который можно передавать неопределенное количество значений.

def print_sum(*nums):
  result = 0
  for i in nums:
    result += i
  print(result)


print_sum(1, 2, 3, 4, 5)  # 15


← Функции

→ Возвращение результата из функции

Report Page