Не удалось получить воссозданную функцию диапазона для печати списка с отрицательным шагом. Он также печатает дополнительный номер - PullRequest
0 голосов
/ 11 октября 2019

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

def myRange(start = 0, stop = 0, step = 1):
    number = start
    number_list = []
    if start == stop:
        return []
    while number <= stop:
        number_list.append(number)
        number = number + step
    return number_list

Это тестовые строки для функции. Все, кроме последней, работают.

print(myRange(2,4, 6))
print(myRange(2,4, 1))
print(myRange(0,5,1))
print(myRange(4,1,-1))

myRange (4,1, -1) печатает пустой список вместо [4,3,2]

Это текущий вывод

[2]
[2, 3, 4]
[0, 1, 2, 3, 4, 5]
[]

Это правильный вывод

[2]
[2, 3]
[0, 1, 2, 3, 4]
[4, 3, 2]

1 Ответ

0 голосов
/ 11 октября 2019

используйте , если оператор

def myRange(start = 0, stop = 0, step = 1):
    number = start
    number_list = []
    if step > 0 :
        while number <= stop:
            number_list.append(number)
            number = number + step
    elif step < 0:
        while number >= stop:
            number_list.append(number)
            number = number + step
    return number_list
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...