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

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 = []

for style in Style_Dict:

calc_num = list(

point for point in self.user_result if point in style and self.user_result[point] == style[point])

if calc_num == None:

all_num.append(0)

else:

all_num.append(len(calc_num))

user_type = all_num.index(max(all_num))

for line in Enneagram_Result.Result[user_type]:

result_info.insert(END, line)

启动测试所需控制按钮

def start_exam(self):

self.title = LabelFrame(self.root, text=“自测说明”, padx=10, pady=10, fg=“red”, font=(“黑体”, ‘11’))

self.title.grid(padx=10, pady=5)

note = Label(self.title, text=Standard, justify=LEFT, font=(“黑体”, ‘11’))

note.grid()

self.show = LabelFrame(self.root, text=“选项”, padx=10, pady=10, fg=“red”, font=(“黑体”, ‘11’))

self.show.grid(padx=10, pady=5, sticky=EW)

go_back = Button(self.show, text=“上一题”, width=8, command=lambda: self.before())

go_back.grid(row=4, column=0, padx=5, pady=10)

to_forword = Button(self.show, text=“下一题”, width=8, command=lambda: self.after())

to_forword.grid(row=4, column=1, padx=5, pady=10, sticky=E)

hand_in = Button(self.show, text=“交卷”, width=8, command=lambda: self.hand_paper())

自我介绍一下,小编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)

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值