본문 바로가기

공공 데이터

MBTI 테스트용 파이선 코드

반응형

 

MBTI 테스트용 파이선 코드

# MBTI Test Program
def mbti_test():
    print("MBTI 테스트를 시작합니다.\n각 질문에 대해 '1'(예) 또는 '2'(아니오)로 답변하세요.\n")
   
    questions = [
        "새로운 친구를 사귀는 것이 쉽다.",
        "결정을 내릴 때 논리와 사실을 우선시한다.",
        "조직적이고 체계적인 환경을 선호한다.",
        "큰 그룹보다는 소규모 모임을 더 좋아한다.",
        "계획을 세우기보다는 즉흥적으로 행동하는 것을 좋아한다.",
        "다른 사람의 감정에 민감하다.",
        "현실적인 문제보다 이론적이고 추상적인 개념에 더 관심이 있다.",
        "다른 사람들을 격려하고 도와주는 것을 좋아한다."
    ]
   
    scores = {'E': 0, 'I': 0, 'S': 0, 'N': 0, 'T': 0, 'F': 0, 'J': 0, 'P': 0}

    # 질문을 돌면서 사용자 입력을 받음
    for i, question in enumerate(questions):
        print(f"Q{i+1}. {question}")
        answer = input("답변: ").strip()
        while answer not in ['1', '2']:
            print("잘못된 입력입니다. '1' 또는 '2'로 답변해 주세요.")
            answer = input("답변: ").strip()
       
        # 답변에 따라 점수 계산
        if i % 2 == 0:  # Even index questions
            if answer == '1':
                scores['E'] += 1
            else:
                scores['I'] += 1
        else:  # Odd index questions
            if answer == '1':
                scores['S'] += 1
            else:
                scores['N'] += 1
   
    # 점수에 따라 MBTI 유형 결정
    mbti_type = ''
    mbti_type += 'E' if scores['E'] > scores['I'] else 'I'
    mbti_type += 'S' if scores['S'] > scores['N'] else 'N'
    mbti_type += 'T' if scores['T'] > scores['F'] else 'F'
    mbti_type += 'J' if scores['J'] > scores['P'] else 'P'

    print(f"\n당신의 MBTI 유형은 {mbti_type} 입니다.")

if __name__ == "__main__":
    mbti_test()

 

 

MBTI Test 결과

 

반응형