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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值