Аргументи за замовчуванням і ключові аргументи

Середній рівень Python для розробників

Jasmin Ludolf

Senior Data Science Content Developer

Середнє

# Create a custom function
def average(values):
    # Calculate the average
    average_value = sum(values) / len(values)

    # Round the results
    rounded_average = round(average_value, 2)

    # Return rounded_average as an output
    return rounded_average
  • values = Аргумент
Середній рівень Python для розробників

Аргументи

  • Значення, що передаються у функцію або метод
    • Позиційні
    • Ключові
Середній рівень Python для розробників

Позиційні аргументи

  • Передавайте аргументи у потрібному порядку, розділяючи комами
# Round pi to 2 digits
print(round(3.1415926535, 2))
3.14
Середній рівень Python для розробників

Ключові аргументи

  • Передавайте аргументи, присвоюючи значення keywords

  • Зручно для розуміння й відстеження аргументів

# Round pi to 2 digits 
print(round(number=3.1415926535
Середній рівень Python для розробників

Ключові аргументи

  • Передавайте аргументи, присвоюючи значення keywords

  • Зручно для розуміння й відстеження аргументів

# Round pi to 2 digits 
print(round(number=3.1415926535, ndigits=2))
3.14
Середній рівень Python для розробників

Визначення ключових аргументів

# Get more information about the help function
print(help(round))
Help on built-in function round in module builtins:

round(number, ndigits=None)
    Round a number to a given precision in decimal digits.

    The return value is an integer if ndigits is omitted or None.  Otherwise,
    the return value has the same type as the number.  ndigits may be negative.
Середній рівень Python для розробників

Ключові аргументи

Help on built-in function round in module builtins:

round(number, ndigits=None)
  Round a number to a given precision in decimal digits.

  The return value is an integer if ndigits is omitted or None. Otherwise 
  the return value has the same type as the number. ndigits may be negative.

$$

  • Перший аргумент: number
  • Другий аргумент: ndigits
Середній рівень Python для розробників

Аргументи за замовчуванням

Help on built-in function round in module builtins:

round(number, ndigits=None)
    Round a number to a given precision in decimal digits.

    The return value is an integer if ndigits is omitted or None.  Otherwise,
    the return value has the same type as the number.  ndigits may be negative.
  • None = немає значення / порожньо

  • Аргумент за замовчуванням: спосіб задати default-значення для argument

  • Ми змінюємо None на 2

  • Поширене значення — задайте його як аргумент за замовчуванням

Середній рівень Python для розробників

Додавання аргументу

# Create a custom function
def average(values):
    average_value = sum(values) / len(values)
    rounded_average = round(average_value, 2)
    return rounded_average
Середній рівень Python для розробників

Додавання аргументу

# Create a custom function
def average(values, rounded=False):


Середній рівень Python для розробників

Додавання аргументу

# Create a custom function
def average(values, rounded=False):

# Round average to two decimal places if rounded is True if rounded == True:
average_value = sum(values) / len(values) rounded_average = round(average_value, 2) return rounded_average
Середній рівень Python для розробників

Додавання аргументу

# Create a custom function
def average(values, rounded=False):

# Round average to two decimal places if rounded is True if rounded == True: average_value = sum(values) / len(values) rounded_average = round(average_value, 2) return rounded_average
# Otherwise, don't round else: average_value = sum(values) / len(values) return average_value
Середній рівень Python для розробників

Використання зміненої функції average()

# List of preparation times (minutes)
preparation_times = [19.23, 15.67, 48.57, 23.45, 12.06, 34.56, 45.67]
Середній рівень Python для розробників

Використання зміненої функції average()

# Get the average without rounding
print(average(preparation_times, False))
28.4585714
# Get the average without rounding
print(average(preparation_times))
28.4585714
Середній рівень Python для розробників

Використання зміненої функції average()

# Get the rounded average
print(average(values=preparation_times, rounded=True))
28.46
Середній рівень Python для розробників

Давайте потренуємось!

Середній рівень Python для розробників

Preparing Video For Download...