Для секвенирования цикла по модулю - PullRequest
0 голосов
/ 23 мая 2019

Я новичок в программировании, только начал изучать python, и у меня нет большого опыта работы с оператором по модулю.Я хотел бы ввести определенное количество секунд в терминал для обратного отсчета от использования цикла for.Через каждые десять секунд я хотел бы напечатать первый ярлык.После того, как будет напечатана этикетка 1, я бы хотел, чтобы этикетка 2 была напечатана через две секунды.Шаблон должен продолжаться в том порядке, пока не закончится все время.Я пробовал много разных вещей, чтобы заставить это работать и чувствую, что упускаю что-то простое.Когда я избавляюсь от метки два и запускаю код, я могу настроить метку 1 на печать каждые десять или тринадцать секунд, если захочу.С учетом вышесказанного, я чувствую, что метка 1 каким-то образом сбрасывает метку 2, и мне нужно выполнить какую-то математику для метки 2, чтобы сработать через две секунды после метки 1, или как-то мне нужно установить метку 2 на ноль, чтобы после того, как она считается додвенадцать это остановится и начнется снова без добавления дополнительных двух секунд?Кроме того, я планирую добавить другие метки, которые будут повторяться через определенное количество секунд или итераций, но я решил, что сначала я начну с двух, чтобы было проще.

import time

seconds = int(input("\n\n\tEnter Seconds: "))

for i in range(seconds):
    print ("\n\t" + (str(seconds - i)))
    time.sleep(1)

    if (i % 10 == 0):
        print ("\t\t\tShow Label 1")
        print (i)

    if (i % 12 == 0):
        print ("\t\t\tShow Label 2")
        print (i)

1 Ответ

3 голосов
/ 23 мая 2019

Как написано в настоящее время (если вы исправите отступ), этикетка 1 будет напечатана на 0, 10, 20, 30…, а этикетка 2 будет напечатана на 0, 12, 24, 36….Другими словами, с правой стороны % важно то, как часто оно повторяется.

Звучит так, как будто вы хотите, чтобы этикетка 2 также печаталась каждые десять секунд, но с задержкой на две.В этом случае вам все еще нужна десятка справа от %, так как она повторяется каждые десять секунд.Просто измените то, с чем вы сравниваете:

if i%10 == 2:

Вы можете думать об этом как о работе «на шаге №2 десятиступенчатого цикла».Еще один способ визуализации оператора модуля - посмотреть на циферблат: «1:00» означает hours%12 == 1, а «3:00» означает hours%12 == 3.

...