一.链表和数组的区别

数组是最基本的数据结构,所开辟的内存空间是连续的,且内存大小一经确定后便无法再更改

优点:查找速度快,因为开辟的内存空间是连续的

为什么说查找速度快?

  • 因为可以直接通过数组索引得到对应的数据
  • 因为存储数据的内存连续,就算不知道所需要的数据对应的索引,即便从头到尾顺序查找一遍也能得到想要的数据

缺点:
1、浪费内存,缺乏弹性(不能根据当前实际需求更改大小)。

2、增添和删除的效率低。因为数组的大小在一开始就确定,无法更改,在后续想要添加或者删除数据,不能直接往里面添加或者删除索引,取而代之的方法是:先复制原有的数组,根据添加或者删除的数据再增加或减小数组长度,再往新的数组中添加或删除数据。

链表,存储数据的内存不需要连续的,链表中的数据可以存储在内存的任何地方,这是因为链表中的每个数据都存储了下一个链表的地址,从而使离散的内存空间联系在一起,能合理的利用内存。每个链表包含多个节点,每个节点又包含数据域和引用域。

缺点:
查找元素麻烦,如果要查找链表中的一个元素,需要从第一个元素开始,依次往下,直到找到需要的元素位置。

优点:
添加和删除元素十分方便。只需要知道修改前一个元素指向的地址即可。
链表实现原理:

1.创建节点类,并在类中写两个部分,数据域和引用域。

2.创建链表类,需要包含头结点,尾节点和大小,并在其中加入所需要的

二、爬取空气质量状况报告

1.题目

空气质量状况报告-中国环境监测总站

2.代码

import requests
from bs4 import BeautifulSoup
import os
import datetimesave_directory = './save'  #下载的文件存储路径if not os.path.exists(save_directory):os.mkdir(save_directory)def download_data(start_date, end_date):# Request the URL and get the HTML contenturl = "http://www.cnemc.cn/jcbg/kqzlzkbg/index.shtml"response = requests.get(url)content = response.content# Use BeautifulSoup to parse the HTML contentsoup = BeautifulSoup(content, "html.parser")#print(soup)# Find the table that contains the dataall_li = soup.find_all('li')for i in all_li:if i.find_all('span') != []:t = i.find_all('span')update_time = datetime.datetime.strptime(t[1].text.strip(), "%Y-%m-%d").date()#print(update_time)if start_date <= update_time <= end_date:print(i.find('a').text)fliter_url = i.find('a')["href"]print(fliter_url)fliter_url = fliter_url[2:]print(fliter_url)file_url = "http://www.cnemc.cn/jcbg/kqzlzkbg/"+fliter_urlfile_response = requests.get(file_url)file_content = file_response.contenttmp_soup = BeautifulSoup(file_content, "html.parser")print(tmp_soup)for i in tmp_soup.find_all("a"):try:if i["href"].endswith(".pdf"):response = requests.get(i["href"])content = response.contentprint(save_directory + f"/{i.text}.pdf")with open(save_directory + f"/{i.text}.pdf", "wb") as f:f.write(content)except:passdef get_days(year, month):if month in (1, 3, 5, 7, 8, 10, 12):return 31if month in (4, 6, 9, 11):return 30if month == 2:if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:return 29else:return 28return 0
while True:date = input("请输入年月,格式为(2022-10)")try:year, month = date.split("-")breakexcept:print("请输入合法的格式")
year = int(year)
month = int(month)
start_date = datetime.date(year, month, 1)
end_date = datetime.date(year, month, get_days(year, month))
download_data(start_date, end_date)

3.运行结果

python面试及笔试题相关推荐

  1. python考试题目及答案-python面试真实笔试题,带答案(1-10题)

    最近从各种python微信群收集了100多道真实的python面试笔试题,因为都是真实题目,故没有答案,为了给那些即将面试的好友提供一份帮助,也为了给广大好友巩固基本python语法知识,最近将把收集 ...

  2. JAVA面试、笔试题

    @[TOC]目录 JAVA面试.笔试题 @目录 一. CoreJava部分 7 1. java中有哪些基本类型? 7 2. java反射 7 3. 易错,理解题 7 4. Java有几种创建对象的方法 ...

  3. 知名企业面试、笔试题

    知名企业面试.笔试题 46家中外知名企业面试题目 微软 智力题 1.烧一根不均匀的绳子,从头烧到尾总共需要1个小时,问如何用烧绳子的方法来确定 半小时的时间呢? 2.10个海盗抢到了100颗宝石,每一 ...

  4. 博学谷java题库判断_博学谷Java开发面试基础笔试题及答案分享

    博学谷Java开发面试基础笔试题分享:char 型变量中能不能存贮一个中文汉字?为什么?"=="和 equals 方法究竟有什么区别?静态变量和实例变量的区别?是否可以从一个 st ...

  5. java面试、笔试题(0815版)

    java面试.笔试题(201 1. Java基础部分 4 1.一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 4 2.Java有没有goto? 4 3.说 ...

  6. 美国道富java开发面试题_从事Java开发五年,面试9家拿到7家offer,1096面试+67笔试题...

    个人情况 时间总是在不经意间流逝,我们也在人生的旅途上不断前行,转眼间在微软的美国总部工作近两年了.生活总给我们带来新的挑战,同时也有新的惊喜.这两年在陌生的国度里用着不太流利的英语和各种肤色的人交流 ...

  7. java面试的笔试题

    入行也是有一段时间了,正好对以前面试遇到的笔试题,进行一下记录. 先构建一个学生对象,再写一段程序将一组学生对象按照年龄分组(年龄相同的为一组)(代码实现) public class Test1 {p ...

  8. 最近三年的百度产品经理面试与笔试题完整版

    [2013]百度产品经理笔试题 一[约30分钟]: 先让我自我介绍,用三句话描述自己. 我以为是技术面,就按技术的思路说,说自己算法好,还说自己项目做得多,以及自己喜欢互联网. 接着第二个问题是:你怎 ...

  9. 【运维面试】笔试题中最常见的高频问题-搞会你就不怕笔试了

    很多学员去参加面试,上来就让做题, 我总结了下规律: 你期望薪资在12K以下,做笔试题的概率超级高,几乎是90% 你的期望薪资在8K以上,做笔试题的概率是100%: 你的期望薪资是15K以上,做笔试题 ...

最新文章

  1. 【Redis学习笔记】2018-05-30 Redis源码学习之Ziplist、Server
  2. 测试一些利用PYTHON完成中英文翻译的效果
  3. 歌词数据解析、歌词滚动、歌词进度控制功能的实现(基于js-base64、lyric-parser、better-scroll),以vue项目为例...
  4. 二分查找树性能分析(Binary Search Tree Performance Analysis)
  5. 成功解决‘pip‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件
  6. Spring控制反转(依赖注入)的最简单说明
  7. IOS UI开发基础之超级猜图完整版本-08
  8. border-image图片边框
  9. 大团圆结局!苹果高通和解:双方撤销全球所有诉讼
  10. Web API——添加Swagger、SQL Server、日志记录、导出到Excel和Docker
  11. pythonweb自动化项目源码下载_python+requests接口自动化完整项目设计源码
  12. 与神经网络相比,你对P图一无所知
  13. WPF Visifire 图表控件
  14. ASCII表,二进制、十进制对照表
  15. Kindle3 升级
  16. 旧版本ios软件整理
  17. Python可视化 | 风玫瑰图可视化示例
  18. Packet Data Convergence Protocol (PDCP)阅读笔记
  19. 144Hz风冷旗舰:红魔5G游戏手机“比快更快”
  20. Skype for Android 无线网络电话随心打

热门文章

  1. 从零开始java安全权限框架篇(一):spring security配置登录登出的配置
  2. 梯度下降算法原理讲解——机器学习
  3. 一个工作、看书、写字产品经理的Q2总结!
  4. Padans Timedelta时间差
  5. 长期使用笔记本触控板请以中指为主
  6. input 事件监听
  7. python课件_python展示ppt
  8. 吃鸡游戏对服务器性能,超级服务器已部署!吃鸡国服再爆好消息,游戏速度将会起飞!...
  9. vue中computed、methods、watched比较
  10. cocos creator的cc.pageView的禁止触摸翻页