Как выбирать 4 значения из списка с разницей в 10 секунд?
Я хочу сделать так, чтобы при помощи 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("Вы не успели дать ответ!")
Не стал раскидывать все по методам, думаю с этим сами справитесь)