Python程序设计期末作品完整版|代码和程序设计文档

这篇具有很好参考价值的文章主要介绍了Python程序设计期末作品完整版|代码和程序设计文档。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

python程序设计作品,希望对您有帮助,希望您的一键三连!

Python程序设计期末作品完整版|代码和程序设计文档

程序设计报告

1.爬取数据的意义
富豪榜的出现,体现了人们思想的变化:由保守藏富向正向面对财富的转变;由保守向文明开放(–说明了大众媒体的进步与教育的普及等思想工具的极大地提高);标志着人们对财富对经济正在走向新纪元。
2.程序详细设计
(1)设计思路流程图:

Python程序设计期末作品完整版|代码和程序设计文档

(2)设计代码实现:
①导入相关数据库
Python程序设计期末作品完整版|代码和程序设计文档

②获取网页的url,并模拟向网页放出请求,并获取响应。按f12进入控制台获取页面的代码,使用正则提取进行具体代码块的寻找,并把对应的代码放入到集合中,方便下面存储时候使用数据。
Python程序设计期末作品完整版|代码和程序设计文档

③创建一个新的工作表,命名相关的属性,并将上述集合中的数据导入其中
Python程序设计期末作品完整版|代码和程序设计文档

④运行检验已经可以生成盛放信息的excel表格,下一步实现数据筛选和可视化处理
Python程序设计期末作品完整版|代码和程序设计文档

⑤创建函数,对富豪前十名和富豪所在国家进行数据统计,然后分别画出饼状图和条形图
Python程序设计期末作品完整版|代码和程序设计文档

⑥通过条形图和饼状图实现数据的客观的可视化

表 1饼状图
Python程序设计期末作品完整版|代码和程序设计文档

表 2 条形图
Python程序设计期末作品完整版|代码和程序设计文档

3.报告总结
企业财富的增长,源于国家经济的发展。可以相信,中国福布斯上榜人数很快就会超过美国,随着中美两国经济规模差距缩小,中美富豪榜财富总额差距也会逐步缩小,直至逆转.中美之间的博弈将会长期存在,但中国超越美国成为世界第一大经济体的趋势不可阻挡,中国只不过是时隔100多年重新回到她原来的位置;我们个人的财富命运与国运(国家发展)是息息相关的,没有一个人能够超脱于国家大的发展背景而能超然存在。未来十年中国财富增长的方式主要通过资本市场体现,投资中国会成为主旋律,期待“富豪为广大的股民打工”早日到来。文章来源地址https://www.toymoban.com/news/detail-504414.html

代码



from bs4 import BeautifulSoup
import requests
import xlwt
import xlrd
import pandas as ps
import numpy
import matplotlib.pyplot as plt

## 读取所有福布斯排行榜数据
def loadalldata():
   alldata = []
   for i in range(1,16,1):
      url = "https://www.phb123.com/renwu/fuhao/shishi_"+str(i)+".html"
      data = loaddata(url)
      alldata = alldata + data
   return alldata
## 将爬取的数据保存到文件
def savedata(path,persionlist):
   workbook = xlwt.Workbook()
   worksheet = workbook.add_sheet('test')
   worksheet.write(0, 0, '排名')
   worksheet.write(0, 1, '姓名')
   worksheet.write(0, 2, '财富')
   worksheet.write(0, 3, '企业')
   worksheet.write(0, 4, '国家')
   for i in range(1,len(persionlist)+1,1):
      worksheet.write(i, 0, persionlist[i-1]['num'])
      worksheet.write(i, 1, persionlist[i-1]['name'])
      worksheet.write(i, 2, persionlist[i-1]['money'])
      worksheet.write(i, 3, persionlist[i-1]['company'])
      worksheet.write(i, 4, persionlist[i-1]['country'])
   workbook.save(path)
   print("数据保存成功:"+path)

## 读取网站数据
def loaddata(url):
   headers = {
       'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) '
                    'Chrome/72.0.3626.121 Safari/537.36'
   }
   f = requests.get(url,headers=headers)   #Get该网页从而获取该html内容
   soup = BeautifulSoup(f.content, "lxml")  #用lxml解析器解析该网页的内容, 好像f.text也是返回的html
   # print(f.content.decode())        #尝试打印出网页内容,看是否获取成功
   ranktable = soup.find_all('table',class_="rank-table" )[0]   #获取排行榜表格
   trlist = ranktable.find_all('tr') #获取表格中所有tr标签
   trlist.pop(0) #去掉第一个元素
   persionlist = []
   for tr in trlist:
      persion = {}
      persion['num'] = tr.find_all('td')[0].string  #编号
      persion['name'] = tr.find_all('td')[1].p.string #名称
      persion['money'] = tr.find_all('td')[2].string #财产
      persion['company'] = tr.find_all('td')[3].string #企业
      persion['country'] = tr.find_all('td')[4].a.string #国家
      persionlist.append(persion)
   print("页面"+url+"爬取成功")
   return persionlist


## 取出排行榜前十的姓名和财富数据 以两个list返回
def loadtop10(path):
    book = xlrd.open_workbook(path)
    sheet1 = book.sheets()[0]
    namelist = sheet1.col_values(1)
    moneylist = sheet1.col_values(2)
    namelist = namelist[1:11]
    moneylist = moneylist[1:11]

    moneylist2 = []
    for a in moneylist:
        a = int(a[0:-3])
        moneylist2.append(a)
    print("取出排行榜前十的姓名和财富数据")
    print(namelist)
    print(moneylist2)
    return namelist,moneylist2

## 统计排行榜中每个国家的上榜人数 以字典list返回
def countcountrynum(path):
   book = xlrd.open_workbook(path)
   sheet1 = book.sheets()[0]
   countrylist = sheet1.col_values(4)[1:-1]
   print(countrylist)
   countryset = list(set(countrylist))
   dictlist = []
   for country in countryset:
      obj = {"name":country,"count":0}
      dictlist.append(obj)
   ## 统计出每个国家对应的数量
   for obj in dictlist:
      for a in countrylist:
         if obj['name'] == a:
            obj['count'] = obj['count'] + 1
   print(dictlist)
   ## 将dictlist排序 数量多的放前面 8 5 6 9 3 2 4
   for i in range(0,len(dictlist),1):
      for j in range(0,len(dictlist)-i-1,1):
          if dictlist[j]['count'] < dictlist[j+1]['count']:
             temp = dictlist[j]
             dictlist[j] = dictlist[j+1]
             dictlist[j+1] = temp
   dictlist2 = dictlist[0:5]
   set2 = []
   for a in dictlist2:
      set2.append(a['name'])
   othercount = 0;
   for a in dictlist:
      if a['name'] not in set2:
         othercount = othercount + 1
   dictlist2.append({"name":"其他","count":othercount})
   print('获取排行榜中每个国家的上榜人数')
   print(dictlist2)
   return dictlist2

## 绘制条形图和饼状图
def drow():
   plt.rcParams['font.sans-serif'] = ['SimHei'] # 设置中文字体
   plt.figure('福布斯前十榜',figsize=(15,5))

   ## 读取福布斯排行榜前十的数据
   listx,listy = loadtop10('rank.xls')
   plt.title('福布斯前十榜', fontsize=16)
   plt.xlabel('人物', fontsize=14)
   plt.ylabel('金额/亿美元', fontsize=14)
   plt.tick_params(labelsize=10)
   plt.grid(linestyle=':', axis='y')
   a = plt.bar(listx, listy, color='dodgerblue', label='Apple', align='center')
   # 设置标签
   for i in a:
      h = i.get_height()
      plt.text(i.get_x() + i.get_width() / 2, h, '%d' % int(h), ha='center', va='bottom')
   ## -------------------------------------------------------------------------
   dictlist = countcountrynum("fuhao.xls")
   plt.figure('各国家上榜人数所占比例')
   labels = []
   sizes = []
   for a in dictlist:
      labels.append(a['name'])
      sizes.append(a['count'])
   explode = (0.1, 0, 0, 0, 0, 0)
   plt.pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%', shadow=False, startangle=150)
   plt.title("各国家上榜人数所占比例", fontsize=16)
   plt.axis('equal')  # 该行代码使饼图长宽相等

   plt.show()

if __name__ == '__main__':

   ## 爬取数据
   data = loadalldata()
   ## 保存数据
   savedata("fuhao.xls",data)    # py文件同级目录创建rank.xls文件
   ## 展示数据
   drow()

到了这里,关于Python程序设计期末作品完整版|代码和程序设计文档的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序毕业设计作品成品(02)高校校园教室预约小程序系统设计与实现

    博主介绍 :《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、PPT、论文模版

    2024年02月08日
    浏览(39)
  • 微信小程序毕业设计作品成品(51)微信小程序手机商城系统设计与实现

    博主介绍: 《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、PPT、论文模版

    2024年02月08日
    浏览(68)
  • 微信小程序毕业设计作品成品(40)微信小程序茶叶商城系统设计与实现

    博主介绍: 《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、PPT、论文模版

    2024年02月08日
    浏览(68)
  • 微信小程序毕业设计作品成品(42)微信小程序电器商城系统设计与实现

    博主介绍: 《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、PPT、论文模版

    2024年02月08日
    浏览(62)
  • 微信维修报修小程序系统设计与实现毕业设计作品成品

    目的 :本课题主要目标是设计并能够实现一个校园维修报修的微信小程序系统,前台用户使用小程序查找维修人员并提交预约维修,后台管理使用基于PHP+MySql的B/S架构;通过后台添加资讯、录入校园维修人员信息信息、管理校园维修预约订单等。 意义 : 1.校园维修是延长

    2024年02月05日
    浏览(45)
  • 微信小程序毕业设计作品成品(23)微信小程序影视电影播放系统设计与实现

    博主介绍: 《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、PPT、论文模版

    2024年02月08日
    浏览(73)
  • 微信小程序毕业设计作品成品(30)微信小程序驾校模拟考试系统设计与实现

    博主介绍: 《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、PPT、论文模版

    2024年02月07日
    浏览(65)
  • 微信小程序毕业设计作品成品(12)微信小程序校园维修报修系统设计与实现

    博主介绍 :《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、PPT、论文模版

    2024年02月08日
    浏览(67)
  • 微信小程序毕业设计作品成品(28)微信小程序物业维修报修系统设计与实现

    博主介绍: 《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、PPT、论文模版

    2024年02月08日
    浏览(60)
  • 微信小程序毕业设计作品成品(14)微信小程序校园共享洗衣系统设计与实现

    博主介绍: 《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、PPT、论文模版

    2024年02月08日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包