python面试题

01、python2中有range和xrange,这两个有什么区别?

  在py2中,range得到的是一个列表,xrange得到的是一个生成器对象

  在py3中去掉了xrange,range为py2中的xrange,返回生成器对象,节省资源

02、print(int('111', 2)) 的结果是?

  6,是将‘111’按二进制转换成十进制
03、在python当中如何获取命令行参数?

  
04、test = [{'name':'tom', 'salary':20000}, {'name':'jack', 'salary':15000}, {'name':'liming', 'salary':10000},],根据salary由大到小进行排序

  print(sorted(test, key=lambda key: key['salary'], reverse=True))
05、python中id、is、=、== 分别是比较什么的?

  分别是:id(身份标识)、type(数据类型)和value(值)

  is和==都是对对象进行比较判断作用的,但对对象比较判断的内容并不相同。下面来看看具体区别在哪。

  ==比较操作符和is同一性运算符区别

  ==是python标准操作符中的比较操作符,用来比较判断两个对象的value(值)是否相等,例如下面两个字符串间的比较:


06、python的小数据池是什么?
07、truncate的作用?
08、如何调整文件中的指针?
09、f.write('hello'),hello是写进了文件还是只是存在内存当中?如何使写的内容主动存储到文件中?
10、流程控制当中:pass、continue、break、exit分别是什么作用?
11、python当中的赋值、浅拷贝、深拷贝有什么区别?
12、python中的可变数据类型有哪些?为什么叫做可变数据类型?
13、python中lambda、map、filter、reduce这些内置函数的作用?利用这些函数,找出1到100中所有的奇数。
14、为什么*args和**kwargs叫做函数的非固定参数?它们是什么数据类型?
15、函数的作用域有哪些?作用域的查找顺序?
16、给出最后print的结果    【6,6,6,6】  https://blog.csdn.net/qq_45632139/article/details/106956382
        def multipliers():
            return [lambda x : i * x for i in range(4)]
        print([m(2) for m in multipliers()])
17、字符串的拼接可以使用+和join完成,两者有什么区别?

  str+=‘字符串’ : 耗时耗力,因为每次都会开辟新的空间(字符串不可变)

  join() : 利用列表可变的性质,省时省力,性价比更高

18、python的自省是指的什么?

  自省就是面向对象的语言所写的程序在运行时,所能知道对象的类型.

  简单一句就是运行时能够获得对象的类型.比如 type(),dir(),getattr(),hasattr(),isinstance().

19、一行代码实现1-100偶数求和,至少5种方式

  https://www.cnblogs.com/nly666/p/14633163.html?ivk_sa=1024320u

  ##方法2 sum函数.列表解析式,数组切片
  #res=sum([i for i in range(1,100) if i%2==1])
  #print(res)

  #res=sum([i for i in range(1,100,2)])
  #print(res)

  #res=sum(list(range(1,100))[::2])
  #print(res)


20、什么是闭包函数,闭包函数满足什么样的条件?请写一个常见的闭包函数。
21、什么是递归函数?请用递归函数实现10的阶乘:10*9*8*7....*1
22、什么是装饰器,装饰器的作用是什么?
23、写一个简单的登录验证的装饰器。
24、什么是可迭代对象、迭代器、生成器?

 

 


25、json和pickle模块的作用是什么?有什么区别?
26、利用random模块写一个6位的随机验证码,验证码内包含字母、数字(随机出现)
27、re模块中,search、match、findall的作用分别是什么?
28、用户输入一个时期格式:2020-11-06返回是一年中的第几天?
29、如何使用subprocess执行查看/bin/目录下的存在我文件或者目录?
30、类名为People,说一下下面这些特殊属性的作用。
        People.__dict__
        People.__module__
        People.__doc__
31、内和对象在内存中是如何保存的?
32、什么是绑定到对象的方法、绑定到类的方法、非绑定方法,这些方法有什么特点?
33、python中的经典类和新式类有什么区别?
34、Python中staticmethod,和classmethod的作用是什么?
35、__slots__属性的作用是什么?
36、在python中in操作对于list, set, tuple, dict 效率如何?
37、python中异常处理的作用是什么?什么是万能异常?如何在一段代码上加万能异常?
38、什么是粘包?粘包现象是怎么发生的。如何解决粘包?
39、什么是并发和并行?
40、简述进程、线程、协程的区别以及使用场景。
41、进程之间是如何进行通信的?
42、什么是生产者消费者模型?
43、IO多路复用的作用?
44、IO模型有哪些,描述下各个IO模型的特点?

45、合并两个列表,输出一个新的列表

alist=list(map(int,input().split()))

blist=list(map(int,input().split()))

clist=set(alist+blist)

print(sorted(list(clist)))

46、字典的三种打印方式

1. 最简单的方式:

print(dict)
结果:

{‘name’: ngy, ‘age’: 23, ‘height’: 180}

  1. 逐个打印key:

for key in dict.keys():
print(‘key = {}’.format(key))
结果:

key = name

key = age

key = height

  1. 逐个打印value:

for value in dict.values():
print(‘value = {}’.format(value))
结果:

value = ngy

value = 23

value = 180

  1. 逐个打印key:value:

for key,value in dict.items():
print(‘{key}:{value}’.format(key = key, value = value))
结果:

name:ngy

age:23

height:180

47、Linux怎么统计当前文件夹下所有的文件数量?包含子文件?

  ls -l | grep "^-"| wc -l

  ls -lR | grep "^-"| wc -l

    "^-":保留一般文件,目录的话为:"^d"

48、vim里面怎么统计字符串出现的个数

  %s/string/&/gn

49、怎么打乱一个排序好的列表

 

50、PO封装的好处?

  po 封装好的好处 就是实现了页面对象和测试用例的分离, 方便用例组装和功能扩展及维护!po 就是把页面每一步操作都定义成page类中的方法, 这样写用例 就只需要理清逻辑 调用方法即可  哪里出错 也能及时定位到错误的步骤方法, 用例新增一些重复的步骤也能得到复用, 功能扩展也得到分离, 避免用例太过臃肿, po模型写测试用例,更注重逻辑,清晰明了

51、selenium的原理?

  当使用Selenium2.0启动浏览器时,后台同时启动基于WebDriver Wire协议的Web Server作为Selenium的Remote Server,并与浏览器绑定。之后,Remote Server就开始监听Client端的操作

  执行测试时,测试用例会作为Client端,将需要执行的页面操作请求以Http Request的方式发给Remote Server;该Http Request的body,是以WebDriver Wire协议规定的JSON格式来描述需要浏览器执行的具体操作;

  Remote Server接收到请求后,会对请求进行解析,并将解析结果发给WebDriver,由WebDrvier实际执行浏览器的操作;

  WebDriver可以看作是直接操作浏览器的原生组件(Native Component),所以搭建测试环境时,通常都需要先下载浏览器对应的WebDriver

 

52、如何保证自动化测试的稳定性?web UI
  1、元素元素问题——添加等待,稳定的定位方式,xpath不能用绝对定位,css
  2、用例设计——用例解耦,用例之间没有依赖关系,每个用例从头开始
  3、造成数据或者必要的位置,走接口
 
53、说一下你指导的HTTP状态码,以及它们代表什么意思
200成功、、
302重定向、
4xx 客户端问题
400 无法找到
401 未授权
403 禁止访问
404未找到 前端错误
405 方法不允许
415 content-type能运行访问的多媒体类型是什么
5xx 服务端的问题
500内部服务错误
502 错误的网关
503服务没有办法获得,请求过多等
504 网关超时
 
54、如何模拟弱网测试
构造弱网的场景,查看接口性能及页面的展现效果
方法:fiddler,charlse,F12
手机:进行不同的网络设置
 
55、验证码的几种处理方式
1、上线前注释
2、万能验证码
3、AI识别
4、抓包cookie值跳过验证
 
56、web ui自动化测试中的显示等待,隐式等待的区别
相同:只能等待,规定之间查找,找到就结束直到超时或者找到为止
隐式等待全局的查找
显示等待针对于某个查找或者动作,判断
 
57、请说一下单列模式的概念及应用场景
单例模式,设计思想,单例对象的类只有一个实例存在
场景:回收站,任务管理器,线程池设计,数据库的连接池,web应用对象的读取,网站计数器
 
 
58、什么是幂等性
就是用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用
 
 
lambda:匿名函数
map:函数会根据提供的函数对指定序列做映射。
filter:过滤器
sorted:函数对所有可迭代的对象进行排序操作
sort:对列表排序 reverse = True 降序 , reverse = False 升序(默认)
reduce:函数会对参数序列中元素进行累积。
 
python可变对象:

 

 

 python创建全局变量:glaba
 
 
 
 
 

posted @ 2021-04-02 13:54  石头255  阅读(113)  评论(0)    收藏  举报