Как выбирать 4 значения из списка с разницей в 10 секунд?

Рейтинг: 0Ответов: 1Опубликовано: 20.01.2023

Я хочу сделать так, чтобы при помощи random.sample выбиралось 4 значения из списка. Эти значения выводятся мне с разницей в 10 секунд, но за эти 10 секунд я должен успеть ввести ответное слово и проверить есть ли такое значение в другом списке. Объяснил я немного запутанно, но вот код:

import time
import random
Russian = ['песок','доверие','дикий','расти','древний','пустиня','пыль']
English = [ "sand","dust","trust","wild","grow","ancient","desert" ]
v = int(input('начнём?'))

if v == 1:
    r = print(random.sample(Russian,k=4,counts=None))
    diktant = input('Введите слово/')
    for i1 in English:
        if i1 == diktant:
            print('+')
        else:
            print('-')
elif v == 2:
    r = print(random.sample(English,k=4,counts=None))
    diktant = input('Введите слово/')
    for i2 in Russian:
        if i2 == diktant:
            print('+')
        else:
            print('-')
print (r)

между переменной r и переменной dictant нужно как-то впихнуть

for i in r:
    time.sleep(10)
    print(i) 

Какие будут идеи? Мне важно просто понять, как это реализовать. Думал всё оформить через for range(4) а в counts вывести те значения, которые цикл мне уже показал. Но может произойти ошибка из-за зацикленности, хотя может я просто неправильно себе продумал и можно по другому.

Ответы

▲ 1

Думаю что имелось ввиду что-то этого типа:

import threading
import time
import random

RUSSIAN_WORDS = ['песок', 'доверие', 'дикий', 'расти', 'древний', 'пустиня', 'пыль']
ENGLISH_WORDS = ["sand", "dust", "trust", "wild", "grow", "ancient", "desert"]


def get_answer():
    global answer

    answer = None

    answer = input("Введите слово: ")


test_version = int(input('Введите версию теста: '))

if test_version == 1:
    random_words = random.sample(RUSSIAN_WORDS, k=4)
    for word in random_words:
        total_seconds = 0

        print(word)

        input_thread = threading.Thread(target=get_answer)
        input_thread.start()

        while total_seconds < 10:
            if answer is None:
                time.sleep(1)

                total_seconds += 1
            else:
                break

        if answer is not None:
            if answer in ENGLISH_WORDS:
                print('Правильно!')
            else:
                print('Неправильно!')
        else:
            print("Вы не успели дать ответ!")
elif test_version == 2:
    random_words = random.sample(ENGLISH_WORDS, k=4)
    for word in random_words:
        total_seconds = 0

        print(word)

        input_thread = threading.Thread(target=get_answer)
        input_thread.start()

        while total_seconds < 10:
            if answer is None:
                time.sleep(1)

                total_seconds += 1
            else:
                break

        if answer is not None:
            if answer in RUSSIAN_WORDS:
                print('Правильно!')
            else:
                print('Неправильно!')
        else:
            print("Вы не успели дать ответ!")

Не стал раскидывать все по методам, думаю с этим сами справитесь)