File size: 2,625 Bytes
cead143
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
32
33
34
35
36
37
38
import streamlit as st

# MBTI 질문과 선택지 μ„€μ •
questions = [
    ("당신은 μƒˆλ‘œμš΄ μ‚¬λžŒλ“€μ„ λ§Œλ‚˜λŠ” 것을 μ’‹μ•„ν•˜λ‚˜μš”?", ("예", "μ•„λ‹ˆμ˜€")),
    ("ꡬ체적인 사싀을 μ„ ν˜Έν•˜λ‚˜μš”, μ•„λ‹ˆλ©΄ κ°€λŠ₯성에 λŒ€ν•΄ μƒκ°ν•˜λŠ” 것을 μ„ ν˜Έν•˜λ‚˜μš”?", ("ꡬ체적인 사싀", "κ°€λŠ₯μ„±")),
    ("결정을 내릴 λ•Œ 논리와 이성을 더 μ€‘μ‹œν•˜λ‚˜μš”, μ•„λ‹ˆλ©΄ 개인의 감정과 κ°€μΉ˜λ₯Ό 더 μ€‘μ‹œν•˜λ‚˜μš”?", ("논리와 이성", "개인의 감정과 κ°€μΉ˜")),
    ("κ³„νšμ„ μ„Έμš°λŠ” 것을 μ„ ν˜Έν•˜λ‚˜μš”, μ•„λ‹ˆλ©΄ μœ μ—°ν•˜κ²Œ λŒ€μ²˜ν•˜λŠ” 것을 μ„ ν˜Έν•˜λ‚˜μš”?", ("κ³„νš μ„Έμš°κΈ°", "μœ μ—°ν•˜κ²Œ λŒ€μ²˜ν•˜κΈ°")),
    ("ν™œλ™μ μΈ νœ΄κ°€λ₯Ό μ„ ν˜Έν•˜λ‚˜μš”, μ•„λ‹ˆλ©΄ μ‘°μš©ν•œ νœ΄κ°€λ₯Ό μ„ ν˜Έν•˜λ‚˜μš”?", ("ν™œλ™μ μΈ νœ΄κ°€", "μ‘°μš©ν•œ νœ΄κ°€")),
    ("사싀을 λ°”νƒ•μœΌλ‘œ μ΄μ•ΌκΈ°ν•˜λŠ” 것을 μ„ ν˜Έν•˜λ‚˜μš”, μ•„λ‹ˆλ©΄ 상상λ ₯을 λ°”νƒ•μœΌλ‘œ μ΄μ•ΌκΈ°ν•˜λŠ” 것을 μ„ ν˜Έν•˜λ‚˜μš”?", ("사싀 바탕", "상상λ ₯ 바탕")),
    ("곡정함이 더 μ€‘μš”ν•˜λ‚˜μš”, μ•„λ‹ˆλ©΄ μΉœμ ˆν•¨μ΄ 더 μ€‘μš”ν•˜λ‚˜μš”?", ("곡정함", "μΉœμ ˆν•¨")),
    ("일을 λλ‚΄λŠ” 것이 더 λ§Œμ‘±μŠ€λŸ½λ‚˜μš”, μ•„λ‹ˆλ©΄ 일을 μ‹œμž‘ν•˜λŠ” 것이 더 λ§Œμ‘±μŠ€λŸ½λ‚˜μš”?", ("일 끝내기", "일 μ‹œμž‘ν•˜κΈ°")),
    ("전톡적인 방법을 μ„ ν˜Έν•˜λ‚˜μš”, μ•„λ‹ˆλ©΄ μƒˆλ‘œμš΄ 방법을 μ‹œλ„ν•˜λŠ” 것을 μ„ ν˜Έν•˜λ‚˜μš”?", ("전톡적인 방법", "μƒˆλ‘œμš΄ 방법")),
    ("κ³„νšμ— 따라 ν–‰λ™ν•˜λŠ” 것을 μ’‹μ•„ν•˜λ‚˜μš”, μ•„λ‹ˆλ©΄ spontaneityλ₯Ό μ„ ν˜Έν•˜λ‚˜μš”?", ("κ³„νšμ— 따라", "spontaneity")),
]

# MBTI 차원별 점수 계산을 μœ„ν•œ μ΄ˆκΈ°ν™”
scores = {"E": 0, "I": 0, "S": 0, "N": 0, "T": 0, "F": 0, "J": 0, "P": 0}

# 질문과 선택지λ₯Ό 좜λ ₯ν•˜κ³  μ‚¬μš©μžμ˜ 응닡을 기둝
for i, (question, options) in enumerate(questions, start=1):
    answer = st.radio(question, options, key=f"question_{i}")
    if answer:
        # μ‚¬μš©μžμ˜ 선택에 따라 점수 μ—…λ°μ΄νŠΈ (이 뢀뢄은 μ˜ˆμ‹œλ‘œ κ°„λ‹¨ν•˜κ²Œ κ΅¬ν˜„λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€)
        if i % 4 == 1:
            scores["E" if answer == options[0] else "I"] += 1
        elif i % 4 == 2:
            scores["S" if answer == options[0] else "N"] += 1
        elif i % 4 == 3:
            scores["T" if answer == options[0] else "F"] += 1
        elif i % 4 == 0:
            scores["J" if answer == options[0] else "P"] += 1

if st.button("결과 보기"):
    # MBTI μœ ν˜• κ²°μ •
    mbti_type = "".join([max(pair, key=lambda x: scores[x]) for pair in [("E", "I"), ("S", "N"), ("T", "F"), ("J", "P")]])
    st.write(f"λ‹Ήμ‹ μ˜ MBTI μœ ν˜•μ€ {mbti_type}μž…λ‹ˆλ‹€.")