第一部分 python基础
1. 如何使用python 实现两个变量的值交换?
a,b = b,a利用Python赋值的方式
2. python 种的列表和元组有什么区别
a)列表是[]表示,元组是()表示
b)列表种的元素可以增删改,是可变的;元组中的元素只能查,是不能变动的。
3. python 中的局部变量和全局变量是什么?
全局变量:在函数外或全局空间种声明的变量称为全局变量。这些变量可以由程序中的任何函数访问。
局部变量:在函数内声明的任何变量都称为局部变量。此变量存在于局部空间中,而不是全局空间中。
4. pythn是否区分大小写?
是。Python是一种区分大小写的语言
5. 函数是什么,python中如何定义函数?
函数是一个代码块,,只有在被调用时才会被执行。要在Python种定义函数,需要使用def关键字。
6. python面向对象编程种,关键字self的含义是什么?如何使用?
self 表示类的实例或对象。在python中,self放在类的方法种的第一个参数。
7. python编程种,break,continue 的区别是什么?
break 是终止循环,跳出本层次循环的含义;continue是跳过当次循环,转而去判断下一次循环条件。
8. 在python中使用range()函数生成一个,1、3、5、7、9的列表怎么做?
Range(1,10,2)
9. python字符串转换题型?
Capitalize()函数可以将字符串的第一个字母大写;lower()函数把字符串转换为小写;upper()函数把字符串转换为大写等。
10. 函数中的不定长参数有哪两种形式表示,为什么要使用?
有 *args,**kwargs两种形式,当我们不确定将多少个参数传递给函数,或者我们想要将存储的列表或参数元组传递给函数时,我们使用*args。**当我们不知道将多少关键字 参数传递给函数时使用kwargs,或者它可以用于将字典的值作为关键字参数传递。
11. 列表或元组的索引使用负指数,功能是什么?
Python 中的序列是索引的,它由正数和负数组成,正数的索引使用‘0’作为第一个索引,‘1’作为第二个索引,进程继续使用。负数的索引从‘-1’开始,表示序列中的最后一个索引,‘-2’作为倒数第二个索引,序列向正数一样前进。
12. 如何在python中进行文件操作?
文件操作包含增删改查,要在pyhton中删除文件,先导入os模块,然后需要使用os.remove()函数;要在python中增加和修改文件,可以使用自带的open函数。
13. 之前公司拟用过的python编程规范是如何的?
包:全部小写,单词之间用下划线隔开,如:common_function模块
文件:全小写,单词之间用下划线隔开;
类:大驼峰命名法则,如:BasePage
属性/变量:全小写,单词之间用下划线隔开
方法/函数:全小写,单词之间用下划线隔开,动词写前面,如:open_url
全局变量:全大写,单词之阿金用下划线隔开,如:EXCEL_PATH
14. 如何在python中生存随机数?
可以使用python自带的random库,我之前在使用httprunner构建随机参数化封装的时候用过;random.randint(n,m)生成n到m范围内的一个随机数;random.choice([1,2,3,4,5,6,7,8,9,0]),从序列中随机选取一个元素。
15. 如何使用一行代码实现求1到1000之和?
使用该代码即可sum(range(0,1001))
16. python中的断言如何实现?
关键字:assert assert后面跟合法的表达式,当表达式为True时,不做任何操作,为False时会抛出异常,assert可以快速定位代码中的错误。
17. python 面向对象中的方法,都默认有一个参数self,作用是什么?
在python的类中self代码实例本身,具体来说,是该实例的内存地址。在调用实例的方法时,python解释器会自己把实例和变量传给类的函数中的self。
18. python 如何安装第三方模块?以及用过哪些第三方模块?
一般使用python内置的包管理工具,pip 进行在线安装,好处是可以自动解决包依赖问题,也可以使用离线安装方式,下载离线安装包后,进行解压,然后在解压的文件夹下执行python setup.py install即可安装。之前在企业用过selenium,requests,jsonpath,appnium,httprunner,Django等。
19. python 中自带的re模块match和search方法有什么区别。
match与search函数功能一样,match匹配字符串开始的第一个位置,search是在字符串全局匹配第一个符合规则的字符串。
20. 什么是正则的贪婪匹配?
贪婪匹配:正则表达式一般默认趋向于最大长度匹配,也就是所谓的贪婪匹配。非贪婪匹配:就是匹配到结果就好,就少的匹配字符。比如正则中的元字符。
21. def func(arg1,arg2=[])这种写法会有什么作用和效果?
该题考查函数中包含可变类型参数--列表,每次调用这个方法arg2不会每次都初始化,而是保留上一次的值,如果每次都想初始化,需要给arg2一个默认值none。
22. 一行代码如恶化实现删除列表中重复的值?
List(set(1,2,3,2))先把类别转化成集合类型,这样已经去重,然后转换成列表类型。
23. python面向对象中的继承有什么特点?
在python中,新建的类可以继承一个或多个父类(其他语言只能继承一个父类),父类又可以称为基类或超类;python3版本无论类是否继承object父类,都默认继承object。
24. 在python中,函数和方法的区别是什么。
函数:函数是封装了一些独立的功能,可以直接调用,python内置了许多函数,同时可以自建函数来使用。
方法;方法和函数类似,同样封装了独立的功能,但是方法需要通过对象来调用,表示针对这个对象要做的操纵,使用时采用对象+.进行调用。
25. Python 中异常处理写法
try:
'''执行语句'''
except: #异常对象1
'''触发异常后执行语句'''
except: #异常对象2
'''触发异常后执行语句'''
finally: '''有没有一次都执行的语句'''
Else: '''没有异常执行的语句'''
一般except中一般把子类异常对象写在前面,父类对方写在后面。如果匹配,
子类对象提前触发,能显示更细致的报错原因。华友一个raise关键子,可以手动触发异常,一般和条件语句使用,作为第三方自定义业务异常用。
26. isinstance 作用以及应用场景?
Isinstance(对象参数,类参数)检查对象是否四该类的对象。
27. json序列化时,默认遇到中文会转换成unicode编码格式,如果想要保留中文怎么办?
之前我在接口测试框架中使用requests调用传递json数据姐时遇到过该问题,当时时这样处理的:json.dumps({"name":"小明"},ensure_ascii=False)。
28. Python的with关键字如何理解和使用?
它时一种上下文管理协议,目的在于从流程图中把try,except和finally关键字和资源分配释放相关代码统统去掉,简化try....except....finally的处理流程,简单来说,with表达式其实是try-finally的简写形式。但是又不是全相同。所谓上下文管理协议。这个类的实体里面要包含有对__enter__和—__exit__函数的定义才行。
使用:一般可以用来循环读写文件等使用。With后接一个打开文件对象,然后语句块中对文件进行循环操作,操作完文件后,自动结束。
一般应用场景:1、文件操作。2、进程线程之间互斥对象。3、支持上下问其他对象。
29. python函数有那些参数类型?
必备参数、默认值参数、关键字参数、收集参数(不定长参数,有*和**两种参数,*表示传递元组,**表示传递字典)。
30. Python的浅拷贝,深拷贝如何理解?
浅拷贝只是对另外一个变量的内存地址的拷贝,这两个变量指向同一个内存地址的变量值。浅拷贝的特点:公用一个值;这两个变量的内存地址一样;对其中一个变量的值的改变,另外一个变量的值也会改变;
如:L1 = [1,2,3];L2= L1
深拷贝:一个变量对另外一个变量的值拷贝。
深拷贝的特点:两个变量的内存地址不同;两个变量各有自己的值,且互不影响;对其任意一个变量的值的改变不会影响另外一个
如:L1 = [1,2,3];L2 = L1[:]