面试题总结
1、
def f(x,l=[]): for i in range(x): l.append(i*i) print(l) f(2) f(3,[3,2,1]) f(3)
考查知识点:列表,深浅copy。弄清楚就ok
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。[0, 1] [3, 2, 1, 0, 1, 4] [0, 1, 0, 1, 4]
2、
用python , 123456789变成987654321'
太简单
考查知识点:切片
3、
python 的re模块中match() search()findall() compile()的区别
match与search函数功能一样,match匹配字符串开始的第一个位置,search是在字符串全局匹配第一个符合规则的。
简单来说就是:
re.match与re.search的区别:re.match只匹配字符串的开始,
如果字符串开始不符合正则表达式,则匹配失败,函数返回None;
而re.search匹配整个字符串,直到找到一个匹配。
re.findall函数返回的总是正则表达式在字符串中所有匹配结果的列表list,此处主要讨论列表中“结果”的展现方式,即findall中返回列表中每个元素包含的信息。
使用re的一般步骤是先使用re.compile()函数,将正则表达式的字符串形式编译为Pattern实例,
然后使用Pattern实例处理文本并获得匹配结果(一个Match实例),最后使用Match实例获得信息,进行其他的操作。
4、a/b/.././c/estips变成a/c/test.jpg变成a/c/test.jpg
为上一级为本级
稍微欠缺的方法,这个写死了:
s="a/b/.././c/test.jpg" s1=s.split("/") s1.pop(s1.index("..")-1) s1.pop(s1.index("..")) s1.pop(s1.index(".")) l = [] for i in s1: l.append(i) print("/".join(l))
正常思路:
s="a/b/.././c/test.jpg" s1=s.split("/") l = [] for i in s1: if i == "..": l.pop() elif i == ".": continue else: l.append(i) print("/".join(l))
考查知识点:列表的几个常用方法

更多精彩