Python面试题
文章平均质量分 87
涉及python相关岗位的面试题,包括测试开发岗位、python开发岗位、自动化测试岗位等等
敲代码敲到头发茂密
欲戴王冠,必承其重
展开
-
UI自动化测试面试题总结
Web自动化测试是从UI(用户界面)层面进行的自动化测试,测试人员通过编程自动化程序(测试用例脚本)来打开浏览器测试网站的业务逻辑。Selenium是一个开源的web自动化测试框架,支持多种编程语言开发自动化测试脚本,支持跨浏览器平台进行测试断言:测试将会在检查失败的时候停止,并不运行后续的检查。可以直接了当的看到检查是否通过。缺点:校验失败后,后续检查不会执行。验证:将不会终止测试。原创 2023-01-30 07:58:36 · 3415 阅读 · 1 评论 -
python面试题总结(五)
lambda 函数是一个可以接收任意多个参数(包括可选参数)并且返回单个表达式值的函数1.lambda函数比较轻便,即用即仍,很适合需要完成一项功能,但是此功能只在此一处使用,连名字都很随意的情况下2.匿名函数,一般用来给filter,map这样的函数式编程服务3.作为回调函数,传递给某些应用,比如消息处理。原创 2022-08-25 09:11:32 · 1379 阅读 · 32 评论 -
python面试题总结(四)
生成器:生成器包括列表生成器和函数中加入yield生成器生成器并不是列表,它保存了如何生成生成器中元素的算法解决了列表或者是列表生成式的缺点,解决了大量无用数据占用资源的问题生成器中含有游标,记录了元素的位置,下次使用数据时,会继续去取数据迭代器:通过调用__next__()方法能不断生成下一个数据的方式,就是迭代器闭包:闭包需要满足3个条件:函数中嵌套函数内部函数中调用外部函数中的变量外部函数要返回内部函数中的函数名。原创 2022-08-23 09:20:51 · 3501 阅读 · 55 评论 -
python自动化测试面试题(四)(持续更新)
DNS是域名系统(DomainNameSystem),DNS是用来做域名解析的,它会在你上网输入网址后,把它转换成IP,然后去访问对方服务器;没有它,你想上百度就要记住百度的IP,但有了DNS的处理,你只需要记住对应网站的域名,即网址就可以了。...原创 2022-07-28 07:57:17 · 2285 阅读 · 40 评论 -
python自动化测试面试题(三)(持续更新)
User=namedtuple('User',('name','age','city'))user1=User('kobe','18','洛杉矶')print(user1)#User(name='kobe',age='18',city='洛杉矶')print(user1.name)print(user1.age)print(user1.city)pythonUser(name='kobe',age='18',city='洛杉矶')kobe18。原创 2022-07-27 07:53:31 · 1086 阅读 · 13 评论 -
python后端相关知识点汇总(十二)
C/S:客户端-服务端的架构,他需要安装一个客户端,才能使用这个软件,所以软件升级,除服务端升级以外,需要同步客户端,B/S:浏览器-服务器的架构,是不需要安装客户端,只需要浏览器就可以访问软件,软件升级只需要更新服务器就可以B/S与C/S软件测试思维是一致的,控件点击、数据库交互、后端服务器交互。但是客户端需要考虑安装、卸载、升级的测试。原创 2024-04-17 23:25:55 · 1114 阅读 · 50 评论 -
python知识点汇总(十一)
首先展示解封装将1,2,3封装到元组mytuple中,再将值解封装到变量x,y,zprint(x)print(y)print(z)a = 0b = 1print(a)func(8)原创 2024-04-12 21:42:06 · 1680 阅读 · 48 评论 -
MQ消息队列详解以及MQ重复消费问题
现有ABCDE五个系统,最初的时候BCD三个系统都要调用A系统的接口获取数据,一切都很正常,但是突然,D系统说:我不要了,你不用给我传数据了,A系统无奈,只能修改代码,将调用D系统的代码删除,这时候还没删除呢,E系统发送了请求,但是A系统这时候还没处理完D系统的请求,A系统卒!看下图↓↓↓↓↓↓↓↓↓↓↓。用户发送请求到A系统耗时3ms,A系统发送三条消息到MQ,假如耗时5ms,用户从发送请求到相应3ms+5ms=8ms,仅用了8ms,用户的体验非常好。详情如下图↓↓↓↓↓↓。原创 2024-04-03 08:09:58 · 1829 阅读 · 62 评论 -
python知识点总结(十)
当系统中存在大量的 CPU 密集型任务,会导致 CPU 处理线程变慢。:和处理进程类似,线程进行大量的 I/O 操作也会导致 CPU 处理线程变慢,因为线程需要等待 I/O 操作完成才能继续执行。当进程需要进行大量的输入输出操作时,CPU处理进程的速度会变慢,这是因为I/O操作相比于CPU处理速度较慢。操作:在栈中,数据的插入和删除都是在栈顶进行,压入数据称为入栈(push),弹出数据称为出栈(pop)。操作:在队列中,数据的插入是在队尾进行(enqueue),数据的删除是在队头进行(dequeue)。原创 2024-03-28 21:55:57 · 2058 阅读 · 61 评论 -
python知识点总结(九)
客户端发送请求,用send不用sendto,客户端知道服务器的ip和端口,服务器也知道客户端的端口和ip,因为是面向连接的。等待客户端的连接请求,当前函数是线程阻塞的函数,accept返回2个值,第一个:新的socket,第二个:客户端地址,新的字典为 : {‘age’: None, ‘name’: None, ‘sex’: None}新的字典为 : {‘age’: 10, ‘name’: 10, ‘sex’: 10}新字典为: {‘Name’: ‘Runoob’, ‘Age’: 7}原创 2024-03-26 10:03:41 · 1540 阅读 · 19 评论 -
python知识点总结(八)
2、大小固定:数组的大小在创建时就被确定了,无法动态改变大小,如果需要扩容,通常需要重新分配一块更大的内存空间,将原有的数据拷贝过去。如果是可变对象,在函数体内的修改回影响到实际参数的值,arg2的修改,append(10),回影响到n2的值。如果是不可变对象,在函数体的修改不会影响到实际参数的值,arg1的修改为100,不会影响到n1的值。3、插入和删除效率低:由于数组的内存连续存储,插入和删除元素时需要移动后面的元素,效率较低。2、该方法只能删除开头或者是结尾的字符,不能删除中间部分的字符。原创 2024-03-24 10:55:35 · 1895 阅读 · 12 评论 -
python知识点总结(七)
如果是可变对象,在函数体内的修改回影响到实际参数的值,arg2的修改,append(10),回影响到n2的值。如果是不可变对象,在函数体的修改不会影响到实际参数的值,arg1的修改为100,不会影响到n1的值。:程序员需要手动管理堆内存的分配和释放,如果分配了内存但没有释放,可能造成内存泄漏。:栈内存的分配和释放是由编译器自动完成的,效率高,不会涉及内存管理算法的处理。:堆内存的动态分配和释放需要进行内存管理算法的处理,会比较耗时。真与真 真 ——》结果有假则假。字符串与数字相加:报错。原创 2024-03-22 10:48:48 · 1259 阅读 · 23 评论 -
python知识点总结(六)
浅拷贝:创建一个新的对象,但它包含的是对原始对象中包含项的引用(如果用引用的方式修改其中一个对象,另外一个也会修改改变){1,完全切片方法;3,copy模块的copy()函数}深拷贝:创建一个新的对象,并且递归的复制它所包含的对象(修改其中一个,另外一个不会改变),因此,新对象和原对象没有任何关联。2” 而言, Python 是允许连续比较的,“1 < 2==2” 相当于 ”(1 < 2) and (2。3、模块和包解决了Python中命名冲突的问题,不同的包下可以有同名的模块,不同的模块下可以有。原创 2024-03-21 10:08:43 · 1420 阅读 · 8 评论 -
python知识点总结(五)
而search()则不同,扫描整个字符串,如果产生了一个匹配正则模式就寻找到这个位置,返回相关匹配的对象。findall:在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果有多个匹配模式,则返回元组列表,如果没有找到匹配的,则返回空列表。1、协程是一种用户态的轻量级线程,协程的调度完全由用户控制;线程是进程中执行任务的基本单位(执行指令集),一个进程中至少有一个线程,当只有一个线程时,称为主线程。输出:1,2,3,12,13,23,123(组合数,不考虑顺序,所以12和21是等价的)原创 2024-03-20 10:29:12 · 1472 阅读 · 61 评论 -
python知识点总结(四)
Python中有四种作用域,分别是局部作用域(Local)、嵌套作用域(Embedded)、全局作用域(Global)、内置作用域(Built-in),搜索一个标识符时,会按照LEGB的顺序进行搜索,如果所有的作用域中都没有找到这个标识符,就会引发NameError异常。例如,可以使用cache.get(key)方法从缓存中获取数据,使用cache.set(key, value, timeout)方法将数据存入缓存,并指定过期时间。要使用Django的缓存功能,首先需要在项目的设置文件中配置缓存后端。原创 2024-03-18 23:08:44 · 1914 阅读 · 56 评论 -
python知识点总结(三)
由于内存是有限的,当计算机内存中存在大量的相互(循环)引用计数时,会占用大部分的内存;当新的变量进来时,但是内存不够用了,所以不会去开辟新的内存地址。4、使用内存分析工具:使用内存分析工具memory_profiler可以帮助我们分析内存使用情况,找到内存占用较大的部分,并进行优化。因为删除元素后,整个列表的元素会往前移动,而i却是在最初就已经确定了,是不断增大的,所以并不能得到想要的结果。3、及时释放不再使用的对象:手动解除对不再使用的对象的引用,可以加速垃圾回收并释放内存。遍历在新的列表操作,原创 2024-03-18 10:22:29 · 1384 阅读 · 44 评论 -
python知识点总结(二)
编译型语言特点:编译成二进制文件;一次编译,多次执行;执行速度快(只需要翻译一次),跨平台型比较弱翻译成C代码,再翻译成二进制,再执行;每次编译每次执行;执行速度慢(多次执行、多次编译),跨平台型比较强。原创 2024-03-17 16:48:56 · 1177 阅读 · 35 评论 -
python知识点总结(一)
WSGI:是python web应用程序与web服务器之间的通用标准接口。它定义了web服务器和python应用程序之间的通信协议,使得不同的web服务器和python框架可以无缝集成。WSGI允许开发者使用统一的方式编写web应用程序,而不用关心底层的服务器实现细节。为什么需要wsgi呢?当请求时Web服务器需要和web应用程序进行通信,但是web服务器有很多种啊,例如最新的是nginx,专门提供http服务的;原创 2024-03-16 21:19:40 · 2145 阅读 · 40 评论 -
python高级之元类
1、当我们不写MyType类时,Type中已经帮我们定义好了__init____new____call__方法了当我定义了MyType类时,__init____new____call__方法是我们自己定义的2、这就是为什么实例化对象的时候,先去创建对象再去初始化对象,Type类中已经实现了先 __new__()再__init__()3、代码从上到下执行,当执行到时先创建这个类,去MyType中的__new__()创建方法__init__()实例化方法,类在内存中创建好了,原创 2024-03-06 23:04:27 · 2464 阅读 · 58 评论 -
Python 私有变量(__)的访问和赋值以及变量前加(_)
不能直接访问__name是因为Python解释器对外把__name变量改成了_Person__name,例如,对于类Person中的私有变量__name,可以通过_Person__name来访问。python中的私有变量是以双下划线开头的变量,例如__name。内部的__sex变量已经被Python解释器自动改成了_Person__sex,而外部代码是给m实例新增了一个__sex变量。表面上看,外部代码“成功”地设置了__sex变量,但实际上这个__sex变量和class内部的__sex变量不是一个变量!原创 2024-01-08 09:06:33 · 1504 阅读 · 4 评论 -
python实现一亿个无序数找出Top100
在Python中,heapq模块提供了一些堆队列算法。其中一个功能是使用heappush()方法将元素添加到堆中。堆是树状结构,其中一个结点的值不大于其父节点的值,也称为最小堆。。这意味着堆顶元素始终是堆中的最小值。原创 2024-01-08 00:01:32 · 1141 阅读 · 4 评论 -
Python项目中怎么实现异步任务和定时任务
Celery是由Python开发、简单、灵活、可靠的分布式任务队列是一个处理异步任务的框架其本质是生产者消费者模型,生产者发送任务到消息队列,消费者负责处理任务。Celery侧重于实时操作,但对调度支持也很好,其每天可以处理数以百万计的任务。include:手动加载任务,然或报错,KeyError: ‘task02.write_log’如果任务定义在其他的py文件中,需要将任务(write_log)添加到include列表中;send和app对象在同一个py文件中,不用添加到include。原创 2023-08-16 13:27:35 · 406 阅读 · 0 评论 -
python——统计一个文本中单词频次最高的10个单词
【代码】python——统计一个文本中单词频次最高的10个单词。原创 2022-08-26 09:48:48 · 3286 阅读 · 24 评论 -
python面试题——设计模式之观察者模式
观察者模式:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。观察者模式又称:"发布-订阅"模式。比如,微信公众号,就是一种观察者模式的应用:一个公众号对应了多个(N)个 订阅者,公众号发布了新的文章,所有的订阅者都会被通知并更新。也就相当于,我们所有的订阅者就是观察者,我们观察这个公众号(发布者),他一更新,我们就能知道.原创 2022-08-21 08:54:54 · 1573 阅读 · 73 评论 -
python面试题——抽象基类和接口
from abc import ABC , abstractmethod #定义一个飞机的抽象基类 #抽象基类是不能直接被实例化的 class AirPlane(ABC) : #抽象方法 @abstractmethod def fly(self) : pass #抽象方法 @abstractmethod def oil(self) : pass if __name__ == '__main__' : #抽象基类是不能直接实例化的 plane_a = AirPlane()...原创 2022-08-19 09:16:03 · 1083 阅读 · 74 评论 -
python面试题——Python中怎么通过反射来调用对象的函数?
执行结果:3.6055512754639896动态编程才会用到反射场景:假如原始的一个Point类中定义了distance方法,之后由于业务需求我又在类中又偷偷的定义了distance2方法,但是其他程序员不知道我做了什么改动,我直接告诉他函数名和函数实现的方法就可以了,当他调用类中的distance2方法时就不需要看代码逻辑了。 方法二:利用反射,operator.methodcaller...原创 2022-08-05 07:41:57 · 1714 阅读 · 52 评论 -
python面试题——在类中定义多个构造器
方法时,执行代码会报错;也就是说一个类中采用__init__方法来实现定义多个构造器时不可取的。解决方法:采用类方法或者静态方法定义多个构造器。解决方法:采用类方法或者静态方法定义多个构造器。...原创 2022-08-04 07:42:53 · 806 阅读 · 55 评论 -
python面试题——怎么实现时间的加减计算
需求:从现在开始,两天之后,两个月之后,一年之后分别对于的时间是?基于年,月,天,小时,分钟,秒,毫秒的加减计算?原创 2022-08-03 07:49:32 · 2397 阅读 · 49 评论 -
【python】python中字典的底层是怎么实现的
python字典的底层实现的是哈希表。调用python内置的哈希函数,将键(key)作为参数进行转换(哈希运算+取余运算),得到一个唯一的地址(地址的索引),然后将值(value)存放到对应的地址中(给相同的键赋值会直接覆盖原值,因为相同的键转换后的地址时一样的)哈希表(Hash Table,又称为散列表)是一种线性表的存储结构。由一个直接寻址表 T (假设大小为m) 和一个哈希函数 h(k) 组成。对于任意可哈希对象,通过哈希函数(一般先进行哈希计算,然后对结果进行取余运算),将该对象映射为寻址表的索引原创 2022-06-19 10:21:36 · 2962 阅读 · 13 评论 -
python面试题总结(二)
any():只要迭代器对象中有一个元素为真就为真all():迭代器中所有的判断项返回都是真,结果才为真python中什么元素为假?打印结果依次为:TrueTrueFalse打印结果依次为:TrueFalseFalse同源策略需要同时满足3点要求举例来说:http://www.example.com/dir/page.html协议是 http://域名是 www.example.com端⼝是 80(默认端⼝可以省略)同源政策的⽬的,是为了保证⽤户信息的安全,防⽌恶意的⽹站窃取数据原创 2022-06-29 08:16:18 · 488 阅读 · 42 评论 -
python自动化测试面试题总结(一)(持续更新)
利用po模式,业务逻辑和测试逻辑相分离,当某个页面经常发生变化只需要维护页面,包括元素定位表达式,封装业务方法;不需要修改测试逻辑。原创 2022-07-24 08:41:01 · 5034 阅读 · 53 评论 -
python相关岗位算法面试题总结(持续更新)
执行结果:{‘a’: 3, ‘c’: 4, ‘d’: 1, ‘e’: 1, ‘f’: 1}三、输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数请输入字符串:werwe34534 e564英文字母=6,空格=2,数字=8,其他字符=0五、题目025:求1+2!+3!+…+20!的和六、利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。七、一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。八、求100之内的素数。[2原创 2022-07-16 09:29:15 · 1887 阅读 · 17 评论 -
Python面试题之Python中的线程同步
一、setDaemon(False)当一个进程启动之后,会默认产生一个主线程,因为线程是程序执行的最小单位,当设置多线程时,主线程会创建多个子线程,在python中,默认情况下就是setDemon(False),主线程执行完自己的任务之后,就退出了,此时子线程会继续执行自己的任务,知道自己的任务结束。执行结果:二、setDaemon(True) 当我们使用setDaemon(True)时,这是子线程为守护线程,主线程一旦执行结束,则全部子线程被强制终止执行结果:三、 join(线程同步): join 所原创 2022-06-20 05:00:00 · 498 阅读 · 44 评论 -
python面试题之进程总结
进程:程序运行在操作系统上的一个实例,就称之为进程。进程需要相应的系统资源:内存、时间片、pid。 创建进程: 首先要导入multiprocessing中的Process: 创建一个Process对象; 创建Process对象时,可以传递参数;执行结果:执行结果:执行结果:在初始化Queue()对象时(例如q=Queue(),若在括号中没有指定最大可接受的消息数量,获数量为负值时,那么就代表可接受的消息数量没有上限一直到内存尽头)Queue.qsize():返回当前队列包含的消息数量Queue.em原创 2022-06-21 08:00:52 · 429 阅读 · 16 评论 -
python面试题之read、readline、readlines的区别
可以一次性读取文件中所有内容执行结果:file.read():是从文件的头部开始读取的。如果想要读取部分内容,可以先使用文件对象的seek()方法将文件的指针移动到新的位置,然后再应用read(size)方法读取。执行结果:执行结果:每次读取一行数据执行结果:执行结果:读取全部行,返回的是一个字符串列表,每个元素为文件的一行内容执行结果:执行结果:...原创 2022-07-05 00:03:25 · 2062 阅读 · 30 评论 -
python面试题总结(三)
lambda函数是一个可以接收任意多个参数(包括可选参数)并且返回单个表达式值的函数1.lambda函数比较轻便,即用即仍,很适合需要完成一项功能,但是此功能只在此一处使用,连名字都很随意的情况下2.匿名函数,一般用来给filter,map这样的函数式编程服务3.作为回调函数,传递给某些应用,比如消息处理。...原创 2022-07-15 07:49:45 · 507 阅读 · 22 评论 -
python基础高频_面试题(一)
1、转义字符print(‘hello\rworld’) 输出结果:world,#\r:world将hello进行了覆盖print(‘hello\bworld’) 输出结果:hellworld #\b:是退一个格,将o退没了print(‘http:\\www.baidu.com’) 输出结果:http:\www.baidu.com*2、字符串中最后一个字符不能为*print(r’helloword’) 错误3、当多次赋值之后,变量名会指向新的空间name=‘666原创 2021-08-12 11:20:13 · 415 阅读 · 0 评论 -
python面试题总结(一)
2、如何在一个函数内部修改全局变量执行结果:20,10执行结果:20,204、字典如何删除键和合并2个字典🌙删除键🌙合并字典执行结果:{‘a’: 1, ‘b’: 2, ‘c’: 3, ‘d’: 4}进程中多线程执行任务是共享进程中的数据的,在单个cpu时间范围内,如果某个线程没有执行完毕,并且没有连续的cpu时间片段,此时后面的线程也开始执行任务,会出现数据混乱的现象,即线程不安全。解决方法:加锁,保证某一时间只有一个线程在执行任务。7、fun()中的是什么意思:接收实际参数中所有没有..原创 2022-06-28 08:03:18 · 5822 阅读 · 42 评论 -
python自动化测试面试题(二)(持续更新)
1、自动化测试用例是用来监控的,再次目的下,我们就把自动化测试用例设置成定时执行的,每30分钟执行一次,在jenkins上创建一个定时任务即可2、必须回归的用例。有些测试用例,在产品任何变动上线之前都需要回归测试3、不需要经常执行的测试用例,我们没有必要一直回归执行,毕竟是有时间消耗的,有些时候非必要的业务不需要经常回归4、不需要经常执行的测试用例就需要人工执行,在jenkins创建一个任务,需要执行的时候人工构建......原创 2022-07-25 08:02:00 · 3683 阅读 · 42 评论