Как посчитать количество аргументов, вводимых в функцию при помощи *?
Есть следующее задание:
Напишите функцию, которая будет возвращать числом количество аргументов, которые подали ей на вход.
Я вроде бы понял, как мне реализовать это в рамках базы: подсчёта длины списка, написал следующее:
def args_counter(*args):
value = []
for el in args:
value.append(el)
print("Вот, сколько Вы ввели аргументов: ", len(value))
for_count = input("Введите Ваши аргументы (через запятаю с пробелом): ")
not_yet_counted = for_count.split(", ")
args_counter(not_yet_counted)
Но почему-то при активации кода с каким бы то ни было отличным от одного кол-вом аргументов, все равно выводится 1, не понимаю, почему так. Помогите, пожалуйста.
Ответы (1 шт):
Автор решения: gil9red
→ Ссылка
Потому-что, при args_counter(not_yet_counted) вы только в первый аргумент передали список
А чтобы этот список распаковать в аргументы, используйте *, тогда в каждый аргумент функции будет передаваться элемент списка:
args_counter(*not_yet_counted)
Кст, можно сразу размер args выводить:
def args_counter(*args):
print("Вот, сколько Вы ввели аргументов:", len(args))