Как посчитать количество аргументов, вводимых в функцию при помощи *?

Есть следующее задание:

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

Я вроде бы понял, как мне реализовать это в рамках базы: подсчёта длины списка, написал следующее:

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))
→ Ссылка