메뉴 건너뛰기

import gradio as gr

def mbti_test(*args):
    # 1. 지표별 점수 초기화
    e_score, n_score, f_score, p_score = 0, 0, 0, 0

    # 2. 반복문을 이용한 점수 계산
    # args[0]부터 args[49]까지 들어있으므로 인덱스(i)를 이용합니다.
    for i in range(50):
        if args[i] == "예":
            if i < 12:          # 0~11번 질문 (E)
                e_score += 1
            elif i < 25:        # 12~24번 질문 (N)
                n_score += 1
            elif i < 38:        # 25~37번 질문 (F)
                f_score += 1
            else:               # 38~49번 질문 (P)
                p_score += 1

    # 3. 결과 판정 로직 (이 부분은 동일)
    mbti = ""
    mbti += "E" if e_score >= 6 else "I"
    mbti += "N" if n_score >= 7 else "S"
    mbti += "F" if f_score >= 7 else "T"
    mbti += "P" if p_score >= 6 else "J"

    return f"✨ 당신의 분석 결과는 [{mbti}] 입니다! (E:{e_score}, N:{n_score}, F:{f_score}, P:{p_score})"

# 질문 리스트 생성 (50개)
questions = [
    "처음 본 사람에게 먼저 말을 거나요?", "주말에 집에만 있으면 답답한가요?", "자기 주장이 강한 편인가요?",
    "파티나 모임에서 중심에 서는 걸 즐기나요?", "생각보다 행동이 먼저 나가나요?", "전화보다는 대면 대화가 편한가요?",
    "새로운 친구를 사귀는 게 쉬운가요?", "말하면서 생각을 정리하는 편인가요?", "주변 사람들에게 활발하다는 소리를 듣나요?",
    "혼자보다는 여럿이서 작업할 때 능률이 오르나요?", "모르는 사람과 엘리베이터에서 인사할 수 있나요?", "외부 활동이 많은 편인가요?",
    "먼 미래에 대한 상상을 자주 하나요?", "창의적이라는 말을 자주 듣나요?", "비유나 상징적인 표현을 좋아하나요?",
    "구체적인 사실보다는 가능성이 중요한가요?", "전통적인 방식보다는 새로운 방식을 시도하나요?", "멍하게 생각에 잠길 때가 많나요?",
    "영화나 책을 볼 때 결말 이후를 상상하나요?", "일의 세부사항보다는 전체적인 흐름이 중요한가요?", "반복되는 일상보다는 변화를 원하나요?",
    "현실보다는 이상을 꿈꾸나요?", "복잡한 문제를 직관적으로 이해할 때가 있나요?", "아이디어가 끊임없이 떠오르나요?",
    "사물의 이면에 숨겨진 의미를 찾나요?", "감성적인 영화를 보면 눈물이 나나요?", "논리보다는 감정이 앞설 때가 많나요?",
    "타인의 기분을 잘 파악하나요?", "비판보다는 칭찬이 더 효과적이라고 믿나요?", "결정할 때 주변 사람들의 영향을 많이 받나요?",
    "싸움을 싫어해서 손해 보더라도 참는 편인가요?", "공감 능력이 좋다는 소리를 듣나요?", "냉정한 진실보다 따뜻한 위로가 중요한가요?",
    "감사 표현을 자주 하는 편인가요?", "친구가 슬퍼하면 나도 슬픈가요?", "이성적인 판단보다는 마음이 가는 대로 하나요?",
    "상처를 쉽게 받는 편인가요?", "분위기를 화목하게 만드는 게 중요한가요?", "계획 없이 떠나는 여행을 좋아하나요?",
    "물건을 사용한 뒤 제자리에 두지 않을 때가 많나요?", "마감 기한이 닥쳐야 집중력이 폭발하나요?", "정리정돈에 큰 관심이 없나요?",
    "그때그때 기분에 따라 일정을 바꾸나요?", "융통성 있게 대처하는 게 편한가요?", "계획표를 짜는 것 자체가 스트레스인가요?",
    "책상이 다소 어질러져 있는 편인가요?", "규칙이나 정해진 절차를 따분해 하나요?", "번뜩이는 순발력으로 문제를 해결하나요?",
    "과제나 업무를 미루는 경향이 있나요?", "선택지를 항상 열어두는 것을 선호하나요?"
]

# 화면 구성
with gr.Blocks() as demo:
    gr.Markdown("# 🏆 50문항 정밀 MBTI 검사")
    gr.Markdown("모든 문항에 답변한 후 가장 아래의 '결과 보기'를 클릭하세요.")

    inputs = []
    for i, q in enumerate(questions):
        radio = gr.Radio(["예", "아니오"], label=f"{i+1}. {q}")
        inputs.append(radio)

    btn = gr.Button("내 성격 유형 확인하기", variant="primary")
    output = gr.Textbox(label="분석 결과")

    btn.click(fn=mbti_test, inputs=inputs, outputs=output)

demo.launch(share=True)
번호 제목 아이디 날짜 조회 수
66 이 게시판은 주로 문항에 대한 질문이나 의견을 제시하는데 활용하시기 바랍니다. jeongjongkwang 2025.08.10 267
65 [0] 문제를 해결한 소스코드는 올리지 말기 바랍니다. admin 2025.08.10 305
64 [9] 자꾸 틀릴 경우에 보세요. admin 2025.08.10 354
63 [89] C언어 기초 100제 #89, #90번 문제 도와주세요. [2] dbwls020306 2025.08.16 324
62 [90] 89관련 질문 옮김 [1] admin 2025.08.16 282
61 [3339] 예제 수정 요청 [1] gs23078 2025.08.18 260
60 [117] 테스트케이스가 잘못된 것 같습니다. [1] gs24032 2025.08.20 274
59 [1385] 뱀 놀이 예제 수정 요청 [1] file gs24006 2025.08.21 275
58 [3098] [3099] [3100] 수 나열하기 1,2,3 [1] gs25076 2025.08.22 269
57 [3107] 테스트 케이스 수정을 요청드립니다. [1] gs25036 2025.08.22 238
56 python 기초 100제에 대한 전체적인 수정입니다. [1] gs25076 2025.08.23 361
55 [1665] [1666] 문제 지문 수정 요청 [1] gs23078 2025.09.06 260
54 [4253] [4254] [4255] [4256] 정보과학세미나 에디토리얼 file gs23031 2025.09.11 256
53 23076유주한 문제 만들기 문제&풀이 정보세미나 에디토리얼 file gs23076 2025.09.11 217
52 Zobrist 문제 파일 file gs23003 2025.09.12 214
51 [693] 문제에서 전반적으로 수정할 사항이 많습니다. [1] gs25001 2025.09.20 219
50 대회 2_2 테스트케이스 문의 file gs25049 2025.09.21 148
49 [4257] [4258] [4259] [4260] 정보과학세미나 에디토리얼 file gs23061 2025.09.22 146
48 [4262] [4263] [4264] 정보과학세미나 에디토리얼 file gs23106 2025.09.24 165
47 [2657] secret mhlee92 2025.09.25 2
위로