1.日期转化(11月为例)
#2019.11;
import math
while True :
weekstr = "星期一星期二星期三星期四星期五星期六星期日"
date = eval(input("请输入日期数字(1-30)"))
pos = (date - 1 + 4) % 7#第11月的1号是周五
pos = pos * 3
cnt = math.floor(date / 7) + 1
print("2019年11月{}日是11月的第{}个{}".format(date,cnt,weekstr[pos:pos+3]))
2.河南省计算机专业评估数据值分析
# encoding=utf-8
import pandas as pd
import numpy as np
from math import sqrt
def excel_one_line_to_list(i):
df = pd.read_excel("xxx.xlsx", usecols=[i],names=None,) # 读取项目名称列,不要列名
df_li = df.values.tolist()
result = []
for s_li in df_li:
result.append(s_li[0])
return result
def maxnum(result):
x=result[1]
for i in result:
if x < i:
x=i
return x
def minnum(result):
x=result[1]
for i in result:
if x > i:
x=i
return x
def meanum(result):
x=0.0
for i in result:
x+=i
return x / len(result)
def midnum(result):
x = int(len(result) / 2)
if len(result) % 2 == 0:
return (result[x]+result[x+1])/2
else:
return result[x+1]
def devnum(result):
x=0.0
mean=float(meanum(result))
for i in result:
x += (i-mean)**2
x/=(len(result)-1)
x=x**0.5
return x
if __name__ == '__main__':
a= excel_one_line_to_list(1)
print(a)
b= excel_one_line_to_list(0)
print(b)
result=a
print( "最大值:",maxnum(result) )
print( "最小值:",minnum(result) )
print( "平均值:",meanum(result) )
print( "中位数:",midnum(result) )
print( "标准差:",devnum(result) )
import matplotlib.pyplot as plt
import matplotlib
myfont = matplotlib.font_manager.FontProperties(fname=r'C:/Windows/Fonts/msyh.ttf') #
# num_list = [1.5,0.6,7.8,6]
# plt.bar(range(len(a)), a,tick_label = lala,rotation=90)
# plt.show()
plt.figure(figsize=(15,7))
plt.bar(range(len(a)),a,width=0.3)
plt.xticks(range(len(b)),b,fontproperties=myfont,rotation=90)
plt.xlabel("最大值:12\n最小值:1\n平均值:3.65625\n中位数:4.0\n标准差:2.67",fontproperties=myfont)
plt.ylabel("教师主持省级及以上教学改革与研究项目数量",rotation=90,fontproperties=myfont)
plt.title("教师主持省级及以上教学改革与研究项目数量",fontproperties=myfont)
plt.savefig("条形图.jpg")
plt.show()
excel文件内容如下所示:
学校名称 | 教师主持省级及以上教学改革与研究项目数量 |
郑州升达经贸管理学院 | 2 |
洛阳理工学院 | 1 |
安阳工学院 | 4 |
河南工程学院 | 1 |
南阳理工学院 | 1 |
郑州科技学院 | 5 |
信阳学院 | 2 |
河南科技学院新科学院 | 2 |
郑州工商学院 | 4 |
河南科技学院 | 3 |
河南中医药大学 | 1 |
河南大学 | 1 |
河南师范大学 | 12 |
河南师范大学【软件学院】 | 5 |
信阳师范学院 | 7 |
周口师范学院 | 4 |
安阳师范学院 | 6 |
许昌学院 | 2 |
洛阳师范学院 | 9 |
商丘师范学院 | 5 |
河南财经政法大学 | 1 |
郑州航空工业管理学院 | 1 |
黄淮学院 | 1 |
平顶山学院 | 8 |
商丘学院 | 5 |
河南理工大学 | 5 |
郑州轻工业学院 | 4 |
郑州轻工业学院【嵌入式软件和3G软件】 | 1 |
河南工业大学 | 3 |
河南科技大学 | 5 |
中原工学院 | 3 |
河南农业大学 | 3 |
3.专业特色词频分析
import jieba
txt = open("xxx.txt","r",encoding='gb18030').read()
words = jieba.lcut(txt)
counts = {}
for word in words:
if len(word) == 1:
continue
else:
counts[word] = counts.get(word,0) + 1
items = list(counts.items())
items.sort(key=lambda x:x[1], reverse=True)
for i in range(15):
word, count = items[i]
print("{0:<10}{1:>5}".format(word, count))
4.个人信息数码管绘制
# #encoding=utf-8
#e7.1DrawSevenSegDisplay.py
import turtle, datetime
def drawLine(draw): #绘制单段数码管
turtle.pendown() if draw else turtle.penup()
turtle.fd(40)
turtle.right(90)
def drawDigit(digit): #根据数字绘制七段数码管
drawLine(True) if digit in [2,3,4,5,6,8,9] else drawLine(False)
drawLine(True) if digit in [0,1,3,4,5,6,7,8,9] else drawLine(False)
drawLine(True) if digit in [0,2,3,5,6,8,9] else drawLine(False)
drawLine(True) if digit in [0,2,6,8] else drawLine(False)
turtle.left(90)
drawLine(True) if digit in [0,4,5,6,8,9] else drawLine(False)
drawLine(True) if digit in [0,2,3,5,6,7,8,9] else drawLine(False)
drawLine(True) if digit in [0,1,2,3,4,7,8,9] else drawLine(False)
turtle.left(180)
turtle.penup()
turtle.fd(20)
def drawWord(digit):
drawLine(True) if digit in['H','S','P'] else drawLine(False)
drawLine(True) if digit in['S','U','H'] else drawLine(False)
drawLine(True) if digit in['U','S','C'] else drawLine(False)
drawLine(True) if digit in['H','U','C','P'] else drawLine(False)
turtle.left(90)
drawLine(True) if digit in['H','S','P','C','U'] else drawLine(False)
drawLine(True) if digit in['S','P','C'] else drawLine(False)
drawLine(True) if digit in['H','P','U'] else drawLine(False)
turtle.left(180)
turtle.penup()
turtle.fd(20)
def drawDate(date): #获得要输出的数字
zi="级号杨林林"
num=0
for i in range(0,len(date)):
# print(ord(date[i]))
if ord(date[i]) >= ord('A') and ord(date[i]) <= ord('z'):
# print(date[i])
drawWord(date[i])
elif ord(date[i]) >= ord('0') and ord(date[i]) <= ord('9'):
print(date[i])
drawDigit(eval(date[i])) #注意: 通过eval()函数将数字变为整数
else:
turtle.write(zi[num],font=(18))
num=num+1
turtle.fd(20)
return 0
s="HPUCS17级10号杨林林"
turtle.setup(800, 350, 200, 200)
turtle.penup()
turtle.fd(-300)
turtle.pensize(5)
drawDate(s)
turtle.hideturtle()
turtle.done()
5.科赫曲线绘制
from turtle import *
def koch(size,n):
if n == 0:
fd(size)
else:
for angle in [0,60,-120,60]:
left(angle)
koch(size/3,n-1)
setup(1500,300)
x = -600
for i in range(1,7):
penup()#一阶
goto(x,100)
pendown()
pensize(2)
speed(200)
level = i
pencolor('red')
koch(100,level)
right(120)
pencolor('blue')
koch(100,level)
right(120)
pencolor('green')
koch(100,level)
right(120)
x = x + 200