Как мне игнорировать позиционные аргументы в python и вернуться к значению по умолчанию?

#python

Вопрос:

Я пишу функцию обратного отсчета, в которой у меня есть начальное число под названием «старт» и значение «шаг», которое опускается по списку на это число. Код, который я написал, отлично работает, когда выполняются оба позиционных аргумента, но я также хочу, чтобы код вернулся к значению по умолчанию 1 для «шага», если он не вызывается.

 def countdown(start, step):
    return list(range(start,0,-step))
 
 countdown(5)
TypeError: countdown() missing 1 required positional argument: 'step'
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-114-2bcc97921a23> in <module>
      3 
      4 countdown(5,1)
----> 5 countdown(5)

TypeError: countdown() missing 1 required positional argument: 'step'

 

Комментарии:

1. Пробовали ли вы def countdown(start, step=1): или что-либо другое , чего можно было бы разумно ожидать для достижения вашей заявленной цели?

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

Ответ №1:

Добавьте значение по умолчанию в подпись функции.

 def countdown(start, step=1):
    return list(range(start,0,-step))