python 如何判断一个函数执行完成_买朋友圈8块9的小课,不如收藏这里40道Python必考面试题...

?如能帮到你,下方为我们点个 0abaa68f888a16f81dbbf235cc817d87.gif?

a8a0693ceaa8194b0e9acea90cb3ebb2.png 超过50位测试同学面试后总结的python相关面试题,分享给大家,希望可以在疫情过后大家可以找个好工作。 1、自动化流程是什么? 首先搭建环境,然后根据项目搭建自动化框架,编写自动化用例,整理用例,自动生成测试报告,然后集成到jenkins上进行操作 2、app出现ANR和crash如何操作? 出现ANR和crash进行复现抓取日志(adb命令) 3、在自动化的过程中出现用例执行失败,应该怎么做? 编写自动化用例的时候断言编写清楚,然后也可以通过用例失败后进行截图进行保存,方便我们后续查看用例失败原因,自动化用例失败后,进行手工操作,查看是否真的存在问题,如果不存在,可以查看代码是否书写错误 4、在web和app中,一个元素明明定位到了,但是点击无效 web自动化中我们可以通过JS进行点击元素,app自动化中如果是H5页面的时候没有办法点击,我们需要用到webdriver中的触摸模块app自动化中如果点击无效,我们可以通过坐标的方式进行模拟点击 5、app测试和web测试有什么区别? 整体来说,web测试和app测试一般没有区别,都需要进行需求评审,用例评审,提bug,提交测试报告。唯一区别的就是app测试需要进行安装,下载,升级,覆盖以及冷启动和热启动,还有手机上的电话,电量不足,信息,以及其他软件的交互测试 6、自动化中如何截图 通过函数 get_screensho t_as_file(self,filename)  进行截图 7、目前测试都需要依赖登录,自动化中如何操作? ①如果是接口自动化的话可以使用session进行保持会话,然后再执行登录后的操作 ②如果是web自动化的话可以进行定位输入账号密码完成登录 ③如果是app自动化的话可以进行定位账号密码输入完成登录 8、你在自动化中使用过数据驱动吗? 一般使用ddt数据驱动来进行存储数据,有时候也会使用paramunittest 9、写出常用的python库 我们做测试的常用的肯定是与测试有关的喽 ①requests--接口自动化 ②selenium--web的UI自动化 ③appium--app的UI自动化 ④re ---正则表达式 10、python的数据类型 ①整型--int ②布尔型--bool ③字符串--str ④列表--list ⑤元组--tuple ⑥字典--dict 11、python2与python3的区别 安静来看python2和python3的最大区别就是编码问题了,python2中使用ascii编码,python3中使用utf-8编码。 12、python的可变数据类型和不可变数据类型 ①不可变数据类型:数值型、字符串型string和元组tuple 不允许变量的值发生变化,如果改变了变量的值,相当于是新建了一个对象 ②可变数据类型:列表list和字典dict; 允许变量的值发生变化,即如果对变量进行append、+=等这种操作后,只是改变了变量的值,而不会新建一个对象,变量引用的对象的地址也不会变化,不过对于相同的值的不同对象,在内存中则会存在不同的对象,即每个对象都有自己的地址,相当于内存中对于同值的对象保存了多份,这里不存在引用计数,是实实在在的对象。 13、在编辑python脚本的时候遇到bug怎么解决 ①通过print()进行调试,看看哪里出了问题 ②如果是第三方库的书写问题,查找文档, 14、python如何操作Excel表 第3方库xlwr和xlrd,其中xlwr是对Excel进行写,xlrd是对Excel进行读 15、*arg和*kwarg的作用 简单的来说就是可以是我们的函数引入多个实参 ①*arg返回的是元祖 ②**kwarg返回的是字典 16、python通过什么连接数据库 ①python2通过MYSQL-python ②python3通过pyMysql 17、我们通过编写自动化测试的过程通过什么保存数据 通过yaml或者是ini 18、装饰器是什么 装饰器是为已经存在的函数或者对象添加额外的功能。本质上是一个闭包函数(闭包函数:本质是个嵌套函数,内层函数引用外层函数的变量并且返回外层函,外层函数返回内层函数) 19、装饰器的作用 ①不修改已有函数的源代码 ②不修改已有函数的调用方式 ③为已有函数添加额外的功能 20、如何提高python的运行效率 ①使用生成器,因为可以节约大量内存 ②循环代码优化,避免过多重复代码的执行 ③核心模块用Cython PyPy等,提高效率 ④多进程、多线程、协程 ⑤多个if elif条件判断,可以把最有可能先发生的条件放到前面写,这样可以减少程序判断的次数,提高效率 21、如何判断是函数还是方法 通常来说类中的函数为方法,类外面声明def为函数 22、求出1-100之间的和
# coidng:utf-8a = 0for i in range(0,100):    a += (i+1)print(a)#代码结果5050#也可以使用函数sumsum = sum(range(1,101))print(sum)#代码结果5050
23、冒泡排序
a = [1,6,4,2,67,32]l = len(a)for i in range(l):    for j in range(l-1):        if a[l-j-1]            a[l-j-1],a[l-j-2] = a[l-j-2],a[l-j-1]for i in range(l):    print(a[i])# 代码结果12463267
24、数字排序 一看就是冒泡排序。这次我们用函数
a = [1,6,4,2,67,32]m = sorted(a)print(m)# 代码结果[1, 2, 4, 6, 32, 67]# 也可通过其他函数a.sort()
25、列表去重
# 首先转换成列表m = set(a)print(m)print(type(m))# 在从列表转换成列表x  = [i for i in m]print(x)print(type(x)# 代码结果{1, 2, 3, 45, 23}'set'>[1, 2, 3, 45, 23]'list'>
26、lambda函数实现两个数相乘
# 通过匿名函数sum = lambda a,b: a*bprint(sum(2,6))# 代码结果12
27、python两个数值交换
a ,b = 5,6print("a的值为:%s"%a,"b的值为%s"%b)a, b =b,aprint("a的值为:%s"%a,"b的值为%s"%b)#代码结果a的值为:5 b的值为6a的值为:6 b的值为5
28、如何生成一个随机数? 通过random模块
import random# 随机整数a = random.randint(0,100)print(a)# 随机浮点数:m = random.random()print(m)
29、有两组数据分别为a=[1,2,3,4,5] b=[‘a’,'b','c','d','e'],通过python如何成c=['a1','b2','c3','d4','e5']
a=[1,2,3,4,5]b = ["a", "b", "c", "d", "e"]c = [str(i)+str(j) for i,j in zip(b, a)]print(c)#打印结果:['a1', 'b2', 'c3', 'd4', 'e5']
30、通过python实现9乘9口诀
# 9*9口诀for i in range(1,10):    for j in range(1,i+1):        print("%s*%s=%s"%(i,j,i*j),end=" ")    print("")#输出结果:1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 4*1=4 4*2=8 4*3=12 4*4=16 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
31、通过python实现‘hello_world_anjing’变成[‘hello’,‘world’,‘anjing’]
a = 'hello_world_anjing'c = a.split('_')print(c)# 输出结果:# ['hello', 'world', 'anjing']
32、一个列表通过python判断有多少个正数和负数
a = [1, 3, 5, 7, 0, -1, -9, -4, -5, 8]b = []c = []for i in a:    if i>0:        b.append(i)    elif i         c.append(i)    else:        passprint(len(b))print(len(c))#执行结果:54
33、通过python如何实现字符串和列表的转换
# 字符串转换列表a = 'anjing'c = list(a)d = a.split(' ')print(d)# 列表转换字符串a = ['1','2','3','4']c =''.join(a)print(c)
34、列表去重
# 列表去重a = ['1','2','3','4','2','1','4']c = set(a)print(c)# {'2', '3', '1', '4'}
35、python中的__int__表示什么
# 初始化函数,用来完成一些默认的设定class test():    def __init__(self):        self.name = 'anjing'        self.age = '18'a = test()print('我的名字是:%s'%a.name)print('我的年龄是:%s'%a.age)#执行结果我的名字是:anjing我的年龄是:18
36、对列表进行翻转
# 列表进行翻转a = [1,2,3,4,5]print(a[::-1])# [5, 4, 3, 2, 1]
37、loging模块是什么?有什么作用? loging属于日志模块,在我们编写脚本的时候可以告诉我们每一步都在干什么,如果报错的话,方便我们进行分析数据,也就是我们平常说的打点的作用
import logginglogging.basicConfig(level=logging.DEBUG,                    format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',                    datefmt='%a, %d %b %Y %H:%M:%S',                    filename='/tmp/test.log',                    filemode='w')logging.debug('debug message') # 低级别的,调试信息logging.info('info message') # 正常信息logging.warning('warning message') # 警告信息logging.error('error message') # 错误信息logging.critical('critical message') # 高级别的 # 严重错误信息
38、append和extend的区别
# appenda = [1,2,3,4,5]c = [6,7]a.append(c)print(a)# [1, 2, 3, 4, 5, [6, 7]]
# extenda = [1,2,3,4,5]c = [6,7]a.extend(c)print(a)# [1, 2, 3, 4, 5, 6, 7]
39、通过代码介绍下zip函数用法 zip()函数在运算时,会以一个或者多个序列作为参数,返回一个元祖的列表,zip()参数口语接受任何类型的序列,通过也支持多个参数。
# 列表a = [1,2]b = [3,4]c = [i for i in zip(a,b)]print(c)# [(1, 3), (2, 4)]
# 元祖a = (1,2)b= (3,4)c = [i for i in zip(a,b)]print(c)# [(1, 3), (2, 4)]
# 字符串a = '12'b = '34'c = [i for i in zip(a,b)]print(c)# [(1, 3), (2, 4)]
40、如果一个3位数等于其各位数字的立方和,则称这个数为水仙花数。求1000以内的水仙花数(3位数)
sxh = []for i in range(100, 1000):    s = 0    m = list(str(i))    for j in m:        s += int(j)**len(m)        if i == s:            sxh.append(i)print("100-999的水仙花数:%s" % sxh)# 100-999的水仙花数:[153, 370, 370, 371, 407]
———————  End  ——————— 测试大咖秀5000人QQ交流群: QQ群号:636803769加群暗号:武汉加油,中国加油! 测试大咖秀微信交流群: 请加群主微信 1327239410回复数字2 视频公开课: 钉钉扫描下方海报进入直播群即可! e4dac191de145bf9de1e68ebc11493e1.png 如能帮到你,为我们点个   0abaa68f888a16f81dbbf235cc817d87.gif
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值