Как начать новый цикл с конечного результата предыдущего цикла - PullRequest
0 голосов
/ 26 сентября 2019

У меня есть следующий код в Python:

Если я запускаю код как есть, если я ввожу число 9, он будет запускать список чисел от 0 до 8. И каждый раз, когда я перезапускаюкод, он будет автоматически начинаться с 0. Какой дополнительный код мне нужно, чтобы запустить его из конечного результата предыдущего цикла (т.е. я начинаю с 9, а затем, когда я иду с 8 во второй раз, он запускаетцикл из 8, поскольку это был конечный результат предыдущего цикла)?


while user_play == "y":

    # Ask the user how many numbers to loop through
    ask_user = input("How many numbers would you like to loop? ")


    # Loop through the numbers. (Be sure to cast the string into an integer.)
    for number in range(0,int(ask_user)):

        # Print each number in the range
        print(number)


    # Once complete, ask the user if they would like to continue
    user_play = input("Would you like to continue? ")```

Ответы [ 2 ]

1 голос
/ 26 сентября 2019

Вместо жесткого кодирования начала range(0,int(ask_user)) с 0, используйте переменную start, инициализированную в 0 и обновляемую в каждом цикле последним значением.

start = 0  # initialize at 0
while user_play == "y":

    # Ask the user how many numbers to loop through
    ask_user = input("How many numbers would you like to loop? ")


    # Loop through the numbers. (Be sure to cast the string into an integer.)
    for number in range(start, start + int(ask_user)): 

        # Print each number in the range
        print(number)
        start = number # update start


    # Once complete, ask the user if they would like to continue
    user_play = input("Would you like to continue? ")```
1 голос
/ 26 сентября 2019

Вы были близки.Требуются только два изменения.

Изменения

1) За пределами цикла while установите начальное значение number в ноль.

2) Измените диапазон на range(number, number+int(ask_user))

Результат

number = 0
while user_play == "y":
    ask_user = input("How many numbers would you like to loop? ")
    for number in range(number, number + int(ask_user)):
        print(number)
    user_play = input("Would you like to continue? ")

Как это работает

Идея состоит в том, что число всегда означает "где вы находитесь"в цикле "и что ask_user представляет, сколько еще шагов должно быть выполнено. число начинается с нуля и запоминается при увеличении шагов.

Вариации

В зависимости от того, хотите ли вы повторить шаг, рассмотрите возможность добавления одного к номер .

...