HPU-17-python8个实验

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

 

你可能感兴趣的:(思维)