저는 프로그래밍에 익숙하지 않고 매 2 초마다 점수에서 1을 뺀 카운터를 추가하고 싶습니다. 코드가 지저분한 경우타이머는 파이썬에서 스레딩하지 않습니까?
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
을 유일한 문제는 나머지 프로그램과 동시에 실행되지 않을 것이고 스레딩 (대안 인 것으로 보이는)이 나에게 매우 혼란 스럽다는 것입니다.
"동시에"는 스레딩이 필요하다는 의미입니다. 그리고 예, 스레딩은 혼란 스러울 수 있지만, 스레딩은 혼란 스럽습니다. –
스레딩의 대안 - 메인 루프 -는 아마도 훨씬 더 혼란 스럽습니다. 스레딩은 그다지 어렵지 않습니다. –
음, 사용자에게 묻기 전에 시간 ('time.clock()'또는'datetime.datetime.now()')을 측정 할 수 없습니까? 차이점은 답변을 얻는 데 걸린 시간이므로 스레드 또는 루프가 필요하지 않습니다. –