用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. vs2010下载Microsoft Visual Studio 2010 Express(vs2010中文版下载)速成官方合集正式版

    http://www.xiazaiba.com/html/1832.html VB.NET 2010 Express: 2KQT8-HV27P-GTTV9-2WBVV-M7X96VC++ 2010 E ...

  2. python之面向对象之类变量和实例变量

    #Auther Bob #--*--conding:utf-8 --*-- #这里的变量全部都是实例变量 class Role(object): def __init__(self,name,role ...

  3. [leetcode]257. Binary Tree Paths二叉树路径

    Given a binary tree, return all root-to-leaf paths. Note: A leaf is a node with no children. Example ...

  4. 通过dockerfile构建nginx

    上次 利用命令行的形式来构建nginx服务, http://www.cnblogs.com/loveyouyou616/p/6806788.html 这次利用dockerfile文件来构建nginx服 ...

  5. php 的多进程实践

    php的多进程处理依赖于pcntl扩展,通过pcntl_fork创建子进程来进行并行处理.   例1如下: <?php $pid = pcntl_fork(); if($pid == -1) { ...

  6. Laravel 上使用 phpexcel的两种方式

    原创 2017年06月24日 20:24:31 1229 文章采集与网上 方式1.使用原生的phpexcel , http://blog.csdn.net/CSwfe/article/details/ ...

  7. Spring+SpringMVC+mybatis+Quartz整合

    Quartz与SpringMVC的整合 简介 Quartz是一个完全由java编写的开源作业调度框架,为在Java应用程序中进行作业调度提供了简单却强大的机制.Quartz允许开发人员根据时间间隔来调 ...

  8. Myeclipse如何更新maven

    选中项目-->右键-->Maven4MyEclipse-->Update Project-->勾选Force update of.....就ok了

  9. 33. Pay Gap for the Brightest Female Graduatea 最聪明的大学女毕业生面临的工资差距

    33. Pay Gap for the Brightest Female Graduatea 最聪明的大学女毕业生面临的工资差距 ① When young women were found to ma ...

  10. Java转换Json日期/Date(1487053489965+0800)/格式以及js时间格式 Tue Feb 14 2017 14:06:32 GMT+0800

    /Date(1487053489965+0800)/用Java怎么转换成yyyy-MM-dd的格式 Tue Feb 14 2017 14:06:32 GMT+0800用Java怎么转换成yyyy-MM ...