python自动化测试面试题大全_Python自动化测试常见面试题 三

1e30e924b899a9019b21d77476bf287e0208f508.jpeg?token=abb28ce27981bb1318f2277692721e68&s=BC85D9140233278488B131430300E0D0

一、*args和**kwargs的区别?

1.1、概述:

分别代表元组和字典的两种形式,他们可以作为形式参数存在也可以作为实际参数存在。作为形式参数存在被称为打包,作为实际参数存在被称为拆包

1.2、详细描述:

作为形式参数(打包):将位置的实际参数打包到元组中, 将关键字的实际参数打包到字典中。

def 函数名字(*args): #打包位置实际参数放在元组中

pass

函数名字(实际参数1,实际参数2)

def 函数名字(**kwargs): # 打包关键字实际参数放在字典中

pass

函数名字(关键字1=实际参数1,关键字2=实际参数2)

作为实际参数(拆包): 将元组或者字典展开作为实际参数传给形式参数:

def 函数名字(形式参数1,形式参数2):

pass

元组 = (数据1,数据2)

函数名字(*元组) #将元组中的元素一一对应传递给形式参数

def 函数名字(name,age):

pass

字典 = {name:数据1,age:数据2}

函数名字(**字典) #将字典中的元素按照键一一对应传递给形式参数

1.3、应用场景:

在实现装饰器时,为了可以对任意的函数都能进行装饰,内置的闭包函数就会用*args,**kwargs来处理。

定义未知个数的形式参数。

2、Python中filter()、map()和reduce()的区别

2.1、概述:

filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。

map() 会根据提供的函数对指定序列做映射

reduce() 函数会对参数序列中元素进行累积。

2.2、详细描述:

filter()函数

1.语法:

filter(function, iterable)

该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回

True 或 False,最后将返回 True 的元素放到新列表中。

2.案例: 得到列表中的奇数

def is_odd(n):

return n % 2 == 1

newlist = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

for n in newlist:

print(n)

map函数:

1.语法:

map(function, iterable, ...)

第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。

2. 案例: 提供了两个列表,对相同位置的列表数据进行相加

result = map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])

print(result)# [3, 7, 11, 15, 19]

将后面两个列表中的分别一一对应取出之后传递给x,y.

reduce()函数:

1.语法:

reduce(function, iterable[, initializer])

函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参

数)先对集合中的第 1、2 个元素 进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。

python3中将 reduce 放在functools模块中了

2. 案例: 提供了两个列表,对相同位置的列表数据进行相加

from functools import reduce

result = reduce(lambda x, y: x+y, [1,2,3,4,5])

print(result)#15

2.3、应用场景:

面试题: 分别使用map,reduce,filter函数完成下面的任务

1、计算1-100的和

from functools import reduce

result = reduce(lambda x, y: x + y, range(1, 101))

print(result)

2、1-10,对每个数字的平方

result = map(lambda x:x**2,range(1,11))for n in result:print(n)

3、 {“a”,”ab”,”abc”,”bc”,”cd”}输出含有C字符的元素,返回值是list

result = filter(lambda x: "c" in x, {"a", "ab", "abc", "bc", "cd"})for n in result:print(n)

3、Python的可变类型和不可变类型包含哪些?

3.1、概述:

可变类型 包含: 列表(List)、字典(Dict)、集合(Set)。

不可变类型 包含: 字符串(String)、整数(int)、小数(Float) 布尔(Bool)、元组(Tuple)

3.2、详细描述:

3.2.1可变数据类型的特点

里面的值发生改变时不会新生成一个变量.内存地址不变. 因为改变的数据会发生在内存中.

3.2.2不可变数据类型的特点

只要值发生了改变.就会重新开辟一个内存空间. 内存地址也发生了改变, 如果元组中的元素是可变数据类型,该元素中的值是可以改变的。

values = ("张飞", ["刘备"])

values[1][0] = "刘玄德"

print(values) #('张飞', ['刘玄德'])

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、linux 1,linux常用命令 2,某个时间段日志的查询 3,linux文件的上传和下载 二、功能测试 1,工作中所遇到的错误 2,测试流程: 3,测试计划元素: 4,测试报告元素: 5,测试点: 6,测试方法: 7,bug相关问题 8,adb常用命令 9,软件测试原则 10,测试用例编写的要素 11,测试用例的设计原则 12,软件产品质量特性 13,android四大组件 14,web测试和app测试的区别 15,app的anr的根本原因 16,app的crash的原因 17,h5页面图片未加载出来问题排查 18,区分原生和h5页面 19,为什么不能用jenkins打包 、性能测试 1,了解jmeter 2,性能指标 3,如何做性能测试 四、接口测试 1,如何设计接口测试用例 2,为什么要做接口测试 3,接口测试的关注点 4,request处理cookie的种方式 五、自动化测试 1,自动化核心框架 2,自动化测试的好处 3,自动化的前提 4,自动化测试的场景 5,元素定位的8种方式 6,如果一个元素无法定位,一般会考虑哪些原因 7,driver.close()和driver.quit()的区别 8,自动化脚本断言 9,判断页面元素是否存在 10,js在web自动化中的作用展示 11,自动化代码优化 12,selenium对比RF 13,自动化测试脚本种等待 14,PO模式 六、HTTP协议 1,HTTP协议特点: 2,HTTP传输原理 3,get和post的区别 4,HTTP响应代码 5,osi七层模型 6,次握手过程 7,session和cookie的区别 8,tcp和udp的区别 9,sockect通信原理 10,post的种请求方式 七、数据库 1,sql分类 2,数据库事务特性:ACID 3,mysql索引的类型 4,池化思想 5,redis 6,如何提高数据库运行效率 八、java 1,面向对象的个特征 2,重写和重载 3,比较sping,sping mvc 4,进程和线程的区别 5,java层架构 6,处理异常 九、python 1,字符串反转的7种方法 2,new 和 _init_ 3,不使用中间变量交换两个变量的值 4,python四大内置高阶函数 5,python带颜色输出 6,python *args,**kargs用法 7,python常用模块 8,python多线程 9,python发送邮件 10,python操作图像 11,python的replace()方法的使用

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值