Сценарий обратного или обратного отсчета не работает python - PullRequest
0 голосов
/ 14 марта 2020

Я пытаюсь создать скрипт, который будет считать, если start <стоп или обратный отсчет start <стоп. Я получаю часть вывода, но не все. Любые советы? </p>

def counter(start, stop):
x = start
if x > stop:
    return_string = "Counting down: "
    while x > stop:
        return_string += str(x)
        if x == stop:
            return_string += ","
        return return_string
else:
    return_string = "Counting up: "
    while x <= stop:
        return_string += str(x)
        if x == stop:
            return_string += ","
        break
return return_string
         print(counter(1, 10)) # Should be "Counting up: 1,2,3,4,5,6,7,8,9,10"
         print(counter(2, 1)) # Should be "Counting down: 2,1"
         print(counter(5, 5)) # Should be "Counting up: 5"

Ответы [ 2 ]

1 голос
/ 14 марта 2020

Некоторые из ошибок, которые вы сделали:

  1. Вы уже break l oop на первой итерации
  2. Вы добавляете запятую только при достижении остановки, которая является именно тогда, когда больше не нужна запятая
  3. , что if x == stop никогда не может быть истинным из-за условия завершения l oop while x > stop
  4. По той же причине stop само по себе никогда не добавляется в вывод

Следующие изменения исправят вашу функцию:

def counter(start, stop):
    x = start
    if x > stop:
        return_string = "Counting down: "
        while x > stop:
            return_string += str(x)+","
            x -= 1
    else:
        return_string = "Counting up: "
        while x < stop:
            return_string += str(x)+","
            x += 1
    return_string += str(stop)
    return return_string

>>> counter(1,2)
'Counting up: 1,2'
>>> counter(1,5)
'Counting up: 1,2,3,4,5'
>>> counter(5,1)
'Counting down: 5,4,3,2,1'
>>> counter(5,2)
'Counting down: 5,4,3,2'
0 голосов
/ 01 мая 2020
    def counter(start, stop):
        x = start
        if x > stop:
            return_string = "Counting down: "
            while x > stop:
                return_string += str(x)+","
                x -= 1
        else:
            return_string = "Counting up: "
            while x < stop:
                return_string += str(x)+","
                x += 1
        return_string += str(stop)+'"'
        return return_string
print(counter(1, 10)) # Should be "Counting up: 1,2,3,4,5,6,7,8,9,10"
print(counter(2, 1)) # Should be "Counting down: 2,1"
print(counter(5, 5)) # Should be "Counting up: 5
...