Как посчитать количество вызова функции на Python?
Есть задание:
Напишите функцию пересчета суммы в рублях в какую-нибудь другую валюту. Используйте глобальную переменную в качестве счетчика количества вызовов функции.
Я никак что-то не могу понять, как подсчитать количество вызовов функции (о котором говорится в задании)... поможите? Вот, что у меня пока получилось:
rubles = float(input("Введите кол-во рублей: "))
USD = lambda rubles: rubles * 0.016
EUR = lambda rubles: rubles * 0.015
VND = lambda rubles: rubles * 385.60
print("Вот сколько Вы сможете приобрести долларов: ", USD(rubles))
print("Вот сколько Вы сможете приобрести евро: ", EUR(rubles))
print("Вот сколько Вы сможете приобрести вьетнамских донгов: ", VND(rubles))
Ответы (2 шт):
Автор решения: Ivan
→ Ссылка
Наверное от Вас хотят чего-то подобного
print('введите кол-во рублей')
rubles = float(input())
cnt_calls_func = 0
def rubles_to_usd(rub):
global cnt_calls_func
cnt_calls_func += 1
usd = rub * 0.016
return f'{usd}; функцию вызвали {cnt_calls_func}' # для склонения по падежам
# можно воспользоваться библиотекой pymorphy2
print(rubles_to_usd(rubles))
print(rubles_to_usd(rubles))
Подробнее о глобальных переменных и про области видимости можно прочесть тут
Автор решения: DiMithras
→ Ссылка
Можно, в общем то, и оставить лямбды, но обернуть то что они делают в функцию:
rubles = float(input("Введите кол-во рублей: "))
def counter(*args, count=[0]):
count[0]+=1
print('Количество раз функции были вызваны: {}'.format(count[0]))
return args[0]
USD = lambda rubles: counter(rubles * 0.016)
EUR = lambda rubles: counter(rubles * 0.015)
VND = lambda rubles: counter(rubles * 385.60)
print("Вот сколько Вы сможете приобрести долларов: ", USD(rubles))
print("Вот сколько Вы сможете приобрести евро: ", EUR(rubles))
print("Вот сколько Вы сможете приобрести вьетнамских донгов: ", VND(rubles))
Вывод
Количество раз функции были вызваны: 1
Вот сколько Вы сможете приобрести долларов: 0.3232
Количество раз функции были вызваны: 2
Вот сколько Вы сможете приобрести евро: 0.303
Количество раз функции были вызваны: 3
Вот сколько Вы сможете приобрести вьетнамских донгов: 7789.12