第一百二十五期:程序员的自我救赎,使用Python开发性格分析工具
如此不均衡的貧富差距,各行業(yè)的領(lǐng)導(dǎo)者如何能管理好公司,讓員工們既努力產(chǎn)出,又能安于現(xiàn)狀呢?每個(gè)領(lǐng)導(dǎo)者必學(xué)的一門(mén)課程就是職場(chǎng)心理學(xué)。只有你充分了解員工心理與對(duì)應(yīng)的行為表現(xiàn),才能從容的掌控各類(lèi)型的人員,從而達(dá)到“物盡其用”。
作者:清風(fēng)Python
如此不均衡的貧富差距,各行業(yè)的領(lǐng)導(dǎo)者如何能管理好公司,讓員工們既努力產(chǎn)出,又能安于現(xiàn)狀呢?每個(gè)領(lǐng)導(dǎo)者必學(xué)的一門(mén)課程就是職場(chǎng)心理學(xué)。只有你充分了解員工心理與對(duì)應(yīng)的行為表現(xiàn),才能從容的掌控各類(lèi)型的人員,從而達(dá)到“物盡其用”。
那么職場(chǎng)心理學(xué)到底學(xué)習(xí)什么?
九型人格
九型人格是一個(gè)近年來(lái)倍受?chē)?guó)際著名大學(xué)MBA學(xué)員推崇的課程之一,近十幾年來(lái)已風(fēng)行歐美學(xué)術(shù)界及工商界。
全球500強(qiáng)企業(yè)的管理階層均有研習(xí)九型性格,并以此培訓(xùn)員工,建立團(tuán)隊(duì),提高執(zhí)行力。在當(dāng)代,它對(duì)于企業(yè)的前期規(guī)劃、戰(zhàn)略確定、教練指導(dǎo)、企業(yè)培訓(xùn)等方面,九型人格有很大的優(yōu)勢(shì)。
九型人格不僅僅是一種精妙的性格分析工具,更主要的是為個(gè)人修養(yǎng)、自我提升和歷練提供更深入的洞察力。
俗話說(shuō):“龍生九子,子子不同”。通過(guò)九型人格的性格分析工具,將性格心理與行為劃分為九類(lèi)。再對(duì)不同性格的人群進(jìn)行研究分析,找到每一類(lèi)人最適合崗位與職責(zé)。這就是領(lǐng)導(dǎo)者們運(yùn)籌于帷幄之中,決勝于千里之外的籌碼。
人為刀俎,我為魚(yú)肉。不想受制于領(lǐng)導(dǎo)者們的掌控,首先要了解自身的人格分類(lèi),才能完善自己的不足。這該如何下手?作為程序員,讓我們用代碼完成自我的救贖吧!
代碼改變世界
剛剛過(guò)去的華為HR事件,給我印象最深的不是各階層的矛盾,而是那位HR說(shuō)的一句話:
在每位開(kāi)發(fā)的心中,都曾有著一個(gè)代碼改變世界的愿望!
那么今天,我們就用Python開(kāi)發(fā)一套九型人格性格分析工具。用以讓更多的人,了解自己的性格分類(lèi)!
既然是九型人格分析,首先我們需要拿到它的測(cè)試題。
測(cè)試題總共36道,通過(guò)各場(chǎng)景下的行為表現(xiàn),最終分析出你最接近的人格分類(lèi)。現(xiàn)在題有了,如何做出測(cè)試題呢?我選擇使用Python的tkinter模塊,將測(cè)試題開(kāi)發(fā)為一個(gè)可執(zhí)行的exe工具,說(shuō)干就干!
基礎(chǔ)準(zhǔn)備
為了能將代碼打包成單獨(dú)的可執(zhí)行文件,我們需要先準(zhǔn)備測(cè)試題與對(duì)應(yīng)的答案,然后提前存儲(chǔ)在代碼中。我們需要進(jìn)行相關(guān)拆分,這種苦力活就交給擁有雷鋒精神的我來(lái)完成吧:
界面開(kāi)發(fā)
界面無(wú)需太過(guò)復(fù)雜,提供說(shuō)明、題目、選項(xiàng)作答、題目切換與操作按鈕即可。當(dāng)然,交卷后,需要顯示用戶(hù)的測(cè)試結(jié)果,那么開(kāi)始吧!
30 minutes later…完成!
# coding:utf-8 from tkinter import * import Enneagram_Exam import Enneagram_Result import tkinter.messagebox # 自測(cè)說(shuō)明 Standard = '此份問(wèn)卷共有36道測(cè)試題目,請(qǐng)?jiān)诿款}中選擇你認(rèn)為最恰當(dāng)或者最接近描述自己的性格行為的句子,\n' \ '請(qǐng)全部作答,最高分的項(xiàng)目很可能成為你的基本性格型態(tài)。' # 人格類(lèi)型矩陣 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 # 用戶(hù)結(jié)果集 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="請(qǐng)先選擇答案!") # 下一題方法 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="請(qǐng)先選擇答案!") # 獲取當(dāng)前題目 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="您還有未完成的測(cè)試題!") else: self.exam_result = LabelFrame(self.root, text="測(cè)試結(jié)果", 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) # 啟動(dòng)測(cè)試所需控制按鈕 def start_exam(self): self.title = LabelFrame(self.root, text="自測(cè)說(shuō)明", 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="選項(xiàng)", 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()) hand_in.grid(row=4, column=2, padx=5, pady=10, sticky=E) exit_sys = Button(self.show, text="退出", width=8, command=lambda: sys.exit()) exit_sys.grid(row=4, column=3, padx=5, pady=10, sticky=E) self.main_exam() # 測(cè)試題主界面 def main_exam(self): self.normal_choice.set(0) self.body = LabelFrame(self.root, text="測(cè)試題 第%s題,剩余%s題" % (self.status, (len(Enneagram_Exam.Exam) - self.status)), padx=10, pady=10, fg="red", font=("黑體", '11')) self.body.grid(padx=10, pady=5, sticky=EW) for option, choice in self.exam_files(self.status): authority_choice = Radiobutton(self.body, text=choice, variable=self.normal_choice, value=option) authority_choice.grid(row=option, sticky=W) Label(self.body, text=" 第%s道題,用戶(hù)選擇的結(jié)果是:" % self.status, fg="red", font=("黑體", '11')).grid(row=3, column=0, sticky=W) Label(self.body, textvariable=self.normal_choice).grid(row=3, column=0, sticky=E)剩余的練習(xí)題與答案代碼,就不在這里贅述了。
對(duì)于一位程序員的審美,大家要求別太高,重點(diǎn)來(lái)關(guān)注下功能實(shí)現(xiàn)吧!當(dāng)然在此之前我們需要先將代碼打包為exe工具,大小8MB。
功能OK了,現(xiàn)在不要打擾我,我要做題了!
我的答案是完美型,處女座總是在追求完美的路上跟自己死磕,哎…活得好累。
閱讀目錄(置頂)(長(zhǎng)期更新計(jì)算機(jī)領(lǐng)域知識(shí))
閱讀目錄(置頂)(長(zhǎng)期更新計(jì)算機(jī)領(lǐng)域知識(shí))
閱讀目錄(置頂)(長(zhǎng)期科技領(lǐng)域知識(shí))
歌謠帶你看java面試題
總結(jié)
以上是生活随笔為你收集整理的第一百二十五期:程序员的自我救赎,使用Python开发性格分析工具的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 问题之mybatis-plus中的Tab
- 下一篇: grasshopper python_【