streamlit4c / app.py
seawolf2357's picture
Create app.py
cead143 verified
raw
history blame
2.63 kB
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}μž…λ‹ˆλ‹€.")