Skip to content
파이썬
2023.10.04 23:29

파이썬 랜덤으로 시험문제 풀기

조회 수 75590 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

파이썬 랜덤으로 시험문제 풀기

 

시험문제를 1-3.png 2-2.png 3-5.png . . . 

로 저장하는데,

 

앞의 번호와 -뒤에 숫자는 문제의 정답번호를 말하는 것입니다.

예를들어 1-3.png 는 1번문제의 정답은 3 입니다.

문제번호를 여러개를 저장한 다음 코딩을 실행하면 랜덤으로 문제가 추출됩니다.

 

1-3.png

 

2-1.png

 

3-3.png

 

4-4.png

 

5-5.png

 

6-2.png

 

7-3.png

 

8-1-모세혈관.2-산소.3-교환.png

 

 


import os
import random
from PIL import Image, ImageTk
import tkinter as tk
import pygame
 
# 이미지 폴더 경로
image_folder = r'E:\python\py_code\공\data\과학'
 
# 이미지 파일 목록 생성
image_files = [f for f in os.listdir(image_folder) if f.endswith('.png')]
 
# 하단 GUI 요소를 미리 생성
window = tk.Tk()
window.title("문제 맞추기 게임")
 
# 이미지 표시용 라벨
image_label = tk.Label(window)
image_label.pack(pady=10)
 
# 이미지와 확인 버튼을 포함하는 프레임 생성
frame = tk.Frame(window)
frame.pack()
 
question_label = tk.Label(frame, text="")
question_label.grid(row=0, column=0)
 
entry = tk.Entry(frame)
entry.grid(row=0, column=1, padx=10)
 
result_label = tk.Label(frame, text="")
result_label.grid(row=1, columnspan=2)
 
# Pygame 초기화 및 MP3 파일 경로 설정
pygame.init()
correct_sound = pygame.mixer.Sound(r'E:\python\py_code\공\ok.mp3')
incorrect_sound = pygame.mixer.Sound(r'E:\python\py_code\공\nono.mp3')
 
def play_correct_sound():
    correct_sound.play()
 
def play_incorrect_sound():
    incorrect_sound.play()
 
def show_random_question():
    # 랜덤하게 이미지 선택
    random_image = random.choice(image_files)
    image_path = os.path.join(image_folder, random_image)
   
    # 이미지 표시
    img = Image.open(image_path)
    img = img.resize((400, 400))
    img = ImageTk.PhotoImage(img)
    image_label.config(image=img)
    image_label.image = img
   
    # 정답 추출
    answer = int(random_image.split('-')[1].split('.')[0])
   
    # 사용자로부터 정답 입력 받기
    def check_answer(event=None):
        user_answer = int(entry.get())
        if user_answer == answer:
            result_label.config(text="정답을 맞췄어요.")
            play_correct_sound()  # 정답 소리 재생
            show_random_question()
        else:
            result_label.config(text="다시 한번 풀어보세요.")
            play_incorrect_sound()  # 오답 소리 재생
   
    # 엔터 키로 정답 확인
    entry.bind("<Return>", check_answer)
   
    # 하단 GUI 업데이트
    entry.delete(0, tk.END)
    result_label.config(text="")
   
    # 하단 GUI 생성
    question_label.config(text="이미지에 나타난 숫자는 무엇일까요?")
   
    # 확인 버튼 생성 (오른쪽에 위치)
    check_button = tk.Button(frame, text="확인", command=check_answer)
    check_button.grid(row=0, column=2)
 
# 초기 문제 표시
show_random_question()
 
# Tkinter 이벤트 루프 시작
window.mainloop()
 
# pygame 종료
pygame.mixer.quit()

 


 

로그인 후 댓글쓰기가 가능합니다.

?

List of Articles
번호 분류 제목 날짜 조회 수
211 주식 한창산업 - 아연분말,인산아연,제올라이트,바나듐 생산업체 2023.04.13 38542
210 주식 티피씨글로벌 차트가 너무좋네. 2023.04.16 38538
209 주식 최강 한동훈주 2023.04.13 36825
208 주식 노무현 시절 키코사태와 너무도 닮은 라임펀드 부실사태 file 2020.01.17 26108
207 주식 [010640] 진양폴리 - 5월 핵 승부처.. 텐베거 품절주 2 2022.05.03 21446
206 주식 주식투자, 출산 장려 관련주에 대한 관심을 가질때 2009.08.09 18355
205 주식 KCI 기업분석 및 매매전략 2009.07.01 16171
204 주식 제이콤이 에스티큐브의 똥꾸녕만 쫒아다니는 이유 2009.08.12 15939
203 주식 버블과 붕괴 1 2010.12.22 13963
202 주식 [014470] 부방 - 성남시청--압색....전운고조 2022.05.03 13288
201 주식 게임처럼 주식투자하기 - SK브로드밴드 1 file 2009.08.03 12840
200 주식 MCTT(엠씨티티)와 코어포올 합병을 이의제기하는 에스티씨라이프 2 2 2009.08.28 12836
199 주식 게임처럼 주식투자하기 - 솔고바이오 2009.07.30 12614
198 주식 [075970] 동국알앤에스 2022.05.03 12457
197 주식 게임처럼 주식투자하기 - 젠트로 2009.07.30 12249
196 주식 X-ing API 1 3 2010.10.28 12076
195 주식 게임처럼 주식투자하기 - SNH 1 file 2009.07.02 11809
194 주식 수렴끝 확산시작 차트흐름 읽기 2 2009.07.06 11796
193 주식 주식시장의 바닥과 꼭지의 뚜렷한 조짐현상 2009.09.10 11735
192 주식 주식투자 수익내기 이런방법도 있다. 1 2009.08.19 11500
Board Pagination Prev 1 2 3 4 5 ... 11 Next
/ 11

http://urin79.com

우린친구블로그

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소