python面试练习

1、一行代码实现1—100之和

print(sum(range(1, 101)))

2、如何在一个函数内部修改全局变量

利用global修改全局变量

3、列出5个python标准库

re:正则匹配

math:数学运算

sys:用于命令行参数

os:提供了与操作系统相关联的函数

datetime:处理日期与时间

4、字典如何删除键和合并两个字典

del dic["key"]

dic.update(dic2)

5、谈下python的GIL

6、python实现列表去重的方法

列表先转换成集合,然后再转回列表

7、fun(*args,**kwargs)中的*args,**kwargs什么意思?

8、python2和python3的range(100)的区别

python2返回列表,python3返回迭代器,节约内存

9、一句话解释什么样的语言能够用装饰器?

函数可以作为参数的语言能用装饰器

10、python内建数据类型有哪些

整型(int),字符型(str),布尔型(boolean),列表(list),元组(tuple),字典(dict),集合(set)

11、简述面向对象中__new__和__init__区别

12、简述with方法打开处理文件帮我我们做了什么?

13、列表[1,2,3,4,5],请使用map()函数输出[1,4,9,16,25],并使用列表推导式提取出大于10的数,最终输出[16,25]

14、python中生成随机整数、随机小数、0—1之间小数方法

随机整数:random.randint(a,b),生成区间内的整数

随机小数:习惯用numpy库,利用np.random.randn(5)生成5个随机小数

0-1随机小数:random.random(),括号中不传参

15、避免转义给字符串加哪个字母表示原始字符串?

16、

中国
,用正则匹配出标签里面的内容(“中国”),其中class的类名是不确定的

17、python中断言方法举例

18、数据表student有id,name,score,city字段,其中name中的名字可有重复,需要消除重复行,请写sql语句

select distinct name from student

19、10个Linux常用命令

cd.   wget.   yum.   pip.   mv.   ln.   pwd.  touch.  rm.   mkdir.   cat.   more.   grep.   

20、python2和python3区别?列举5个

(1)Python2既可以使用括号也可以使用一个空格来区分打印内容,Python3使用print必须要以小括号包裹

(2)解析用户输入:python2是raw_input()函数,Python3是input()函数

(3)Python2中 range()函数返回列表,Python3中返回迭代器,节约内存

(4)Python2中使用ascii编码,Python3中使用utf-8编码

(5)Python2中Unicode表示字符串序列,str表示字节序列

          Python3中str表示字符串序列,byte表示字节序列

(6)Python2为正常显示中文引入coding声明,Python3不需要

21、列出python中可变数据类型和不可变数据类型,并简述原理

可变类型:列表list、字典dict

如果改变了变量的值,相当于新建了一个对象,而对于相同的值得对象,在内存中则只有一个对象。

不可变类型:数值型、字符串string、元组tuple

22、s = “ajldjlajfdljfddd”,去重并从小到大排序输出”adfjl”

set去重,再转成list,sort方法排序,reverse = False是从小到大排

s = 'ajldjlajfdljfddd'
s = set(s)
s = list(s)
s.sort(reverse=False)
res = "".join(s)
print(res)

23、用lambda函数实现两个数相乘

mul = lambda i,j:i * j;

24、字典根据键从小到大排序dict={“name”:”zs”,”age”:18,”city”:”深圳”,”tel”:”1362626627”}

25、利用collections库的Counter方法统计字符串每个单词出现的次数”kjalfj;ldsjafl;hdsllfdhg;lahfbl;hl;ahlf;h”

26、字符串a = “not 404 found 张三 99 深圳”,每个词中间是空格,用正则过滤掉英文和数字,最终输出”张三  深圳”

27、filter方法求出列表所有奇数并构造新列表,a =  [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

28、列表推导式求列表所有奇数并构造新列表,a =  [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

29、正则re.complie作用

30、a=(1,)b=(1),c=(“1”) 分别是什么类型的数据?

a是tuple,b是int,c是str

31、两个列表[1,5,7,9]和[2,2,6,8]合并为[1,2,2,3,6,7,8,9]

list1 = [1,5,7,9]
list2 = [2,2,6,8]
list1.extend(list2)
print(list1)

list1.sort(reverse=False)
print(list1)

32、用python删除文件和用linux命令删除文件方法

python: os.remove()

linux:rm 

33、log日志中,我们需要用时间戳记录error,warning等的发生时间,请用datetime模块打印当前时间戳 “2018-04-01 11:38:54”

34、数据库优化查询方法

外键、索引、联合查询、选择特定字段等

35、请列出你会的任意一种统计图(条形图、折线图等)绘制的开源库,第三方也行

36、写一段自定义异常代码

37、正则表达式匹配中,(.)和(.?)匹配区别?

38、简述Django的orm

39、[[1,2],[3,4],[5,6]]一行代码展开该列表,得出[1,2,3,4,5,6]

40、x=”abc”,y=”def”,z=[“d”,”e”,”f”],分别求出x.join(y)和x.join(z)返回的结果

41、举例说明异常模块中try except else finally的相关意义

42、python中交换两个数值

43、举例说明zip()函数用法

44、a=”张明 98分”,用re.sub,将98替换为100

45、写5条常用sql语句

46、a=”hello”和b=”你好”编码成bytes类型

47、[1,2,3]+[4,5,6]的结果是多少?

[1, 2, 3, 4, 5, 6]
48、提高python运行效率的方法

49、简述mysql和redis区别

50、遇到bug如何处理

51、1、正则匹配,匹配日期2018-03-20
url=’https://sycm.taobao.com/bda/tradinganaly/overview/get_summary.json?dateRange=2018-03-20%7C2018-03-20&dateType=recent1&device=1&token=ff25b109b&_=1521595613462‘

52、list=[2,3,5,4,9,6],从小到大排序,不许用sort,输出[2,3,4,5,6,9]

53、写一个单例模式

54、保留两位小数
题目本身只有a=”%.03f”%1.3335,让计算a的结果,为了扩充保留小数的思路,提供round方法(数值,保留位数)

55、求三个方法打印结果

56、列出常见的状态码和意义

4

5



57、分别从前端、后端、数据库阐述web项目的性能优化

58、使用pop和del删除字典中的”name”字段,dic={“name”:”zs”,”age”:18}

59、列出常见MYSQL数据存储引擎

60、计算代码运行结果,zip函数历史文章已经说了,得出[(“a”,1),(“b”,2),(“c”,3),(“d”,4),(“e”,5)]

61、简述同源策略

62、简述cookie和session的区别

63、简述多线程、多进程

64、简述any()和all()方法

65、IOError、AttributeError、ImportError、IndentationError、IndexError、KeyError、SyntaxError、NameError分别代表什么异常

66、python中copy和deepcopy区别

67、列出几种魔法方法并简要介绍用途

68、C:\Users\ry-wu.junya\Desktop>python 1.py 22 33命令行启动程序并传参,print(sys.argv)会输出什么数据?

69、请将[i for i in range(3)]改成生成器

70、a = “  hehheh  “,去除收尾空格

71、举例sort和sorted对列表排序,list=[0,-1,3,-10,5,9]

72、对list排序foo = [-5,8,0,4,9,-4,-20,-2,8,2,-4],使用lambda函数从小到大排序

73、使用lambda函数对list排序foo = [-5,8,0,4,9,-4,-20,-2,8,2,-4],输出结果为
[0,2,4,8,8,9,-2,-4,-4,-5,-20],正数从小到大,负数从大到小

74、列表嵌套字典的排序,分别根据年龄和姓名排序

75、列表嵌套元组,分别按字母和数字排序

76、列表嵌套列表排序,年龄数字相同怎么办?

77、根据键对字典排序(方法一,zip函数)

78、根据键对字典排序(方法二,不用zip)

79、列表推导式、字典推导式、生成器

80、最后出一道检验题目,根据字符串长度排序,看排序是否灵活运用

81、举例说明SQL注入和解决办法

82、s=”info:xiaoZhang 33 shandong”,用正则切分字符串输出[‘info’, ‘xiaoZhang’, ‘33’, ‘shandong’]

83、正则匹配以163.com结尾的邮箱

84、递归求和

85、python字典和json字符串相互转化方法

dic = json.load(str) # json变字典
str = json.dump(dic) # 字典变json

86、MyISAM 与 InnoDB 区别:

87、统计字符串中某字符出现次数

88、字符串转化大小写

str.upper()
str.lower()

89、用两种方法去空格

90、正则匹配不是以4和7结尾的手机号

1[34578][0-9]\d{7}[^$47]

91、简述python引用计数机制

92、int(“1.4”),int(1.4)输出结果?

前者是字符串,会报valueerror:invalid literal。 后者会强制转换为1。
93、列举3条以上PEP8编码规范

94、正则表达式匹配第一个URL

[a-zA-z]+://[^\s]*

95、正则匹配中文

[\u4e00-\u9fa5]

96、简述乐观锁和悲观锁

97、r、r+、rb、rb+文件打开模式区别

98、Linux命令重定向 > 和 >>

 

99、正则表达式匹配出 

www.itcast.cn

100、python传参数是传值还是传址?

Python是不允许选择采用传值还是传址的。Python参数传递采用的是传对象引用的方式,实际上是传址和传值的综合。

如果函数收到的是一个可变对象(字典或列表)的引用,就能修改对象的原始值-相当于传址。

如果函数收到的是一个不可变对象(数字、字符或元组)的引用,就不能直接修改原始对象-相当于传值。
101、求两个列表的交集、差集、并集

print list(set(b).difference(set(a))) # b中有而a中没有的 差集
print list(set(a).union(set(b))) # 两个list并集
print list(set(a).intersection(set(b))) # 两个list交集

102、生成0-100的随机数

import random
random.randint(1,101)

103、lambda匿名函数好处

104、常见的网络传输协议

105、单引号、双引号、三引号用法

106、python垃圾回收机制

107、HTTP请求中get和post区别

108、python中读取Excel文件的方法

109、简述多线程、多进程

110、python正则中search和match

 

你可能感兴趣的:(python,python,面试)