程序员的自我救赎,使用python开发性格分析工具

在这里插入图片描述

今天,我们就用Python开发一套九型人格性格分析工具。用以让更多的人,了解自己的性格分类!

既然是九型人格分析,首先我们需要拿到它的测试题。翻了很久,知道了百度文库的测试原题:

在这里插入图片描述

测试题总共36道,通过各场景下的行为表现,最终分析出你最接近的人格分类。现在题有了,如何做出测试题呢?我选择使用Python的tkinter模块,将测试题开发为一个可执行的exe工具,说干就干!

基础准备


为了能将代码打包成单独的可执行文件,我们需要先准备测试题与对应的答案,然后提前存储在代码中。我们需要进行相关拆分,这种苦力活就交给拥有雷锋精神的我来完成吧:

在这里插入图片描述

界面开发


界面无需太过复杂,提供说明、题目、选项作答、题目切换与操作按钮即可。当然,交卷后,需要显示用户的测试结果,那么开始吧!

30 minutes later…完成!

Main.py

from Enneagram_GUI import *

from tkinter import *

def center_window(root, width, height):

screenwidth = root.winfo_screenwidth()

screenheight = root.winfo_screenheight()

size = ‘%dx%d+%d+%d’ % (width, height, (screenwidth - width) / 2, (screenheight - height) / 2)

root.geometry(size)

root = Tk()

center_window(root, 750, 700)

root.resizable(width=False, height=False)

root.title(‘九型人格测试 | 公众号: 清风Python’)

ExamPage(root)

root.mainloop()

Enneagram_GUI.py

coding:utf-8

from tkinter import *

import Enneagram_Exam

import Enneagram_Result

import tkinter.messagebox

自测说明

Standard = ‘此份问卷共有36道测试题目,请在每题中选择你认为最恰当或者最接近描述自己的性格行为的句子,\n’ \

‘请全部作答,最高分的项目很可能成为你的基本性格型态。’

人格类型矩阵

Style_Dict = [

{3: 2, 6: 2, 10: 2, 15: 2, 19: 1, 22: 2, 28: 2, 32: 2},

{1: 1, 6: 1, 12: 1, 17: 2, 20: 1, 23: 1, 29: 1, 33: 1},

{4: 1, 7: 1, 10: 1, 14: 2, 23: 2, 26: 2, 30: 1, 34: 1},

{2: 1, 8: 2, 12: 2, 16: 1, 21: 2, 24: 1, 28: 1, 34: 2},

{1: 2, 4: 2, 13: 1, 16: 2, 19: 2, 25: 1, 31: 1, 36: 1},

{5: 1, 9: 2, 14: 1, 18: 1, 21: 1, 25: 2, 29: 2, 32: 1},

{2: 2, 7: 2, 11: 2, 18: 2, 22: 1, 27: 2, 33: 2, 36: 2},

{3: 1, 9: 1, 13: 2, 17: 1, 24: 2, 27: 1, 20: 2, 35: 2}

]

class ExamPage:

def init(self, master=None):

self.root = master

用户结果集

self.user_result = {}

self.status = 1

self.All_Exam = Enneagram_Exam

self.normal_choice = IntVar()

self.start_exam()

上一题方法

def before(self):

if self.normal_choice.get() != 0:

self.user_result[self.status] = self.normal_choice.get()

if self.status > 1:

self.status -= 1

self.body.grid_forget()

self.main_exam()

else:

tkinter.messagebox.showwarning(“提示:”, message=“请先选择答案!”)

下一题方法

def after(self):

if self.normal_choice.get() != 0:

self.user_result[self.status] = self.normal_choice.get()

if self.status < len(Enneagram_Exam.Exam):

self.status += 1

self.body.grid_forget()

self.main_exam()

else:

tkinter.messagebox.showwarning(“提示:”, message=“请先选择答案!”)

获取当前题目

def exam_files(self, num):

return list(map(lambda x: x.split(‘.’), self.All_Exam.Exam[num - 1].strip().split(‘\n’)))

交卷

def hand_paper(self):

self.user_result[self.status] = self.normal_choice.get()

if len(self.user_result) != 36:

tkinter.messagebox.showwarning(“提示:”, message=“您还有未完成的测试题!”)

else:

self.exam_result = LabelFrame(self.root, text=“测试结果”, padx=10, pady=10, fg=“red”, font=(“黑体”, ‘11’))

self.exam_result.grid(padx=10, pady=5, sticky=NSEW)

sc = Scrollbar(self.exam_result)

sc.grid(row=0, column=1, sticky=NS)

result_info = Text(self.exam_result, font=(“黑体”, ‘11’), width=85, yscrollcommand=sc.set)

result_info.grid(row=0, column=0, sticky=NSEW)

sc.config(command=result_info.yview)

all_num = []

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)

ttps://img-blog.csdnimg.cn/img_convert/9f49b566129f47b8a67243c1008edf79.png)

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值