好文档 - 专业文书写作范文服务资料分享网站

Python经典面试题

天下 分享 时间: 加入收藏 我要投稿 点赞

return (([],[])) big = sorted_list[-1] small = sorted_list[-2]

big_list, small_list = mean(sorted_list[:-2]) big_list.append(small) small_list.append(big) big_list_sum = sum(big_list) small_list_sum = sum(small_list) if big_list_sum > small_list_sum: return ( (big_list, small_list)) else:

return (( small_list, big_list)) tests = [ [1,2,3,4,5,6,700,800], [10001,10000,100,90,50,1], range(1, 11),

[12312, 12311, 232, 210, 30, 29, 3, 2, 1, 1] ]

for l in tests: l.sort() print

print “Source List:\\t”, l l1,l2 = mean(l)

print “Result List:\\t”, l1, l2

print “Distance:\\t”, abs(sum(l1)-sum(l2))

print ‘-*’*40 输出结果 Python代码

Source List: [1, 2, 3, 4, 5, 6, 700, 800] Result List: [1, 4, 5, 800] [2, 3, 6, 700] Distance: 99

-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

Source List: [1, 50, 90, 100, 10000, 10001] Result List: [50, 90, 10000] [1, 100, 10001] Distance: 38

-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

Source List: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] Result List: [2, 3, 6, 7, 10] [1, 4, 5, 8, 9] Distance: 1

-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

Source List: [1, 1, 2, 3, 29, 30, 210, 232, 12311, 12312] Result List: [1, 3, 29, 232, 12311] [1, 2, 30, 210, 12312] Distance: 21

-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

15:用Python匹配HTML tag的时候,<.*>和<.*?>有什么区别?

当重复匹配一个正则表达式时候, 例如<.*>, 当程序执行匹配的时候,会返回最大的匹配值

例如:

import re

s = ‘Title’ print(re.match(’<.*>’, s).group())

会返回一个匹配Title而不是 而

import re

s = ‘Title’ print(re.match(’<.*?>’, s).group()) 则会返回

<.*>这种匹配称作贪心匹配 <.*?>称作非贪心匹配

16:Python里面search()和match()的区别?

match()函数只检测RE是不是在string的开始位置匹配, search()会扫描整个string查找匹配, 也就是说match()只有在0位置匹配成功的话才有返回,如果不是开始位置匹配成功的话,match()就返回none 例如:

print(re.match(’super’, ’superstition’).span())会返回(0, 5) 而print(re.match(’super’, ‘insuperable’))则返回None search()会扫描整个字符串并返回第一个成功的匹配

例如:print(re.search(’super’, ’superstition’).span())返回(0, 5) print(re.search(’super’, ‘insuperable’).span())返回(2, 7)

17:如何用Python来进行查询和替换一个文本字符串?

可以使用sub()方法来进行查询和替换,sub方法的格式为:sub(replacement, string[, count=0])

replacement是被替换成的文本 string是需要被替换的文本

count是一个可选参数,指最大被替换的数量

例子:

import re

p = re.compile(’(blue|white|red)’)

print(p.sub(’colour’,'blue socks and red shoes’))

print(p.sub(’colour’,'blue socks and red shoes’, count=1)) 输出:

colour socks and colour shoes colour socks and red shoes

subn()方法执行的效果跟sub()一样,不过它会返回一个二维数组,包括替换后的新的字符串和总共替换的数量 例如:

import re

p = re.compile(’(blue|white|red)’)

print(p.subn(’colour’,'blue socks and red shoes’))

print(p.subn(’colour’,'blue socks and red shoes’, count=1)) 输出

(’colour socks and colour shoes’, 2) (’colour socks and red shoes’, 1)

18:介绍一下except的用法和作用?

Python的except用来捕获所有异常, 因为Python里面的每次错误都会抛出 一个异常,所以每个程序的错误都被当作一个运行时错误。 一下是使用except的一个例子: try:

foo = opne(”file”) #open被错写为opne except:

sys.exit(”could not open file!”)

因为这个错误是由于open被拼写成opne而造成的,然后被except捕获,所以debug程序的时候很容易不知道出了什么问题 下面这个例子更好点:

try:

foo = opne(”file”) # 这时候except只捕获IOError except IOError:

sys.exit(”could not open file”)

19:Python中pass语句的作用是什么?

pass语句什么也不做,一般作为占位符或者创建占位程序,pass语句不会执行任何操作,比如: while False: pass

pass通常用来创建一个最简单的类: class MyEmptyClass: pass

pass在软件设计阶段也经常用来作为TODO,提醒实现相应的实现,比如: def initlog(*args): pass #please implement this

20:介绍一下Python下range()函数的用法?

如果需要迭代一个数字序列的话,可以使用range()函数,range()函数可以生成等差级数。 如例:

for i in range(5) print(i)

这段代码将输出0, 1, 2, 3, 4五个数字

range(10)会产生10个值, 也可以让range()从另外一个数字开始,或者定义一个不同的增量,甚至是负数增量

range(5, 10)从5到9的五个数字

range(0, 10, 3) 增量为三, 包括0,3,6,9四个数字 range(-10, -100, -30) 增量为-30, 包括-10, -40, -70 可以一起使用range()和len()来迭代一个索引序列

例如:

a = ['Nina', 'Jim', 'Rainman', 'Hello'] for i in range(len(a)): print(i, a[i])

Python经典面试题

return(([],[]))big=sorted_list[-1]small=sorted_list[-2]big_list,small_list=mean(sorted_list[:-2])big_list.append(small)small_list.append(big)big_list_sum=sum(big_list)small_
推荐度:
点击下载文档文档为doc格式
5sypg2j11z3blzb1bwa62p7v43zg0p00hxs
领取福利

微信扫码领取福利

微信扫码分享