| 일 | 월 | 화 | 수 | 목 | 금 | 토 | 
|---|---|---|---|---|---|---|
| 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
													
											
												
												- Sheety
- 계산기
- Endpoint
- 상태코드
- 쉬티
- 웹페이지
- API
- 프로젝트
- 파이썬
- SMTP
- HTML
- Tequila
- Python
- API플랫폼
- class
- 최저가
- phython
- 웹크롤링
- ndarray
- Game
- 유데미
- twilio
- 부트스트랩
- 게임
- 오류
- udemy
- 프로그램
- 파싱
- Pygame
- HTTP
													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
			
		
	
               
           
					
					
					
					
					
					
				 
								 
								 
								