Я новичок в программировании и хотел бы добавить счетчик, который вычитает 1 из вашей оценки каждые две секунды. (Так что я должен ответить быстро, чтобы сделать мой счет увеличения)Таймер без нарезки в python?
chr
import random
import time
radians2 = None
ans = None
score = 0
radians1 = ['0', 'π/6', 'π/3', 'π/4', 'π/2', '2π/3', '3π/4', '5π/6', 'π', '7π/6', '4π/3', '5π/4', '3π/2', '5π/3', '7π/4', '11π/6', '2π']
while radians2 == ans or ans == None:
radians3 = (random.choice(radians1))
ans = input(radians3)
if radians3 == '0':
radians2 = 0
elif radians3 == 'π/6':
radians2 = 30
elif radians3 == 'π/3':
radians2 = 60
elif radians3 == 'π/4':
radians2 = 45
elif radians3 == 'π/2':
radians2 = 90
elif radians3 == '2π/3':
radians2 = 120
elif radians3 == '3π/4':
radians2 = 135
elif radians3 == '5π/6':
radians2 = 150
elif radians3 == 'π':
radians2 = 180
elif radians3 == '7π/6':
radians2 = 210
elif radians3 == '4π/3':
radians2 = 240
elif radians3 == '5π/4':
radians2 = 225
elif radians3 == '3π/2':
radians2 = 270
elif radians3 == '5π/3':
radians2 = 300
elif radians3 == '7π/4':
radians2 = 315
elif radians3 == '11π/6':
radians2 = 330
elif radians3 == '2π':
radians2 = 360
score = score + 1
if radians2 == ans:
print('Correct!')
print "You've got %d in a row" % score
print "You lose, the correct answer was %d" % radians2
К сожалению, если код грязный/длинный я понял, что я хочу, чтобы в основном запустить что-то вроде:
while 1:
time.sleep(2)
score = score - 1
единственная проблема заключается в том, что она не будет работать одновременно с остальной частью программы, а потоковая передача (которая, как представляется, является альтернативой) очень запутанна для меня.
Извините, но «одновременно» означает, что вам нужна резьба. И да, нарезание резьбы может сбивать с толку, но еще хуже погрузиться в нее. –
Альтернатива нарезания резьбы - mainloop - возможно, намного более запутанна. Threading не так уж сложно. –
um, не можете ли вы просто измерить время ('time.clock()' или 'datetime.datetime.now()'), прежде чем спрашивать пользователя, а затем снова? Разница в том, сколько времени им потребовалось, чтобы ответить, здесь нет необходимости в потоках или петлях. –