В прошлом параграфе мы познакомились с функциями. В них можно передать параметры, называемые аргументами. На данный момент мы умеем передавать аргументы, просто перечисляя их значения при вызове функции. Такие аргументы называются позиционными.
Напишем функцию, которая для стоимости товара считает окончательную стоимость с учётом скидки в процентах:
Напишем функцию, которая для стоимости товара считает окончательную стоимость с учётом скидки в процентах:
def final_price(price, discount):
return price - price * discount / 100
print(final_price(1000, 5))
Вывод программы:
950.0
950.0
В Python есть возможность задать для аргументов значение по умолчанию. Если значение для такого аргумента при вызове функции не передаётся, то используется значение по умолчанию. Пусть в нашей функции будет скидка по умолчанию 1%. Тогда программа запишется так:
def final_price(price, discount=1):
return price - price * discount / 100
print(final_price(1000, 5))
# Значение скидки не задано, используется значение по умолчанию
print(final_price(1000))
Вывод программы:
950.0
990.0
Обратите внимание: значение по умолчанию задаётся один раз при объявлении функции. При последующих вызовах оно не меняется. Это может приводить к неожиданным результатам при использовании значений изменяемых типов данных:
950.0
990.0
Обратите внимание: значение по умолчанию задаётся один раз при объявлении функции. При последующих вызовах оно не меняется. Это может приводить к неожиданным результатам при использовании значений изменяемых типов данных:
def add_value(x, list_arg=[]):
list_arg += [x]
return list_arg
print(add_value(0))
print(add_value(0, [1, 2, 3]))
print(add_value(1))
Вывод программы:
[0]
[1, 2, 3, 0]
[0, 1]
[0]
[1, 2, 3, 0]
[0, 1]