Python

[파이썬] random, time 모듈로 타자치는데 걸린 시간 계산하기

paintover23 2023. 10. 20. 18:19
728x90

 

random 모듈은 파이썬 예제에서 자주 활용되는 모듈 중 하나이다. 이외에도 time 모듈이 있는데, 두 가지  모듈과 choice() 함수를 활용하여 타자를 입력받는 데 걸린 총 시간을 계산하는 프로그램을 만들어 보자.

import random
import time

w = ['cat', 'dog', 'fox', 'monkey', 'panda', 'frog', 'snake']
n = 1  # 통과한 문제 개수
print("타자게임이 준비되면 enter를 치세요.")
input()
startTime = time.time()
q = random.choice(w)
while n <= 5:  # 5문제를  맞힐때까지 지속함
    print("*문제", n)
    print(q)
    x = input()
    if q == x:
        print("[통과!]")
        n = n+1
        q = random.choice(w)
    else:
        print("[오타! 다시도전]")
endtime = time.time()
et = endtime - startTime
et = format(et, ".2f")
print("타자시간:", et, "초")

 

사용자로부터 입력받은 input을 x로 두고, 이것이 word의 스펠링과 정확히 일치하면 통과 후 다음 랜덤 단어를 띄운다. 미통과 시에는 통과할 때까지 반복하는 로직을 구현하였다. 5문제를 통과하는 데 걸리는 시간을 기준으로, input 시작시점 부터 while 문을 빠져나간 시점에 각각 time.time을 활용해 시작과 종료시간을 계산하였다.

 

 

 

(참고) choice() 함수

choice 함수는 인자로 순회하는 것이면 모두 받을 수 있다.(튜플, 문자열, 집합, 딕셔너리) 다만, 집합과 딕셔너리는 그 형을 리스트로 먼저 변환한 다음 choice 함수를 적용해야 에러가 나지 않는다.

import random

# 튜플
my_tuple = (1, 2, 3, 4, 5)
random_element1 = random.choice(my_tuple)
print(random_element1) #4

# 문자열
my_string = "hello, world"
random_char = random.choice(my_string)
print(random_char) #w
# 집합과 딕셔너리는 list 형식으로 먼저 바꾸고 실행

# 집합
my_set = {10, 20, 30, 40, 50}
random_element = random.choice(list(my_set))
print(random_element) # 10

# 딕셔너리
my_dic = {'a': 10, 'b': 20, 'c': 30, 'd': 40, 'e': 50}
random_element2 = random.choice(list(my_dic.keys()))
print(random_element2) # d

 

 

 

728x90
반응형