일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Pygame
- HTML
- 계산기
- 유데미
- ndarray
- 최저가
- 웹페이지
- 상태코드
- API플랫폼
- 오류
- 파싱
- API
- 쉬티
- 웹크롤링
- Game
- Python
- udemy
- 파이썬
- class
- twilio
- 프로젝트
- 게임
- 부트스트랩
- HTTP
- SMTP
- Sheety
- phython
- Endpoint
- 프로그램
- Tequila
Archives
- Today
- Total
데이터 분석가
파이썬 타이핑 테스트 프로젝트(Udemy Final Project 4) 본문
안녕하세요 !
이번 시간에는 타자 검정 테스트를 테스트해주는 GUI 프로그램을 만들어 보겠습니다 !
뭔가 익숙한 화면이 보이실거에요 !
이처럼 파이썬 코드로도 타자 검정을 할 수 있습니다 !
import tkinter as tk # GUI 라이브러리 import
import time # 시간 계산을 위한 라이브러리 import
import random # 무작위 선택을 위한 라이브러리 import
class TypingTestApp:
def __init__(self):
self.window = tk.Tk() # GUI 창 생성
self.sample_texts = [ # 샘플 텍스트 리스트
"The quick brown fox jumps over the lazy dog.",
"Pack my box with five dozen liquor jugs.",
"How vexingly quick daft zebras jump!",
"Bright vixens jump; dozy fowl quack.",
"Sphinx of black quartz, judge my vow."
]
self.sample_text = random.choice(self.sample_texts) # 샘플 텍스트 랜덤 선택
self.start_time = None
self.end_time = None
def run(self):
self._build_gui() # GUI 구축
self.window.mainloop() # GUI 실행
def _build_gui(self):
self.window.title("Typing Speed Test App") # 창 제목 설정
# 샘플 텍스트를 출력하는 라벨 생성
self.sample_label = tk.Label(self.window, text=self.sample_text)
self.sample_label.pack()
# 사용자 입력을 받는 텍스트 입력창 생성
self.entry = tk.Entry(self.window)
self.entry.pack()
# 시작 버튼 생성
self.start_button = tk.Button(self.window, text="Start", command=self.start)
self.start_button.pack()
# 종료 버튼 생성
self.end_button = tk.Button(self.window, text="End", command=self.end)
self.end_button.pack()
# 결과를 출력하는 라벨 생성
self.result_label = tk.Label(self.window, text="")
self.result_label.pack()
def start(self): # 시작 함수 정의
self.entry.delete(0, tk.END) # 입력창 초기화
self.sample_text = random.choice(self.sample_texts) # 새 샘플 텍스트 랜덤 선택
self.sample_label.config(text=self.sample_text) # 샘플 텍스트 라벨에 출력
self.start_time = time.time() # 시작 시간 기록
def end(self): # 종료 함수 정의
self.end_time = time.time() # 종료 시간 기록
typed_text = self.entry.get() # 사용자 입력 받기
# 입력이 샘플 텍스트와 일치하는지 확인
if typed_text == self.sample_text:
# 일치하면, 타이핑 속도 계산
elapsed_time = self.end_time - self.start_time
wpm_speed = len(self.sample_text.split()) / (elapsed_time / 60)
self.result_label.config(text=f"Your speed: {wpm_speed:.2f} words per minute.")
else:
# 일치하지 않으면, 오류 메시지 출력
self.result_label.config(text="Incorrect text. Try again.")
if __name__ == "__main__":
app = TypingTestApp() # 앱 객체 생성
app.run() # 앱 실행
다음과 같이 코드를 만들어 볼 수 있습니다 !
저는 샘플을 5가지로만 설정을 했는데 조금 더 많은 텍스트를 사용할 수 있고,
버튼의 크기를 조절하면 더 긴 문장으로 테스트 가능합니다 !
해당 코드를 정확하게 입력하여 실행하면 성공적으로 실행 가능합니다 !
긴 코드를 읽어주셔서 감사합니다 !
'유데미 부트캠프 프로젝트(Final)' 카테고리의 다른 글
노트북 하기 좋은 카페 찾기 프로젝트(Udemy Final Project 6) (0) | 2023.06.27 |
---|---|
파이썬 breakout game 프로젝트(Udemy Final Project 5) (0) | 2023.06.26 |
파이썬 이미지 워터마크 프로젝트(Udemy Final Project 3) (0) | 2023.06.01 |
파이썬 틱택토 프로젝트(Udemy Final Project 2) (0) | 2023.05.31 |
파이썬 웹 개발 프로젝트(Udemy Final Project 1) (0) | 2023.05.30 |
Comments