python自制MBTI 16型人格测试1.0

  1. 什么是 16 型人格测试

    • 16 型人格测试也叫 MBTI(Myers - Briggs Type Indicator)测试,它是一种基于心理学理论的人格测评工具。这个理论最初是由凯瑟琳・库克・布里格斯(Katharine Cook Briggs)和她的女儿伊莎贝尔・布里格斯・迈尔斯(Isabel Briggs Myers)在 20 世纪 40 年代开发的。它的理论基础是瑞士心理学家卡尔・荣格(Carl Jung)的心理类型理论。
    • MBTI 通过了解人们在四个维度上的偏好,将人格类型分为 16 种。这四个维度分别是:外向(E) - 内向(I)、感觉(S) - 直觉(N)、思考(T) - 情感(F)、判断(J) - 感知(P)。

2. 制作

      代码中一共包括100个问题,用户可以输入-2,-1,0,1,2分别表示非常不赞同。不赞同,中立,赞同,非常赞同。题目按照随机排列。仅是最初版本,算法简陋。结果仅供参考,更详细测试请到专业的网站,这里仅仅提供最简单的积分制:

3.完整源码 

import random

print("欢迎参加16型人格测试!以下是测试规则:")
print("你将会按随机顺序看到100个题目,请根据自己的真实想法作答。")
print("输入 -2表示非常不认同,输入 -1表示不认同,输入0表示中立,输入1表示赞同,输入2表示非常赞同。")

# 四个维度的计分变量,初始化为0
extroversion_introversion = 0  # 外向(E) - 内向(I)
sensing_intuition = 0  # 实感(S) - 直觉(N)
thinking_feeling = 0  # 思考(T) - 情感(F)
judging_perceiving = 0  # 判断(J) - 感知(P)

# 构建100个题目的列表,每个题目以元组形式存储(题目编号,题目内容,所属维度)
questions = [
    (1, "你是否更喜欢在社交场合中与他人互动,而不是独自思考和反省?", "EI"),
    (2, "你是否认为做决策时依据事实和逻辑比考虑他人的情感和意见更重要?", "TF"),
    (3, "你是否更喜欢有明确的计划和安排,而不是灵活适应变化的情况?", "JP"),
    (4, "在工作中,你是否更倾向于与他人合作,而不是独立完成任务?", "EI"),
    (5, "你是否更关注细节和具体事实,而不是整体和宏观的观点?", "SN"),
    (6, "你是否更喜欢通过直接的沟通方式表达自己,而不是间接和含蓄的方式?", "EI"),
    (7, "在压力下,你是否更倾向于迅速采取行动,而不是冷静思考后再行动?", "JP"),
    (8, "你是否更喜欢按照既定规则和程序工作,而不是自由发挥和创新?", "JP"),
    (9, "当与他人发生冲突时,你是否更倾向于追求和谐与妥协,而不是坚持自己的立场和观点?", "TF"),
    (10, "你是否更喜欢集中精力完成一项任务,而不是同时处理多个任务?", "JP"),
    (11, "在社交场合中,你是否更喜欢与大群人交往,而不是与少数亲近的人深入交流?", "EI"),
    (12, "你是否更倾向于按照自己的方式工作,而不是遵循他人的指示和规定?", "JP"),
    (13, "你是否更注重自己的感受和情感,而不是他人的需求和感受?", "TF"),
    (14, "你是否更喜欢通过直接的经验来学习,而不是通过理论和抽象的概念来学习?", "SN"),
    (15, "你是否更倾向于在公开场合表达自己的意见,而不是在私下与亲近的人分享?", "EI"),
    (16, "你是否更喜欢按照既定计划和时间表完成任务,而不是灵活应对和调整?", "JP"),
    (17, "你是否更注重事实和现实,而不是可能性和潜力?", "SN"),
    (18, "你是否更倾向于通过逻辑和分析来解决问题,而不是考虑他人的情感和意见?", "TF"),
    (19, "在工作中,你是否更喜欢与他人合作,而不是独立完成任务?", "EI"),
    (20, "你是否更关注细节和具体的事实,而不是整体和宏观的观点?", "SN"),
    (21, "与陌生人交流,是否会让你觉得兴奋,有活力?", "EI"),
    (22, "你是否认为公正比仁慈更好些?", "TF"),
    (23, "你是否认为自己是一个好的善谈者?", "EI"),
    (24, "你是否是容易接近的人?", "EI"),
    (25, "面对一个新项目时,你是否会立刻开始行动,寻找最佳解决方案?", "JP"),
    (26, "在团队中,你是否更倾向于担任领导者,引导团队前进?", "EI"),
    (27, "遇到问题时,你是否倾向于依靠直觉和经验做出快速判断?", "SN"),
    (28, "你是否更喜欢快节奏、充满挑战的工作环境?", "JP"),
    (29, "当你做决策时,你是否更重视个人价值观和信念?", "TF"),
    (30, "你是否通常直接、坦率,喜欢直击要点地与他人沟通?", "EI"),
    (31, "在社交场合中,你是否更倾向于主动与人交流,享受社交活动?", "EI"),
    (32, "你是否经常交新朋友?", "EI"),
    (33, "复杂新颖的想法是否比简单轻松的想法更让你兴奋?", "SN"),
    (34, "你是否通常更容易被让你有情感共鸣的东西说服,而不是事实观点?", "TF"),
    (35, "你的生活与工作空间是否整洁有序?", "JP"),
    (36, "你是否通常会保持冷静,即使在很大的压力下?", "TF"),
    (37, "当你要外出一整天,你是否会计划你要做什么和在什么时候做?", "JP"),
    (38, "你是否认为自己是一个较为随兴所至的人?", "JP"),
    (39, "假如你是一位教师,你是否会选教以事实为主的课程?", "SN"),
    (40, "你是否与人容易混熟?", "EI"),
    (41, "一般来说,你是否和富于想象力的人比较合得来?", "SN"),
    (42, "你是否经常让你的情感支配你的理智?", "TF"),
    (43, "处理许多事情上,你是否喜欢凭兴所至行事?", "JP"),
    (44, "你是否容易让人了解?", "EI"),
    (45, "按照程序表做事,是否合你心意?", "JP"),
    (46, "当你有一份特别的任务,你是否喜欢开始前小心组织计划?", "JP"),
    (47, "在大多数情况下,你是否会选择顺其自然?", "JP"),
    (48, "大多数人是否会说你是一个重视自我隐私的人?", "EI"),
    (49, "你是否宁愿被人认为是一个实事求是的人?", "TF"),
    (50, "在一大群人当中,是否通常是你介绍大家认识?", "EI"),
    (51, "你是否会跟常提出新注意的人做朋友?", "SN"),
    (52, "你是否倾向于重视感情多于逻辑?", "TF"),
    (53, "你是否比较喜欢坐观事情发展才作计划?", "JP"),
    (54, "你是否喜欢花很多的时间一个人独处?", "EI"),
    (55, "与很多人一起是否会令你活力培增?", "EI"),
    (56, "你是否比较喜欢很早便把约会、社交聚集等事情安排妥当?", "JP"),
    (57, "在社交聚会中,你是否有时会感到郁闷?", "EI"),
    (58, "你是否通常和别人容易混熟?", "EI"),
    (59, "思想灵敏及格外聪颖的人是否更吸引你?", "SN"),
    (60, "在日常工作中,你是否颇为喜欢处理迫使你分秒必争的突发状况?", "JP"),
    (61, "你是否认为别人一般要花很长时间才了解你?", "EI"),
    (62, "你是否更注重隐私?", "EI"),
    (63, "你是否更喜欢预先安排的事情?", "JP"),
    (64, "你是否更喜欢抽象的概念?", "SN"),
    (65, "你是否更倾向于温和的方式?", "TF"),
    (66, "你是否更倾向于思考而不是感受?", "TF"),
    (67, "你是否更看重事实而不是意念?", "SN"),
    (68, "你是否更容易冲动行事?", "JP"),
    (69, "你是否更喜欢有系统的做事方式?", "JP"),
    (70, "你是否更喜欢理论而不是确定的事物?", "SN"),
    (71, "你是否更敏感而不是公正?", "TF"),
    (72, "令人信服的观点是否比感人的观点更能打动你?", "TF"),
    (73, "你是否更关注声明而不是概念?", "SN"),
    (74, "你是否更喜欢不受约束的状态?", "JP"),
    (75, "你是否比较矜持而不是健谈?", "EI"),
    (76, "你是否更喜欢有条不紊的环境?", "JP"),
    (77, "你是否更看重意念而不是实况?", "SN"),
    (78, "你是否更倾向于怜悯而不是远见?", "TF"),
    (79, "你是否更看重利益而不是祝福?", "TF"),
    (80, "你是否是务实的人?", "SN"),
    (81, "你是否朋友不多?", "EI"),
    (82, "你是否喜欢有系统的生活?", "JP"),
    (83, "你是否更富想象而不是以事论事?", "SN"),
    (84, "你是否更亲切而不是客观?", "TF"),
    (85, "你是否更客观而不是热忱?", "TF"),
    (86, "你是否更喜欢建筑而不是制造?", "SN"),
    (87, "你是否更文雅而不是爱合群?", "EI"),
    (88, "你是否更喜欢理论而不是事实?", "SN"),
    (89, "你是否更富怜悯而不是合逻辑?", "TF"),
    (90, "你是否更具分析力而不是多愁善感?", "TF"),
    (91, "你是否觉得合情合理比令人着迷更重要?", "TF"),
    (92, "当你要在一个星期内完成一个大项目,你在开始的时候是否会把要做的不同工作依次列出?", "JP"),
    (93, "在社交场合中,你是否常常会感到与某些人很难打开话匣儿和保持对话?", "EI"),
    (94, "要做很多人也做的事,你是否比较喜欢依据一般认可的方法去做?", "JP"),
    (95, "你是否更喜欢通过直接的经验来学习新知识?", "SN"),
    (96, "你是否更倾向于在团队中承担组织者的角色?", "EI"),
    (97, "你是否认为传统的做事方式更可靠?", "SN"),
    (98, "你是否在做决策时会优先考虑他人的感受?", "TF"),
    (99, "你是否喜欢在生活中有固定的日常安排?", "JP"),
    (100, "你是否更善于发现事物的潜在可能性而不是表面现象?", "SN")
]

# 随机打乱题目顺序
random.shuffle(questions)

# 遍历随机后的题目列表让用户作答并计分
for i, question in enumerate(questions):
    while True:
        print(f"题目{i + 1}: {question[1]}")
        try:
            user_answer = int(input())
            if user_answer in [-2, -1, 0, 1, 2]:
                break
            else:
                print("你的回答不在规定范围内,请重新输入(-2、-1、0、1、2)")
        except ValueError:
            print("请输入有效的整数答案(-2、-1、0、1、2)")

    # 根据答案进行计分
    if question[2][0] == "E":
        if user_answer == 2:
            extroversion_introversion += 2
        elif user_answer == 1:
            extroversion_introversion += 1
        elif user_answer == -1:
            extroversion_introversion -= 1
        elif user_answer == -2:
            extroversion_introversion -= 2
    elif question[2][0] == "S":
        if user_answer == 2:
            sensing_intuition += 2
        elif user_answer == 1:
            sensing_intuition += 1
        elif user_answer == -1:
            sensing_intuition -= 1
        elif user_answer == -2:
            sensing_intuition -= 2
    elif question[2][0] == "T":
        if user_answer == 2:
            thinking_feeling += 2
        elif user_answer == 1:
            thinking_feeling += 1
        elif user_answer == -1:
            thinking_feeling -= 1
        elif user_answer == -2:
            thinking_feeling -= 2
    elif question[2][0] == "J":
        if user_answer == 2:
            judging_perceiving += 2
        elif user_answer == 1:
            judging_perceiving += 1
        elif user_answer == -1:
            judging_perceiving -= 1
        elif user_answer == -2:
            judging_perceiving -= 2

# 根据最终得分判断各维度的倾向
extroversion_introversion_type = "E" if extroversion_introversion > 0 else "I"
sensing_intuition_type = "S" if sensing_intuition > 0 else "N"
thinking_feeling_type = "T" if thinking_feeling > 0 else "F"
judging_perceiving_type = "J" if judging_perceiving > 0 else "P"

# 组合得出16型人格类型
personality_type = extroversion_introversion_type + sensing_intuition_type + thinking_feeling_type + judging_perceiving_type

print("你的16型人格类型为:", personality_type)

# 详细的人格分析
print("以下是关于你人格类型的详细分析:")
if personality_type[0] == "E":
    print("外向(E):你善于社交,能从与他人的互动中获取能量,喜欢参与各种社交活动,乐于表达自己,并且可能在团队合作中表现活跃,能够轻松地与他人建立联系和沟通交流。")
else:
    print("内向(I):你更倾向于从内部世界获取能量,在社交后可能需要独处来恢复精力。你可能更喜欢深入的思考和自我反省,对个人空间和独处时间有较高需求,在社交场合中可能相对较为内敛。")

if personality_type[1] == "S":
    print("实感(S):注重实际的细节和事实,善于观察和记忆具体的信息,更依赖过往经验和现实情况来做判断。在学习和工作中,可能更擅长处理实际事务和具体任务,对事物的实际应用和操作方面有较好的把握。")
else:
    print("直觉(N):倾向于关注抽象概念和可能性,更注重事物的潜在意义和未来发展趋势。富有想象力和创造力,能够快速理解复杂的概念和关系,善于发现新的思路和方法,但可能在细节处理上相对较弱。")

if personality_type[2] == "T":
    print("思考(T):做决策时主要依据逻辑和理性,客观地分析各种因素,不太会被个人情感左右。更注重公平和原则,在处理问题时会追求效率和准确性,可能在人际关系中有时会显得较为冷漠,但能做出较为公正合理的判断。")
else:
    print("情感(F):决策过程中会充分考虑他人的感受和价值观,以和谐的人际关系为重要目标。富有同情心和同理心,善于理解他人的需求,但可能在某些情况下会因为情感因素而影响决策的客观性。")

if personality_type[3] == "J":
    print("判断(J):喜欢有计划、有条理的生活方式,倾向于提前制定详细的计划并严格执行,对生活和工作有较强的掌控欲。注重秩序和规律,能够高效地完成任务,但可能在面对突发变化时灵活性稍显不足。")
else:
    print("感知(P):更偏好灵活应变的生活态度,对新的信息和变化持开放态度,不喜欢被严格的计划束缚。能够适应各种不同的情况和变化,善于在变化中寻找机会,但可能在时间管理和任务规划上相对较弱。")

 需要改进优化请多多提议,期待2.0版本。

              

你可能感兴趣的:(python,开发语言,娱乐)