Как сделать так, чтобы l oop продолжалось только через некоторое время? (не после того, как пользователь вводит данные ()) - PullRequest
0 голосов
/ 15 января 2020

Я пытаюсь сделать игру с алфавитом. Идея программы в том, что она будет печатать по одной букве за раз из списка. В течение 20 секунд после его печати пользователь должен будет ввести столько слов, которые начинаются с этой буквы. Как только время достигнет 20 секунд, цикл while будет повторять следующую букву, и процесс будет продолжаться, пока не будет передана каждая буква.

from pytictoc import TicToc
import time, threading

t = TicToc()

letters = ['A','B','C','D','E','F','G',
           'H','I','J','K','L','M','N',
           'O','P','Q','R','S','T','U','V',
           'W','X','Y','Z']

userWords = [] #the user input will be appended here 

n = 0
while n < 26:
    t.tic()#the starting time
    print('Enter words that start with the letter: ' + letters[n])
    word = input("")
    userWords = userWords + [word]#user
    t.toc()#the ending time
    while TicToc() == 20.0:
        break
    if n == 26:
        break

#Results
print('Here are your %s words:' % len(userWords))

userDictionary = dict(zip(letters, userWords))
print(userDictionary)

Части, с которыми я борюсь, это:

  1. Куда поместить таймеры для выполнения итерации l oop по истечении 20 секунд.
  2. Как разрешить пользователю вводить более одного слова без продолжения программы до следующей буквы после ввода одного слова.

Получаются следующие результаты:

Here are your 0 words:
{'A': '', 'B': '', 'C': '', 'D': '', 'E': '', 'F': '', 'G': '', 'H': '', 'I': '', 'J': '', 'K': '', 
'L': '', 'M': '', 'N': '', 'O': '', 'P': '', 'Q': '', 'R': '', 'S': '', 'T': '', 'U': '', 'V': '', 
'W': '', 'X': '', 'Y': '', 'Z': ''}
...