Python练习题13

1.用一行代码实现:计算列表list1中偶数位置的元素加2后求和的结果。

sumlist1=sum([i+2 for i in list1 if list1.index(i)%2==0 ])

2.用一行代码实现:现有列表a 和列表b ,求a和b 的差集列表c (c中的元素是差集都有的)

a=[1,2,3,4]
b=[2,3,4,5]
re1=list(set(a)^ set(b)) #求差集

补充一下:求两个集合的差集,并集和交集的方法。

diff=list(set(a).difference(set(b)))  #----> a中的元素,但是在b 中是没有的   不全面
union=set(a).union(set(b))  #--->网上查的有这种方法,但是我尝试了下,说set没有union方法
inter=list(set(a).intersection(set(b))) #---> 求交集 

3.列表L的元素是如下格式的字典{‘a’:1,‘b’:2,‘c’:3},根据字典的值进行升序排序。
如果要是返回的一个列表,可以使用sorted()方法

dicts={'a':1,'b':2,'c':3}
qw=sorted(dicts.keys())
print(qw)   #--> ['a', 'b', 'c']

如果对字典进行排序,返回的还是一个列表,使用下面方法。

dicts={'a':1,'b':2,'c':3}
sortlist=sorted(dicts.items(),key=lambda i:i[0],reverse=False)
newdict={}
for i in sortlist:
    newdict[i[0]]=i[1]
print(newdict)

4.设计一个算法从上到下逐层打印二叉树的节点数据,同一层从左到右打印,节点数据类型为整型。

二叉树节点定义如下:
struct BinartTreeNode
{
int data;
BinartTreeNode *leftChild;
BinartTreeNode *rightChild;
}

5.现有列表a=[‘7net’,‘www.7net’,‘www.septnet’,‘7net’,‘www’],需要从中将包含字符7net的元素给删除掉,请以最少的代码实现。
方法1:

a=['7net','www.7net','www.septnet','7net','www']
print([i for i in a if "7net" not in i])

方法2:

import re
a=['7net','www.7net','www.septnet','7net','www']
b=[]
for i in a:
    ret=re.findall('7net',i)
    if len(ret)==0:
        b.append(i)
print(b)

6.有两个列表L=[‘20’,‘10’,‘3’,‘15’,‘21’]和M=[‘班级20’,‘班级10’,‘班级40’,‘班级23’,‘班级32’],按照数字顺序从小到大排序,不改变原列表。

L=['20','10','3','15','21']
print(sorted(L,key=lambda i:int(i)))

M=['班级20','班级10','班级40','班级23','班级32']
print(sorted(M,key=lambda x:int(x[2:])))

7.re.findall(r’a.b’,‘aabab’)写出该正则表达式的输出,并说明为什么。

import  re        # .点表示匹配任意一个字符   \* 表示前面前面那个字符出现0次或者无限次
print(re.findall(r'a.*b','aabab'))    #  ----> ['aabab'] 

请写出以字母或下划线开始,以数字结尾的正则表达式。

请用xpath找出html页面内id='test_xxx’且class='demo’节点下所有的图片地址。

8.HTTP协议状态码有什么作用,列举出常见的状态码,并说明作用。尽可能的写出requests做http请求支持的输入参数。

200 OK 
请求正常处理完毕
204 No Content 
请求成功处理,没有实体的主体返回
206 Partial Content 
GET范围请求已成功处理
301 Moved Permanently 
永久重定向,资源已永久分配新URI
302 Found 
临时重定向,资源已临时分配新URI
303 See Other 
临时重定向,期望使用GET定向获取
304 Not Modified 
发送的附带条件请求未满足
307 Temporary Redirect 
临时重定向,POST不会变成GET
400 Bad Request 
请求报文语法错误或参数错误
401 Unauthorized 
需要通过HTTP认证,或认证失败
403 Forbidden 
请求资源被拒绝
404 Not Found 
无法找到请求资源(服务器无理由拒绝)
500 Internal Server Error 
服务器故障或Web应用故障
503 Service Unavailable 
服务器超负载或停机维护

requests做http请求的时候,携带的参数有get,post,请求地址url ,参数payload,时间延迟timeout,携带cookies.

9.从输出www.baidu. com到页面返回,中间都发生了什么?

  • 先要解析出baidu.com对应的ip地址
  • 要先使用arp获取默认网关的mac地址
  • 组织数据发送给默认网关(ip还是dns服务器的ip,但是mac地址是默认网关的mac地址)
  • 默认网关拥有转发数据的能力,把数据转发给路由器
  • 路由器根据自己的路由协议,来选择一个合适的较快的路径转发数据给目的网关
  • 目的网关(dns服务器所在的网关),把数据转发给dns服务器
  • dns服务器查询解析出baidu.com对应的ip地址,并原路返回请求这个域名的client
  • 得到了baidu.com对应的ip地址之后,会发送tcp的3次握手,进行连接
  • 使用http协议发送请求数据给web服务器
  • web服务器收到数据请求之后,通过查询自己的服务器得到相应的结果,原路返回给浏览器。
  • 浏览器接收到数据之后通过浏览器自己的渲染功能来显示这个网页。
  • 浏览器关闭tcp连接,即4次挥手结束,完成整个访问过程
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值