1:一行代码实现1--100之和
print(sum(list(range(1,101))))
2:如何在一个函数内部修改全局变量
global 修改全局变量
局部作用域只能调用全局作用域的变量,但是不熊修改全局作用域的变量,如果想要修改全局作用域的变量需要global一下
3:列出5个python标准库
re
sys
time
os
random
math
datetime
subprocess
4:字典如何删除键和合并两个字典
del dict[key] pop dict[key] 删除
update + dict(dict1.items()+dict2.items()) + dict(dict_a,dict_b)
5:谈下python的GIL
GIL 是python的全局解释器锁,
同一进程中假如有多个线程运行,一个线程在运行python程序的时候会霸占python解释器(加了一把锁即GIL),
使该进程内的其他线程无法运行,等该线程运行完后其他线程才能运行。如果线程运行过程中遇到耗时操作,
则解释器锁解开,使其他线程运行。所以在多线程中,线程的运行仍是有先后顺序的,并不是同时进行
多进程中因为每个进程都能被系统分配资源,相当于每个进程有了一个python解释器,所以多进程可以实现多个进程的同时运行,缺点是进程系统资源开销大
6:python实现列表去重的方法 先把列表转set集合,再转成list列表
set(list())
7:fun(*args,**kwargs)中的*args,**kwargs什么意思?
*args, 可变数量参数 接收位置参数自动封装成元组
**kwargs 关键字可变数量参数 接收关键字参数会自动封装成字典、
8:python2和python3的range(100)的区别
python2返回列表,python3返回迭代器,节约内存
9:一句话解释什么样的语言能够用装饰器?
函数名可以当成参数传递的语言
10:python内建数据类型有哪些
int
float
str
list
set
布尔
ddictionary
tuple元组
11:简述面向对象中__new__和__init__区别
__init__ 参数self,构造函数,初始化方法,创建对象后,就立刻被默认调用了,可接收参数,
__new__ 参数cls,必须有返回值,py3默认继承父类object的new方法,类名实例化后会返回一个实例
自己重构__new__方法的时候注意,一把需要把父类object的new函数生成的实例return出来
__init__ 的参数self,就是__new__返回的实例,实例化一个对象的时候__new__方法先调用
调用后返回一个self实例,
如果__new__创建的是当前类的实例,会自动调用__init__函数,通过return语句里面调用的__new__函数的第一个参数是cls来保证是当前类实例,
如果是其他类的类名,;那么实际创建返回的就是其他类的实例,其实就不会调用当前类的__init__函数,也不会调用其他类的__init__函数。
12:简述with方法打开处理文件帮我我们做了什么?
打开文件在进行读写的时候可能会出现一些异常状况,如果按照常规的f.open写法,我们需要try,except,finally,
做异常判断,并且文件最终不管遇到什么情况,都要执行finally f.close()关闭文件,
with方法帮我们实现了finally中f.close
open的话打开文件代码gg不会自动关闭文件,with open会
13:列表[1,2,3,4,5],请使用map()函数输出[1,4,9,16,25],并使用列表推导式提取出大于10的数,最终输出[16,25]
list_a=[1,2,3,4,5] res=map(lambda x:x**2,list_a) rep=[i for i in res if i >10] print(rep)
14:python中生成随机整数、随机小数、0--1之间小数方法
random.random 随机返回0-1
random.randint(1,10) 返回0-1随机小数
np.random.randn(5) 返回5个随机小数
15:避免转义需要给字符串加哪个字母表示原始字符串? r
16:<div class="nam">中国</div>,用正则匹配出标签里面的内容(“中国”),其中class的类名是不确定的
div class="nam">(.*?)</div>
17:python中断言方法举例
assert
assrtin
assertnotin
assertequal
assertenotqual
ssertTrue
assertFalse
assertIsNone
assertIsNotNone
18:数据表student有id,name,score,city字段,其中name中的名字可有重复,需要消除重复行,请写sql语句
select distinct name from student distinct name 把搜索出来的neme数据distinct去重
19::10个Linux常用命令
cat vi tail header echo mkdir netstat touch df
clear mount ls ll cp
20:python2和python3区别?列举5个
1:print 2没括号,3有括号
2:py3默认文件编码是utf8,默认字符集编码是unicode,py2默认ascll
3:/ py3默认除法,py2默认乘除
4:range(),map等内置函数,py3默认返回迭代器,py2默认返回列表
5:py3类默认继承objct新式类,py2。7默认是经典类
6:py3是input py2是raw_input
21:列出python中可变数据类型和不可变数据类型,并简述原理
可变:list列表,set集合,dictionary字典
不可变:int str tuple元组
不允许变量的值发生变化,如果改变了变量的值,相当于是新建了一个对象,而对于相同的值的对象,
在内存中则只有一个对象(一个地址),如下图用id()方法可以打印对象的id
允许变量的值发生变化,即如果对变量进行append、+=等这种操作后,只是改变了变量的值,
而不会新建一个对象,变量引用的对象的地址也不会变化,
22:s = "ajldjlajfdljfddd",去重并从小到大排序输出"adfjl"
s = "ajldjlajfdljfddd" res=list(set(s)) res.sort() print("".join(res))
23:用lambda函数实现两个数相乘
func=lambda x,y:x*y
24:字典根据键从小到大排序dict={"name":"zs","age":18,"city":"深圳","tel":"1362626627"}
dict={"name":"zs","age":18,"city":"深圳","tel":"1362626627"} res=sorted(dict) ret={i:dict[i] for i in res} print(ret) sort 是应用在 list上的方法,sorted 可以对所有可迭代的对象进行排序操作。 list 的 sort 方法返回的是对已经存在的列表进行操作,无返回值,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操
25:利用collections库的Counter方法统计字符串每个单词出现的次数"kjalfj;ldsjafl;hdsllfdhg;lahfbl;hl;ahlf;h"
from collections import Counter str_a="kjalfj;ldsjafl;hdsllfdhg;lahfbl;hl;ahlf;h" res=Counter(str_a) nun_1=Counter(str_a).most_common(3) #取前三位 print(nun_1)
26:字符串a = "not 404 found 张三 99 深圳",每个词中间是空格,用正则过滤掉英文和数字,最终输出"张三 深圳"
a = "not 404 found 张三 99 深圳" import re res=re.findall('[^\x00-\xff]{2}',a) ret="".join(res) print(ret) #表达式表示的是0- 255 的ASCII码
27:filter方法求出列表所有奇数并构造新列表,a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] def func(x): if x %2 !=0: return x res=filter(func,a) print(list(res)) #[1, 3, 5, 7, 9]
28:列表推导式求列表所有奇数并构造新列表,a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] res=[i for i in a if i%2!=0] print(res)
29:正则re.complie作用
一个正则表达式如果很长而且需要经常使用的话使用re.compile是将正则表达式编译成一个对象,加快速度,并重复使用
30:a=(1,)b=(1),c=("1") 分别是什么类型的数据?
a=(1,) 元组
b=(1) int数字类型
c=("1") str字符串
31:请写一个函数reverse,参数是一个列表,该函数将列表中的所有元素倒序排列并返回
def reverse_func(lis): alist=[] for i in range(0,len(lis)): nun=lis.pop() alist.append(nun) return alist print(reverse_func([1,2,3,4])) reverse是list的内置方法,reversed是个函数 list_num.reverse()#此处相当于把list_num 逆置了 reverse是改变原来的list, reversed的对象可以是列表和字符串,返回一个反转后的迭代器,但必须要转化成list(),不然不能使用 s1=['a','b','c']s2="abc"print(reversed(s1))print("s1:",list(reversed(s1)))print("s2:",list(reversed(s2)))print("s2:",str(reversed(s2)))
这里为你准备了200G软件测试教程9资料,包括用例模板、计划模板、报告模板、性能调优、自
动化教程、测开模板、简历模板、面试技巧、大厂真题等!点击下方自行获取: