用python实现九型人格测试,并把测试结果绘制成饼图,实现代码如下:

# @Description: 九型人格
import xlrd, matplotlib.pyplot as plt
data = xlrd.open_workbook(r'E:\python_script\nine.xlsx')
table = data.sheets()[0] checkout = []#存储题号
labs = [] #存储九种性格
sizes = [] #存储大小
explode=[0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05]#每块之间的间隙
with open('ninp.txt', encoding='utf-8') as f:
f.seek(0)
rule = eval(f.read())
f.close()
for i in range(table.nrows):
if table.row_values(i)[2] == 1: # 如果选中的是1 则把题号存入checkout
checkout.append(int(table.row_values(i)[0]))
for i in checkout:
for j in rule:
if i in rule[j]['QNO']: # 如果题号在规则中,则size +1
rule[j]['size'] += 1
for x in rule:
labs.append(x)
sizes.append(rule[x]['size'])
plt.figure(figsize=(12,6))
plt.title("My Test Result \n")
colors=['lightgreen','gold','lightskyblue','lightcoral','red','blue','yellow','darkgreen','purple']
plt.pie(sizes,explode=explode,labels=labs,colors=colors,
labeldistance=1.1,autopct='%3.1f%%',shadow = False,
startangle=90,pctdistance=0.6)
plt.axis('equal')
plt.legend()
plt.show()

运行结果如下:


ninp.txt里存储的规则字典格式如下:

{
"Perfect":{'QNO':[2,14,55,57,60,63,73,81,87,91,97,102,104,106],'size':0},
"Helping":{'QNO':[6,8,22,30,69,71,79,82,85,86,89,90],'size':0},
"Achievement":{'QNO':[20,33,38,59,65,67,70,72,74,77,80,93],'size':0},
"Ego":{'QNO':[7,13,17,52,53,54,56,58,61,64,100,105],'size':0},
"Observation":{'QNO':[3,19,23,32,42,43,47,48,51,83,88,99,101],'size':0},
"Loyal":{'QNO':[9,10,26,29,31,35,37,45,46,68,75],'size':0},
"Hedonism":{'QNO':[4,16,18,21,28,49,78,92,103],'size':0},
"Leading":{'QNO':[5,11,24,27,40,44,50,66,76,84,95,96],'size':0},
"Peace":{'QNO':[1,12,15,25,34,36,39,41,62,94,98,107,108],'size':0}
}
nine.xlsx文件题目及测试结果内容如下:

												

python 实现九型人格测试小程序的更多相关文章

  1. python爬取微信小程序(实战篇)

    python爬取微信小程序(实战篇) 本文链接:https://blog.csdn.net/HeyShHeyou/article/details/90452656 展开 一.背景介绍 近期有需求需要抓 ...

  2. Python爬取微信小程序(Charles)

    Python爬取微信小程序(Charles) 本文链接:https://blog.csdn.net/HeyShHeyou/article/details/90045204 一.前言 最近需要获取微信小 ...

  3. Python flask构建微信小程序订餐系统

    第1章 <Python Flask构建微信小程序订餐系统>课程简介 本章内容会带领大家通览整体架构,功能模块,及学习建议.让大家在一个清晰的开发思路下,进行后续的学习.同时领着大家登陆ht ...

  4. Python flask构建微信小程序订餐系统☝☝☝

    Python flask构建微信小程序订餐系统☝☝☝ 一.Flask MVC框架结构 1.1实际项目结构 1.2application.py  项目配置文件 Flask之flask-script模块使 ...

  5. Python flask构建微信小程序订餐系统✍✍✍

    Python flask构建微信小程序订餐系统  整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课程本身没问题, ...

  6. python实现串口通讯小程序(GUI界面)

    python实现串口通讯小程序(GUI界面) 使用python实现串口通讯需要使用python的pyserial库来实现,这个库在安装python的时候没有自动进行安装,需要自己进行安装. 1.安装p ...

  7. 利用Python代码编写计算器小程序

    import tkinter import tkinter.messagebox import math class JSQ: def __init__(self): #创建主界面 self.root ...

  8. WordCount 优化版测试小程序实现

    Stage1:代码编写+单元测试 Github地址: https://github.com/245553473/wcPro.git PSP表格: PSP PSP阶段 预估耗时(分钟) 实际耗时(分钟) ...

  9. python -----一个简单的小程序(监控电脑内存,cpu,硬盘)

    一个简单的小程序 用函数实现!~~ 实现: cpu 使用率大于百分之50 时  ,  C 盘容量不足5 G 时, 内存 低于2G 时. 出现以上其中一种情况,发送自动报警邮件! 主要运用 到了两个 模 ...

随机推荐

  1. Javascript读写CSS属性

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  2. python作业(第十一周)基于RabbitMQ rpc实现的主机管理

    作业需求: 可以对指定机器异步的执行多个命令 例子: >>:run "df -h" --hosts 192.168.3.55 10.4.3.4 task id: 453 ...

  3. iOS - OC - XML 解析 - NSXMLParser

    //4.解析数据 //4.1 创建XML解析器:SAX NSXMLParser *parser = [[NSXMLParser alloc]initWithData:data]; //4.2 设置代理 ...

  4. 23-新建maven 项目

    1. 新建:Maven Project; 2. 配置项 bulid path, 添加tomcat: 3. 新建一个sources文件夹: srt/test/resourses 4.配置她的默认输出路径 ...

  5. VC小笔记

    1.strcpy不需要指定的长度,遇到被复制字符的串结束符’\0’才结束,容易溢出 2.memcpy(k, s, strlen(s)*sizeof(char)+1); // strlen(s) 后 + ...

  6. java文件读写操作指定编码格式

    读文件: BufferedReader 从字符输入流中读取文本,缓冲各个字符,从而提供字符.数组和行的高效读取. 可以指定缓冲区的大小,或者可使用默认的大小.大多数情况下,默认值就足够大了. 通常,R ...

  7. UI设计小白怎样学才能快速入门?

    最近有很多同学问我,UI小白有什么捷径可以快速入门?其实我想说设计这门学科没有什么捷径,真的只有多学.多看.多练.多想.多做. 1.先学软件 如果你是小白,软件也不会用,那就先学软件,从PS开始,先看 ...

  8. laravel在控制器中赋值给视图

    1.控制器 2.视图

  9. 11 Maven 灵活的构建

    Maven 灵活的构建 一个优秀的构建系统必须足够灵活,它应该能够让项目在不同的环境下都能成功地构建.例如,典型的项目都会有开发环境.测试环境和产品环境,这些环境的数据库配置不尽相同,那么项目构建的时 ...

  10. 客户端、服务器端中JSON字符串与对象的转换

    客户端: 字符串转为对象:$.parseJSON(json); 对象转为字符串:JSON.stringify(_pasteDataItem) 服务器端(c#): 对象: [DataContract(N ...