#python #python-3.x
#python #python-3.x
Вопрос:
Я попробовал некоторый код, но не получил удовлетворительного ответа. Вывод кода должен содержать точное количество аргументов с сайта вызова:
>>> def Hello(PitU,*V):
print("you passed" , PitU,"Arguments")
for Pit in V:
print(Pit)
#case1
>>> Hello(3,"one","two","three")
you passed 3 Arguments
one
two
three
#case2
>>> Hello(3,"one","two")
you passed 3 Arguments
one
two
#case3
>>> Hello(3,"one","two","three","four")
you passed 3 Arguments
one
two
three
four
>>>
Я ожидаю, что результат будет:
A. case-1
you passed 3 Arguments
one
two
three
B. case-2
error
C. case-3
error
instead of
Case1
you passed 3 Arguments
one
two
three
case2
you passed 3 Arguments
one
two
case3
you passed 3 Arguments
one
two
three
four
Комментарии:
1. Для дальнейшего использования, после вставки кода в вопрос (или ответ), выберите код и либо введите Ctrl K, либо нажмите
{}
кнопку в интерфейсе редактора, чтобы правильно отформатировать код. Я исправил основной блок для вас здесь.2. Как вы думаете, почему значение первого аргумента в любом случае связано с
*
параметром?3. Если вам не нужно указывать, сколько аргументов должно следовать, вы можете опустить параметр. Затем, если вы хотите напечатать, сколько их было, просто измените свой код на
print("you passed" , len(V),"Arguments")
Ответ №1:
Для этого вам нужно поставить галочку самостоятельно, python не сделает этого за вас.
def Hello(PitU, *V):
if len(V) != PitU:
print("error")
return
print("you passed", PitU, "Arguments")
for Pit in V:
print(Pit)
Ответ №2:
Поскольку PITu — это не количество аргументов, которые вы должны передать, это просто еще один аргумент, который вы туда вводите. в технике python нет ничего плохого, вы просто неправильно поняли ее концепцию.