帕累托法则

上世纪初,意大利经济学家维尔弗雷多▪帕累托发现了一个有趣的现象:在意大利, 大约80%的财富掌握在大约20%的人手中,这在后来被概括为帕累托法则(80/20法则),即二八法则。而全球财富报告称,中国最富有的那10%的人,拥有中国64%的财富。

如此不均衡的贫富差距,各行业的领导者如何能管理好公司,让员工们即努力产出,又能安于现状呢?每个领导者必学的一门课程就是职场心理学。只有你充分了解员工心理与对应的行为表现,才能从容的掌控各类型的人员,从而达到“物尽其用”。

那么职场心理学到底学习什么?

九型人格

九型人格是一个近年来倍受国际著名大学MBA学员推崇的课程之一,近十几年来已风行欧美学术界及工商界。全球500强企业的管理阶层均有研习九型性格,并以此培训员工,建立团队,提高执行力。在当代,它对于企业的前期规划、战略确定、教练指导、企业培训等方面,九型人格有很大的优势。九型人格不仅仅是一种精妙的性格分析工具,更主要的是为个人修养、自我提升和历练提供更深入的洞察力。

俗话说:“龙生九子,子子不同”。通过九型人格的性格分析工具,将性格心理与行为划分为九类。再对不同性格的人群进行研究分析,找到每一类人最适合岗位与职责。这就是领导者们运筹于帷幄之中,决胜于千里之外的筹码。

人为刀俎,我为鱼肉。不想受制于领导者们的掌控,首先要了解自身的人格分类,才能完善自己的不足。这该如何下手?作为程序员,让我们用代码完成自我的救赎吧!

代码改变世界

刚刚过去的华为HR事件,给我印象最深的不是各阶层的矛盾,而是那位HR说的一句话:

在每位开发的心中,都曾有着一个代码改变世界的愿望!

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

既然是九型人格分析,首先我们需要拿到它的测试题。翻了很久,知道了百度文库的测试原题:https://wenku.baidu.com/view/19455024dd36a32d72758105.html

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

基础准备

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

界面开发

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

30 minutes later…完成!

Main.py

 1from Enneagram_GUI import * 2from tkinter import * 3 4 5def center_window(root, width, height): 6    screenwidth = root.winfo_screenwidth() 7    screenheight = root.winfo_screenheight() 8    size = '%dx%d+%d+%d' % (width, height, (screenwidth - width) / 2, (screenheight - height) / 2) 9    root.geometry(size)101112root = Tk()1314center_window(root, 750, 700)1516root.resizable(width=False, height=False)17root.title('九型人格测试 | 公众号: 清风Python')18ExamPage(root)19root.mainloop()

Enneagram_GUI.py

  1# -*- coding: utf-8 -*-  2# @Author   : 王翔  3# @微信号   : King_Uranus  4# @公众号    : 清风Python  5# @GitHub   : https://github.com/BreezePython  6# @Date     : 2019/11/12 23:12  7# @Software : PyCharm  8# @version  :Python 3.7.3  9# @File     : Enneagram_GUI.py 10 11 12# coding:utf-8 13from tkinter import * 14import Enneagram_Exam 15import Enneagram_Result 16import tkinter.messagebox 17 18# 自测说明 19Standard = '此份问卷共有36道测试题目,请在每题中选择你认为最恰当或者最接近描述自己的性格行为的句子,\n' \ 20           '请全部作答,最高分的项目很可能成为你的基本性格型态。' 21 22# 人格类型矩阵 23Style_Dict = [ 24    {3: 2, 6: 2, 10: 2, 15: 2, 19: 1, 22: 2, 28: 2, 32: 2}, 25    {1: 1, 6: 1, 12: 1, 17: 2, 20: 1, 23: 1, 29: 1, 33: 1}, 26    {4: 1, 7: 1, 10: 1, 14: 2, 23: 2, 26: 2, 30: 1, 34: 1}, 27    {2: 1, 8: 2, 12: 2, 16: 1, 21: 2, 24: 1, 28: 1, 34: 2}, 28    {1: 2, 4: 2, 13: 1, 16: 2, 19: 2, 25: 1, 31: 1, 36: 1}, 29    {5: 1, 9: 2, 14: 1, 18: 1, 21: 1, 25: 2, 29: 2, 32: 1}, 30    {2: 2, 7: 2, 11: 2, 18: 2, 22: 1, 27: 2, 33: 2, 36: 2}, 31    {3: 1, 9: 1, 13: 2, 17: 1, 24: 2, 27: 1, 20: 2, 35: 2} 32] 33 34 35class ExamPage: 36    def __init__(self, master=None): 37        self.root = master 38        # 用户结果集 39        self.user_result = {} 40        self.status = 1 41        self.All_Exam = Enneagram_Exam 42        self.normal_choice = IntVar() 43        self.start_exam() 44 45    # 上一题方法 46    def before(self): 47        if self.normal_choice.get() != 0: 48            self.user_result[self.status] = self.normal_choice.get() 49            if self.status > 1: 50                self.status -= 1 51                self.body.grid_forget() 52                self.main_exam() 53        else: 54            tkinter.messagebox.showwarning("提示:", message="请先选择答案!") 55 56    # 下一题方法 57    def after(self): 58        if self.normal_choice.get() != 0: 59            self.user_result[self.status] = self.normal_choice.get() 60            if self.status  61                self.status += 1 62                self.body.grid_forget() 63                self.main_exam() 64        else: 65            tkinter.messagebox.showwarning("提示:", message="请先选择答案!") 66 67    # 获取当前题目 68    def exam_files(self, num): 69        return list(map(lambda x: x.split('.'), self.All_Exam.Exam[num - 1].strip().split('\n'))) 70 71    # 交卷 72    def hand_paper(self): 73        self.user_result[self.status] = self.normal_choice.get() 74        if len(self.user_result) != 36: 75            tkinter.messagebox.showwarning("提示:", message="您还有未完成的测试题!") 76        else: 77            self.exam_result = LabelFrame(self.root, text="测试结果", padx=10, pady=10, fg="red", font=("黑体", '11')) 78            self.exam_result.grid(padx=10, pady=5, sticky=NSEW) 79            sc = Scrollbar(self.exam_result) 80            sc.grid(row=0, column=1, sticky=NS) 81            result_info = Text(self.exam_result, font=("黑体", '11'), width=85, yscrollcommand=sc.set) 82            result_info.grid(row=0, column=0, sticky=NSEW) 83            sc.config(command=result_info.yview) 84            all_num = [] 85            for style in Style_Dict: 86                calc_num = list( 87                    point for point in self.user_result if point in style and self.user_result[point] == style[point]) 88                if calc_num == None: 89                    all_num.append(0) 90                else: 91                    all_num.append(len(calc_num)) 92            user_type = all_num.index(max(all_num)) 93            for line in Enneagram_Result.Result[user_type]: 94                result_info.insert(END, line) 95 96    # 启动测试所需控制按钮 97    def start_exam(self): 98        self.title = LabelFrame(self.root, text="自测说明", padx=10, pady=10, fg="red", font=("黑体", '11')) 99        self.title.grid(padx=10, pady=5)100        note = Label(self.title, text=Standard, justify=LEFT, font=("黑体", '11'))101        note.grid()102        self.show = LabelFrame(self.root, text="选项", padx=10, pady=10, fg="red", font=("黑体", '11'))103        self.show.grid(padx=10, pady=5, sticky=EW)104        go_back = Button(self.show, text="上一题", width=8, command=lambda: self.before())105        go_back.grid(row=4, column=0, padx=5, pady=10)106        to_forword = Button(self.show, text="下一题", width=8, command=lambda: self.after())107        to_forword.grid(row=4, column=1, padx=5, pady=10, sticky=E)108        hand_in = Button(self.show, text="交卷", width=8, command=lambda: self.hand_paper())109        hand_in.grid(row=4, column=2, padx=5, pady=10, sticky=E)110        exit_sys = Button(self.show, text="退出", width=8, command=lambda: sys.exit())111        exit_sys.grid(row=4, column=3, padx=5, pady=10, sticky=E)112        self.main_exam()113114    # 测试题主界面115    def main_exam(self):116        self.normal_choice.set(0)117        self.body = LabelFrame(self.root,118                               text="测试题  第%s题,剩余%s题" % (self.status, (len(Enneagram_Exam.Exam) - self.status)),119                               padx=10, pady=10, fg="red", font=("黑体", '11'))120        self.body.grid(padx=10, pady=5, sticky=EW)121        for option, choice in self.exam_files(self.status):122            authority_choice = Radiobutton(self.body, text=choice, variable=self.normal_choice, value=option)123            authority_choice.grid(row=option, sticky=W)124        Label(self.body, text="  第%s道题,用户选择的结果是:" % self.status, fg="red", font=("黑体", '11')).grid(row=3, column=0,125                                                                                                   sticky=W)126        Label(self.body, textvariable=self.normal_choice).grid(row=3, column=0, sticky=E)

剩余的练习题与答案代码,就不在这里赘述了。

对于一位程序员的审美,大家要求别太高,重点来关注下功能实现吧!当然在此之前我们需要先将代码打包为exe工具,大小8MB。

功能OK了,现在不要打扰我,我要做题了!

我的答案是完美型,处女座总是在追求完美的路上跟自己死磕,哎…活得好累。

END

今天的内容就到这里了,程序的代码及打包好的exe已经放到百度云了,后台回复测试获下载链接。记得自测完后,告诉我你的所属的类型哦!

【完】如果你觉得文章还不错,请大家点赞分享下。你的肯定是我最大的鼓励和支持说句题外话,有不少人想加我微信,看我朋友圈的每日分享,我姑且放出来,但名额有限,先来先得。我的朋友圈不止有技术分享,更有我的日常感悟,还有我个人商业思维观点 速速扫码添加!

扫码添加,备注:公号铁粉推荐阅读数据分析篇 | 用户分层,该怎么分才合理(实操版)爬虫进阶 | 点评网的反爬再也不是烦恼数据分析篇 | 一个虎扑社区数据分析实战数据分析篇 | 我用Python帮朋友做了张猪肉数据分析图,结果。。。好好学习,天天在看

messagebox 全部使用_商业篇 | 使用python开发性格分析工具卖钱相关推荐

  1. 第一百二十五期:程序员的自我救赎,使用Python开发性格分析工具

    如此不均衡的贫富差距,各行业的领导者如何能管理好公司,让员工们既努力产出,又能安于现状呢?每个领导者必学的一门课程就是职场心理学.只有你充分了解员工心理与对应的行为表现,才能从容的掌控各类型的人员,从 ...

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

    自我救赎 帕累托法则 上世纪初,意大利经济学家维尔弗雷多▪帕累托发现了一个有趣的现象: 在意大利, 大约80%的财富掌握在大约20%的人手中,这在后来被概括为帕累托法则(80/20法则),即二八法则. ...

  3. 使用python开发性格分析工具

    俗话说:"龙生九子,子子不同".通过九型人格的性格分析工具,将性格心理与行为划分为九类.再对不同性格的人群进行研究分析,找到每一类人最适合岗位与职责.这就是领导者们运筹于帷幄之中, ...

  4. python学费多少-Python开发学费一般多少钱?

    放眼茫茫互联网行业,属软件开发行业吃香,有前景,你想学习python成为一名优秀的软件开发工程师吗?你想学习python成为一个技术型人才吗?你想收入高薪吗?当你想到这些的时候,你是否又在纠结,害怕培 ...

  5. python学费多少-Python开发学费一般多少钱

    原标题:Python开发学费一般多少钱 放眼茫茫互联网行业,属软件开发行业吃香,有前景,你想学习Python成为一名优秀的软件开发工程师吗?你想学习Python成为一个技术型人才吗?你想收入高薪吗?当 ...

  6. python filter函数_第九篇:Python中lambda、filter和map函数

    修修心养养性 世无常贵,事无常师,靠人不如靠己. 大纲 函数类型定义及特性 lambda函数定义及使用 filter函数定义及使用 map函数定义及使用 引入函数类型概念 函数类型定义:python中 ...

  7. vscode python环境配置_用VScode配置Python开发环境

    前言 VScode是一个相当优秀的IDE,具备开源.跨平台.模块化.插件丰富.启动时间快.颜值高.可高度定制等等优秀的特质,不愧是微软爸爸的私生子. 所以用VScode来编写Python,也是相当的好 ...

  8. python模块版本管理工具_【转】Python包管理工具

    Python 包管理工具解惑 本站文章除注明转载外,均为本站原创或者翻译. 本站文章欢迎各种形式的转载,但请18岁以上的转载者注明文章出处,尊重我的劳动,也尊重你的智商: 本站部分原创和翻译文章提供m ...

  9. 小学生python编程写游戏_小学生开始学Python,开发AI的首选编程语言:推荐一波Python书单...

    AlphaGo 都在使用的 Python 语言,是最接近 AI 的编程语言. 教育部考试中心近日发布了"关于全国计算机等级(NCRE)体系调整"的通知,决定自2018年3月起,在全 ...

最新文章

  1. 少儿编程python线上课程-少儿编程课堂|python – 用游戏学编程
  2. 20210928 A列满秩,那么A转置A一定可逆
  3. 第二课--字符串类型及操作
  4. OpenCV的滤波与卷积
  5. 用3种方式解决复杂报表
  6. 读者福利:复盘2018上半年精选文章,还有礼品等着你!
  7. app 模拟器抓包 burpsuite_来看黑客是如何使用Proxifier+burpsuite代理https协议数据包...
  8. Android 分析工具 APKAnalyser
  9. 9.特殊矩阵的压缩存储
  10. 《学习之道》第十章学习方法28再次提到番茄时间
  11. 世界各国1960年到2020年gdp数据抓取
  12. 网络层—简单的arp断网
  13. 百度地图自定义图标偏移问题
  14. spring mybatis 多数据源配置 jeesite 多数据源配置
  15. 安卓手机刷机liunx服务器_Android手机通用刷机教程,小白必看!
  16. sql UPDATE的时候可以使用join吗
  17. 2015年 行人检测总结1
  18. Serial Presence Detect (SPD) Table
  19. css动画结束闪烁,CSS秘密花园: 闪烁动画
  20. 使用 GCD 实现倒计时效果

热门文章

  1. 利用JAVA获取远程文件及使用断点续传 供学习者使用
  2. 10.Java 面试题整理(CORBA 方面)
  3. Must、should、have to、can 和 need to的否定句_56
  4. 【Openstack】【Nova】开发者入门,开发工作流
  5. Intel Sandy Bridge/Ivy Bridge架构/微架构/流水线 (17) - 互联环路LLC
  6. 关于oracle数据库论文,Oracle数据库研究论文 有关Oracle数据库的论文
  7. 微服务开发过程中需要注意的若干事项
  8. Unity新项目如何快速理清顶层代码结构
  9. python 读取jpg文件是yuv_Python读取YUV文件,并显示的方法
  10. java tutorial mobi_Java 初学者List集合教程