HPU-17-python 8개 실험

6508 단어 사유
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
:1
:3.65625
:4.0
: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

좋은 웹페이지 즐겨찾기