第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")