为了方便运力的安排、快递的分类和查看,请编写程序按以下要求完成快递信息的统计和分拣:
(1)对所有的快递按照在list中的位置进行编号,以便按照编号查看快递,以及按照要求查看快递的编号;
(2)在图形窗口放置“直方图”,“省->编号”“编号->省”三个按钮;
(3)当点击直方图按钮时,在图形窗口显示各省的快递量的直方图,以便按省分配运力;
(4)当点击“省->编号”按钮时,使用多线程方法在命令窗口或者控制台提示“请输入省份:”并等待输入,当输入某个省的名字(全名或简称,如对于内蒙古自治区可以输入内蒙、内蒙古或内蒙古自治区)时,显示该省所有快递的编号以方便分拣
以下为我初步构写 请帮我指出不足 麻烦帮我改进修改一下 望斧正
import matplotlib.pyplot as plt
from matplotlib.widgets import Button
import threading
#导入标准库
plt.rcParams['font.sans-serif']=['SimHei']
#显示中文express=[
['王龙', '北京市海淀区苏州街大恒科技大厦南座4层'],
['庞飞', '北京市昌平区汇德商厦四楼403'],
['顾锐', '江苏省扬州市三垛镇工业集中区扬州市立华畜禽有限公司'],
['王飞', '上海市徐汇区上海市徐汇区H88越虹广场B座5E'],
['华升', '北京市海淀区杰睿大厦'],
['朱锴', '上海市浦东新区川沙新镇华川家园33号楼503'],
['陈盼', '浙江省杭州市闲林街道,西溪华东园,十幢一单元401。'],
['司鹏', '河南省鹤壁市淇滨大道310号 鹤壁京立医院'],
]
#物流数据
express2={}
for i in range(len(express)):
express2.update({i:express[i]})
print(express2)
#对所有的快递按照在list中的位置进行编号,以便按照编号查看快递,以及按照要求查看快递的编号;
privince={}
for i in range(len(express)):
provin = express[i][1][:2]
if provin in privince.keys():
privince[provin]=privince.get(provin)+1
else:
privince.update({provin:1})
print(privince)
#统计各省的快递量
figl=plt.figure(num=0,figsize=(10,4))def zhi_fang_tu (self):
ax = plt.axes(arg=[0.1,0.2,0.8,0.7])
plt.bar(privince.keys(),privince.values(),width=0.8)
#在图形窗口显示各省的快递量的直方图,以便按省分配运力。
def bian_hao_cha_xun(a):
for i in range(len(express)):
if a[:2] in express[i][1]:
print(i)
#当输入某个省的名字(全名或简称,如对于内蒙古自治区可以输入内蒙、内蒙古或内蒙古自治区)时,显示该省所有快递的编号
def sheng_fen_cha_xun(a):
for i in range(len(express)):
if a==i:
print(express2[i][1][:2])
#当输入编号时,显示该编号对应的省份信息,以便对单个快递所处省份进行确认。
def duo_xian_cheng1(self):
my_thread = threading.Thread(target=bian_hao_cha_xun,args=(input('请输入省份:'),)) my_thread.start()
#多线程方法
def duo_xian_cheng2(self):
my_thread = threading.Thread(target=sheng_fen_cha_xun,args=(int(input('请输入编号:')),))
my_thread.start()
#多线程方法
axnext1=plt.axes([0.35,0.05,0.1,0.075])
button1=Button(axnext1,'直方图',color='0.5',hovercolor='y')
axnext2=plt.axes([0.45,0.05,0.1,0.075])
button2=Button(axnext2,'省->编号',color='0.5',hovercolor='y')
axnext3=plt.axes([0.55,0.05,0.1,0.075])
button3=Button(axnext3,'编号->省',color='0.5',hovercolor='y')
#在图形窗口放置“直方图”,“省->编号”“编号->省”三个按钮
button1.on_clicked(zhi_fang_tu)
button2.on_clicked(duo_xian_cheng1)
button3.on_clicked(duo_xian_cheng2)
#设置三个按钮单击事件
plt.show()
#打开图形
图可以画好看点,可以看看https://blog.csdn.net/qq_52785473/article/details/124274454