Python秋函数文件数据图表练习合计

第1关:股票分行业excel文件处理

编程要求

test文件夹下股票信息.xls工作簿如图所示,

在test文件夹下建立股票分行业.xls工作簿,建立互联网、元器件、IT设备、电气设备、通信设备、软件服务、半导体、电器仪表八个行业的工作表,分别存储相应股票的代码、名称、现价、地区信息,要求按代码升序排列。


开始你的任务吧,祝你成功!

import pandas
writer = pandas.ExcelWriter('test/股票分行业.xlsx')
data=pandas.read_excel("test/股票信息.xlsx",dtype={"代码":str})
hy=["互联网","元器件","IT设备","电气设备","通信设备","软件服务","半导体","电器仪表"]
#代码开始
for j in hy:
    dfgp=data.loc[data['细分行业']==j,['代码','名称','现价','地区']]
    dfgp=dfgp.sort_values('代码',ascending=True)

    dfgp.to_excel(writer,sheet_name=j,index=False)


#代码结束
writer.save()

第2关:股票分地区excel文件处理 

编程要求

test文件夹的股票信息.xls工作簿如图所示,

在test文件夹下建立股票分地区工作簿,按照所有地区分别建立多个工作表,存储该地区股票的代码、名称、现价、细分行业信息,按照现价升序排列。


开始你的任务吧,祝你成功!

import pandas
writer = pandas.ExcelWriter('test/股票分地区.xlsx')
data=pandas.read_excel("test/股票信息.xlsx",dtype={"代码":str})
#代码开始
dq=data['地区'].unique()
for j in dq:
    dfdq=data.loc[data['地区']==j,['代码','名称','现价','细分行业']]
    dfdq=dfdq.sort_values('现价',ascending=True)
    dfdq.to_excel(writer,sheet_name=j,index=False)
#代码结束
writer.save()

 

第3关:红楼梦文件分章

编程要求

test文件夹下红楼梦.txt文件如下图所示

每章回的标题行为上卷或下卷开头,后面为空格和第x回。 编写程序,将文件按章回分隔为多个文本文件,文件名为上卷第x回或下卷第x回,文件名中没有空格,存储在test的hlm文件夹下,文件列表如下所示。(即第一回文件为test/hlm/上卷第一回.txt) 注意:在新文件中,没有空行,且每行去除首尾的空格, 章回的标题行后换行,其他行不要换行 如下图所示


开始你的任务吧,祝你成功!

 

import shutil
shutil.rmtree("test/hlm")
import os
os.mkdir("test/hlm")
f1=open("test/红楼梦.txt","r",encoding="utf8")


for line in f1 :
    if '上卷' in line or '下卷' in line :
        line=line.strip()
        c=line[0]
        d=line[line.find('第')+1:line.find('回')]
        f2=open("test/hlm/"+c+'卷'+'第'+d+'回'+'.txt','a+')
    if '上卷' in line or '下卷' in line :
        line=line.strip()
        f2.write(line+'\n')
    else :
        line=line.strip().strip('/n')
        f2.write(line)

#代码结束
f1.close()
f2.close()

第4关:计算邮政信函资费

任务描述

本关任务:编写一个定义和调用计算邮政信函资费函数的小程序。

国内信函资费的计算方法为 本埠首重100克内,每重20克收费0.8元(不足20克按20克计算) 超过100克的部分每重100克1.2元(不足100克按100克计算) 外埠首重100克内,每重20克收费1.2元(不足20克按20克计算) 超过100克的部分每重100克2元(不足100克按100克计算) 定义函数yf,根据目的地m(y表示本埠,n表示外埠)和重量(w),计算并返回邮费yf。

测试说明

平台会对你编写的代码进行测试:

测试输入: 是否本埠y 重量15 预期输出: 邮费0.8元

测试输入: 是否本埠y 重量240 预期输出: 邮费6.4元

测试输入: 是否本埠n 重量240 预期输出: 邮费10.0元


开始你的任务吧,祝你成功!

def xh(m,w):
#代码开始
    if m=='y':
        if w<=100:
            jg=((w-0.000001)//20+1)*0.8
        elif w>100:
            jg=4+((w-100.000001)//100+1)*1.2
    elif m=='n':
        if w<=100:
            jg=((w-0.000001)//20+1)*1.2
        elif w>100:
            jg=6+((w-100.000001)//100+1)*2
    return jg
#代码计算
  
import math
x=input("是否本埠")
y=eval(input("重量"))
f=xh(x,y)
print("邮费{:.1f}元".format(f))

第5关:邮政印刷品资费计算

任务描述

本关任务:编写一个定义和调用计算邮政印刷品资费函数的小程序。

国内邮政印刷品资费的计算方法为 本埠首重100克内,0.8元 超过100克的部分每重100克0.2元(不足100克按100克计算) 外埠首重100克内,1.2元 超过100克的部分每重100克0.4元(不足100克按100克计算) 定义函数yspjs,根据目的地m(y表示本埠,n表示外埠)和重量(w),计算并返回邮费yf。

测试说明

平台会对你编写的代码进行测试:

测试输入: 是否本埠y 重量15 预期输出: 邮费0.8元

测试输入: 是否本埠y 重量180 预期输出: 邮费1.0元

测试输入: 是否本埠n 重量240 预期输出: 邮费2.0元


开始你的任务吧,祝你成功!

def yspjs(m,w):
#代码开始
    if m=="y":
        if w<=100:
            jg=0.8
        elif w%100==0:
            jg=0.8+(w//100-1)*0.2
        elif w>100 and w%100!=0:
            kg=(w-100)//100+1
            jg=kg*0.2+0.8
    elif m=="n":
        if w<=100:
            jg=1.2
        elif w%100==0:
            jg=1.2+(w//100-1)*0.4
        elif w>100 and w%100!=0:
            kg=(w-100)//100+1
            jg=kg*0.4+1.2
    return jg
#代码结束
import math
x=input("是否本埠")
y=eval(input("重量"))
f=yspjs(x,y)
print("邮费{:.1f}元".format(f))

第6关:三国演义分章

编程要求

test文件夹下的三国演义.txt如下图所示 每章回的标题行开头为正文空格第x回(设置判断条件为该行包含正文即可)

编写程序,将文件按回分割为多个文本文件,文件名为第x回,存放在test的sgyy文件夹下,文件列表如图所示.即第一回的文件为test/sgyy/第一回.txt 新文件中需去掉空行,去掉每行的首尾空格,如下所示 标题行后面换行,其他行不换行


开始你的任务吧,祝你成功!

import shutil
shutil.rmtree("test/sgyy")
import os
os.mkdir("test/sgyy")
f1=open("test/三国演义.txt","r",encoding="utf8")
#代码开始

for line in f1:
    if "正文" in line:
        a=line.find("第")
        b=line.find("回")
        hm=line[a:b+1]
        f2=open("test/sgyy/"+hm+".txt","a+")

        line=line.strip()+"\n"
        f2.write(line)
    else:
        line=line.strip(" ").strip("\n")
        f2.write(line)

#代码结束
f1.close()
f2.close()

 

第7关:二手房销售地区分布数据可视化

编程要求

某城市二手房销售文件二手房销售.xls如图1所示,存放在test文件夹下

根据地区对订单号数量进行汇总,生成饼图显示各地区销售房屋数量所占比例,如图2所示。(注意:设置绘图区域的宽度和高度为10和10,图表标题为二手房销售地区分布图)


开始你的任务吧,祝你成功!

 

import pandas
import matplotlib
import matplotlib.pyplot as plt
matplotlib.rcParams['font.family']='SimHei'
matplotlib.rcParams['font.sans-serif'] = ['SimHei']
data=pandas.read_excel("test/二手房销售.xls")
#代码开始
plt.figure(figsize=(10,10))
sj=data.groupby("地区")["订单号"].count()
dq=[]
for c in sj.index:

    dq.append(c)
plt.pie(sj,labels=dq)
plt.title("二手房销售地区分布图")
plt.show()
#代码结束
plt.savefig("image/esfdq.jpg")

第8关:二手房销售地区价格折线图

编程要求

某城市二手房销售文件二手房销售.xls如图1所示,存放在test文件夹下

根据地区对价格进行汇总,求其平均值,生成折线图显示各地区房屋平均价格,如图2所示。(注意:地区按平均价格的降序排列,设置绘图区域的宽度和高度为15和10,图表标题为二手房销售价格折线图)


开始你的任务吧,祝你成功!

import pandas
import matplotlib
import matplotlib.pyplot as plt
matplotlib.rcParams['font.family']='SimHei'
matplotlib.rcParams['font.sans-serif'] = ['SimHei']
data=pandas.read_excel("test/二手房销售.xls")
#代码开始

plt.figure(figsize=(15,10))
jg=data.groupby("地区")["价格"].mean()
jg.sort_values(ascending=False,inplace=True)
plt.plot(jg)
plt.title("二手房销售价格折线图")
plt.show()
#代码结束
plt.savefig("image2/esfzxt.jpg")

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值