企业python面试题

1.列举常见的内置函数

2.简述yield和yield from关键字

3. 常用模块都有哪些?列举8个

4.json序列化时,可以处理的数据类型有哪些?如何保持原字典的顺序?

5.@classmethod,@staticmethod,@property含义及用法

6.写一个可以给定出错重试次数的装饰器,用来处理HTTP超时等

def get_response(url):
	r = requests.get("www.baidu.com")
	return r.content

7.写出5个你最熟悉linux命令,并简要说明使用场景。

8.简述python的垃圾回收机制

引用计数、标记回收、隔代回收
引用计数:当一个对象被引用,则会+1,反之-1,如果为0则消除没对象,但是会导致一个循环引用的问题,所以引出标记回收。
标记回收:成本较高
隔代回收:分三代回收

9.HTTP协议中,Cookie和session的区别是什么?GET和POST分别是做什么用的,你还知道其他的方法吗?

1.HTTP是无状态请求,cookie和session都是为了记录客户端状态,cookie是保存在客服端的,大小限制为4K。session保存存在服务器,相对cookie更安全,存储信息更多,缺点就是服务器压力大
2.GET请求获取数据,POST提交数据,DELETE删除数据,PUT更新单挑数据,PATCH更新部分数据

10.python中有哪些方法可以实现并行,他们分别适用于什么场景?

方法:进程、协程、线程,io多路复用(select、poll、epoll)
场景:爬虫(进程+协程)、nginx(IO多路复用)

11.python中的装饰器是什么?@classmethod,@staticmethod,@property,这些装饰器的用途分别是什么?

装饰器:在不改变原来函数代码基础上,增加额外的功能
@classmethod:类方法
@staticmethod:静态方法
@property:属性,把类的方法,装饰城属性一样调用

12.简要描述数组、链表、队列、堆栈的区别?

13.写出你知道的排序算法,并使用python实现一种排序算法,对0-100的整数列表进行排序

14.什么是可变与不可变类型?

15.浅拷贝和深拷贝的实现方式、区别?

在python中对象的赋值其实就是对象的引用。当创建一个对象,把它赋值给另外一个变量的时候,python并没有拷贝这个对象,只是拷贝这个对象的引用而已。
浅拷贝:拷贝了最外围的对象本身,内部的元素都只是拷贝了一个引用而已,也就是,把对象复制一遍,但是该对象中引用的其他对象我不复制
深拷贝:外围和内部元素都进行了拷贝对象本身,而不是引用。也就是说,把对象复制一遍,并且该对象中引用的其他对象我也复制

16.new()与__init__()的区别?

17.编码和解码

编码:encode
解码:encode
编码:在python3中将str转化成bytes类型,python2将unicode转化为str
解码:在python3中将bytes按照utf-8或者gdk编码方式转为成str类型,python2是将str转化为unicode

18.range和xrange的区别?

xrange用户与range完全相同,所不同的就是生成的不是一个数组,而是一个生成器
要生成很大的数字序列的时候,用xrange会比range性能优很多,因为不需要一上来就开辟一块很大的内存空间,在python3中,range()是像xrange()那样实现,xrange()被抛弃

19.TCP/IP分别在模型的那一层?

20.socket长连接是什么意思?

21.http一次连接的全过程,你来说下从用户发起request-到用户response;

22.线程和进程的联系和区别?

23.死锁的条件有哪些?

24.List和tuple的区别有哪些?

25.Set类型的特点是什么?

26.GIL是什么?他对python多线程变成有什么影响?

27.函数参数*args和**kwargs分别是什么意思?

28.numbers是一个列表,元素都是整型,请写出代码求numbers中的所有值的和。

29.请为下面这个函数写一个装饰器,使用之后,在函数调用前和调用后分别输出Log到stderr(简单的print log即可)

	def foo():
		print("Function foo")

30.函数bar()可能会抛出一个自定义的异常CustomError,请写代码实现如下功能:如果bar()抛出了CustomError,打印"custom error",否则打印"success"

31.浮点数比较,是否正确,如何比较浮点数大小

double a,b
a = 0.1 * 3
b = 0.1 + 0.1 + 0.1,
a == b 

32.你知道的汉子编码方式有哪些?在HTTP GET请求中,一般如何向后端传递汉字信息比较好?

33.请根据下面的关系数据库表格,回答问题

一张雇员表employee,例如:

id name salary department id
1 Joe 7000 1
2 Henry 8000 2
3 Sam 6000 2
4 Max 9000 1
5 Janet 9000 1
6 Randv 8500 1

一张部门表department,例如:

id name
1 IT
2 Sales

1)请写出sql,找出IT部门薪水最高的3个人

select name from employee order by salary desc where department_id=(select id from department where name='IT') limit 3 ;

2)请写出sql,找出每个部门薪水最高的人(可能有多人并列最高)

33.打印目录(包括子目录)下面的所有文件的绝对路径

34.给你两个已经排序好的数组(从小到大排序)

数组A:[1,5,8,14,16,25,28,39]
数组B:[2,3,6,8,12,13,16,21,25,28]
请你写一段代码,找出里面重复的元素

35.给你一个字符串,比如“abc”,请打印出该字符串的所有排序组合

36.列举http协议头部字段,并说明每个字段的主要作用

37.变成:使用python实现讲数据库的studnet表中提取的数据写入db.txt

38.简述Left join和right join的区别?

39.简述HTTP协议下,一个HTTP请求的数据结构,简述HTTP和HTTPS协议的差异

40.python2和python3的区别

41.常见的HTTP状态码有哪些?

42.你常用的musql引擎有哪些?各引擎间有什么区别?

43.如何用python删除一个文件?

44.获取a和b的交集和差集

a=[21,22,55]
b=[21,55,77]

45.写一段代码用json数据的处理方式获取

这一段json中第一个人的名字:

{"person":[{"name":"yu","age":"23"},{"name":"zhang","age":"34"}]}

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

47.python中基本数据结构的操作

元祖、列表、字典、集合,分别写出定义、新增、更改、删除

48.请尽可能列举python列表的成员方法,并给出一个列表操作的答案

a = [1,2,3,4,5]
a[::2] = ?
a[-2] = ?

49.python中的变量作用域(变量查找顺序)

50.git的常用命令

git clone <url>  :克隆远程版本库
git init  :初始化本地版本库
git status  :查看状态
git diff  :查看变更内容
git add . :跟踪所有改动过的文件
git add <file>  :跟踪指定的文件
git commit -m "commit message"  :提交所有更新过的文件
git log  :查看提交历史
git reset --hard HEAD  : 撤销工作目录中所有未提交文件的修改内容
git branch  :显示所有本地分支 
git checkout <branch/tag>  :切换到指定分支或标签
git branch <new-branch>  :切换到指定分支或标签
git push <remote> <branch>  :上传代码并快速合并
git push <remote> : <branch/tag-name> :删除远程分支或标签

51.is和==的区别

is比较的是两个实体对象是不是完全相同,它们是不是同一个对象,占用的内存地址是否相同
== 比较的是两个对象的内容是否相等,即内存地址可以不一样,内容一样就可以了

52.什么是lambda函数?它有什么好处?

53.分别写一个或多个关于filter()、reduce()、map()的使用实例

54.单引号,双引号,三引号的区别

单引号和双引号:主要用来表示字符串
三单引号’‘‘Python’’':也可以标识字符串一般用来输入多行文本,或者用户大段的注释
三双引号"““Python””":一般用在类里面,用来注释类

55.python里面如何实现tuple和list的转换

56.请写一段python代码实现删除一个list里面的重复元素

list_element = ['a','c','z','x','a']
delete_element = list(set(list_element)) #利用集合的唯一性删除重复元素
delete_element.sort(key=list_element.index)  #对修改后的列表进行排序

57.python中pass语句的作用是什么?

58.python中如何产生随机数?

59.请简述TCP三次握手的过程?

60.题目,把"www.baidu.com",反转字符串

61.如何判断字符串A里面是否包含字符串B里面所有的字符

62.iptables知识考察,根据要求写出防火墙规则?

1.屏蔽192.168.1.5访问本机dns服务端口?
2.允许10.1.1.0/24访问本机的udp 8888 9999端口

63.编写一个脚本,5分钟检查一次日期,发现有暴力SSH破解现象的,提取此类IP地址,并去重,并按降序排序

要求:同一个IP暴力破解超过10次,自动屏蔽IP地址
指定办公室IP地址(192.168.100.100)为可信任IP地址,不受屏蔽规则限制,以下为日志格式

May 4 03:43:07 tz-monitor sshd[14003]: Failed password for root 124.232.135.84 port 25251 ssh2
May 4 03:43:07 tz-monitor sshd[14082]: Invalid user postgres from 124.232.135.84

64.业务服务器192.168.1.2访问192.168.1.3数据接口,无法正常返回数据,请根据以上给出信息写出排查思路

65. python中如下一个字典,请按照key进行排序

tmp={'carry':'17','bob':'21','matty':'23','jack':'33','tom':'16','alex':'23'} 

66. 请给出下面代码片段的输出

def test():

    try:
        if 2 > 1:
            raise ValueError("Something wrong!")
    except ValueError as e:
        print("Error occurred!")
        return
    finally:
        print("Done")


test()

67.请列举常见的HTTP头及其作用

68.请列举常见的HTTP状态响应码及其意义

69.请简述对RESTful API设计规范的理解

70.请简述HTTP缓存机制

71. Python里面的search()和match()的区别?

72.什么是协程?python的协程是如何实现的?

73.简述select和epoll的原理和区别

74. 手写s=【1,2,3】w=[4,5,6] z=[(1,4),(2,5),{3,6}] 这个实现

75.手写socket服务客户端与客户

76.int,fload,str,tuple,list,set,dict前面这些类型那些可以做dict的key,那些可以做dict的value

77.请写出一段python代码实现删除一个list里面的重复元素

78.写出结果为[1,4,9,16,25…,100]的列表推导式

79.写出结果为[1:1,2:4,3:9,4:16,5:25…10:100]的字典推导式

80.TCP和udp的区别,简单说一下HTTP?

81.输入一个url到看到页面经历了啥

82.你了解服务器吗 Nginx和Apache,你选哪一个,区别

83.什么是lambda函数?它有什么好处?

84.逻辑运算符的优先级

85.python是如何进行类型转换的

86.写出一段python代码实现删除一个list里面的重复元素

87.python中pass语句的作用是什么

88.介绍一下python下range()和xrange()函数的用法?

89.python里面如何拷贝一个对象?

90.如何使用python来进行查询和替换一个文本字符串?

91.读取一个py文件,去掉注释和每一行右侧的空格,然后在前端显示出来(要保证左侧空格在页面显示)

92.mysql inner join和left join的区别

93.消息队列在你的项目的应用场景是啥?

94.SVN和GIT有什么区别?

95.MYSQL有哪些存储引擎,优化mysql数据库的方法有哪些?

96.python中单引号,双引号,三引号的区别

97.在python中,list,tuple,dict,set有什么区别

98.请写出打印结果

x=[0,1]
i= 0
i,x[i]=1,2     #i=1,x[1]=2
print(x)
## return:[0,2]

99.请用自己的算法,按升序合并如下两个list,并去除重复的元素:

list1 = [2, 3, 8, 4, 9, 5, 6]
list2 = [2, 3, 8, 4, 9, 5, 7]
print(list(set(list1 + list2)))  # 交集
print(list(set(list1) - set(list2)) + list(set(list2) - set(list1)))  # 并集合

100.关系型数据库中,表与表之间有左连接、内连接、外连接。分别解析下他们的含义及区别?

101.Redis有哪些数据结构?有什么用?

102.是否使用VPN,VPN的底层原理?

103.Python的深拷贝和浅拷贝的区别?

104.不同拷贝方式的区别

1.深浅拷贝都是对源对象的复制,占用不同的内存空间
2.不可变类型的对象,对于深浅拷贝毫无影响,最终的地址值和值都是相等的
3.可变类型:
= 浅拷贝:值相等,地址相等
copy浅拷贝:值相等,地址不相等
deepcopy深拷贝:值相等,地址不相等

105.python中可变对象和不可变对象

106.写出下面代码的输出值

l = [1,4,9]
def f(x,l=[]):
    for i in range(x):
        l.append(i**2)
    return l
print(f(4),l)
print(f(5,l),l)
print(f(6),l)

#[0, 1, 4, 9] [1, 4, 9]
#[1, 4, 9, 0, 1, 4, 9, 16] [1, 4, 9, 0, 1, 4, 9, 16]
#[0, 1, 4, 9, 0, 1, 4, 9, 16, 25] [1, 4, 9, 0, 1, 4, 9, 16]

107.写出下面列表的取值

L = [1, 2, 3, 4, 5, 6, 7]

print(L[1:])  # 读取列表中第二个元素   [2, 3, 4, 5, 6, 7]
print(L[3:5])  # [4, 5]     # 左开右闭,左边读取第四个到第五个
print(L[::2])  # [1,3,5,7]
print(L[-2:-5])  # []         #顺序不对,需要从小到大
print(L[-3:-1])  # [5, 6]     #从小到大,右边第三个开始数

108.如何查看http的并发请求数与其TCP连接状态

109.写出抓包查看到192.168.5.100服务器的8080端口的命令

110.怎样获取字段中所有键的列表

111.map,filter,reduce是什么

112.写一下你之前写代码遇到过的问题和你解决的思路?

113.如下代码执行后,L和m的内容分别是什么

114.DNS解析过程是怎么样的?有几种解析方式,各自的区别是什么?

115.DNS解析过程是怎么样的?有几种解析方式,各自的区别是什么?

116.TCP建立连接三次握手,断开连接四次挥手的过程是怎样的?

117. 解析以下魔方方法的作用,以及它们在什么情况下会被触发?

__call__
__iter__
__enter__
__exit__

118.数据库基础

table 1:student(name,age,gender)
table 2:course(name,teacher_name(对应teacher表name字段))
table 3:grade(student_name(对应student表name字段),course_name(对应course表name字段),score)
table 4:teacher(name)
其是那个course表中的name包括三种:math、english、physics
1)查询所有数学成绩好于英语成绩的学生姓名
2)查询所有没有学习过'Alice'老师的课的学生的姓名
3)查询各门课程的最高分和最低分,并以课程名,课程最高分,课程最低分的顺序显示

119.列举常见的内置函数

120.简述yield和yield from关键字

121.常用模块都有哪些?列举8个

122.json序列化时,可以处理的数据类型有哪些?如何保持原字典的顺序?

123.@classmethod,@staticmethod,@property含义及用法

124.有a、b两个数,如何不使用第3个变量,将a和b的值进行交换

125.通过sorted函数或者列表的sort函数和lambda对下面的列表按score排序

list_a = {
    {"name": "p1", "source": 100},
    {"name": "p2", "source": 10},
    {"name": "p3", "source": 30},
    {"name": "p4", "source": 20},
    {"name": "p5", "source": 80},
    {"name": "p6", "source": 70},
    {"name": "p7", "source": 70},
    {"name": "p8", "source": 90},
    {"name": "p9", "source": 50},
}

126.一行代码,通过filter和lambda函数输出以下列表索引为基数对应的元素

liat_a=[12,213,22,2,2,2,22,2,32,]

127.TCP协议通过那些手段来保证传输可靠性,从而与UDP产生了本质上的不同?

128.假设在python2.7中有一个gdk编码的字符串,name=‘用心创造快乐’,请问如何将其转换成uft8编码?

129.python中list,tuple,dict,set有什么区别,主要应用在什么样的场景?并用for语句分别进行遍历?

130.python中静态函数,类函数,成员函数的区别?并各写一个示例

131.用python语言写一个函数,输入一个字符串,返回倒序排列的机构:如:string_reverse(‘abcdefg’),返回’gfedcba’

132.mysql数据库有3张表,A为客户信息表,包含以下字段:accountid(客户id),name(名称),provice(省份)等,B为账单表,包含accountid(客户id),invest(入资),spend(支出),remain(余额),C为入资明细表,包含accountid(客户id),date(入资时间),count(入资金额),consol(入资方式)

1.根据表A和表B,查询余额为零所有客户,列出客户ID、客户名称
2.根据表C,查询今天的所有入资,列出客户ID、入资方式
3.根据表C,以客户ID为单位,查询入资方式为“网上银行”的入资总和,列出客户ID、"网上银行"方式入资的总和
4.根据表A和表C,以客户ID为单位,查询入资方式为“网上银行”的入资总和,并且,在该方式下入资总和大于500000的数据,列出客户ID、客户名称、网上银行方式入资的总和

133.下面代码会输出什么

class A(object):
    def go(self):
        print("go A go!")

class B(A):
    def go(self):
        super(B,self).go()
        print("go B go!")

class C(A):
    def go(self):
        super(C,self).go()
        print("go C go!")

class D(B,C):
    def go(self):
        super(D,self).go()
        print("go D go!")

class E(B,C):pass

a=A()
b=B()
c=C()
d=D()
e=E()

print("---------------a.go()---------------")
a.go()
print("---------------b.go()---------------")
b.go()
print("---------------c.go()---------------")
c.go()
print("---------------d.go()---------------")
d.go()
print("---------------e.go()---------------")
e.go()

134.简述yield的用法

135.简述装饰器(decorator)的用法,如何写一个装饰器

136.有如下数据:

[{'name':'Andy','age':'25'},
 {'name':'Joe','age':'40'},
 {'name':'ken','age':'30'},
 {'name':'Jane','age':'50'},
]
将里面的元素按照age排序

137.实现一个类,MyDict,类似于dict,但可以通过访问成员的方式访问字典成员,例如

>>>d=MyDict()
>>>d['abc']=3
>>>d.abc
3
>>>d.cde
>>>d.cde=6
>>>d['cde']
6

138.列举几个你常用的python标准库

139.简述session的原理

140. 描述对super,pass,yield,lambda关键字装饰的理解

141.请大致描述一下python的GIL机制,以及python中多线程和多进程的区别

142.python是如何进行内存管理的,以及大致描述一下python的GC机制

143.请分别描述一下类装饰器和函数装饰器的实现过程及应用场景

144.写出语句的执行结果

a=11;b=2;a/b=
a=11.0;b=2;a/b=
a=None;b=2;a/b=
a=None;b=2;a+b=
a=None;a is True =
a=None;a is False =
a=None;not a is False =

145.a,b,c,d的值为?

import copy

a = [1, 2, 3, [4, 5], 6]
b = a
c = copy.copy(a)
d = copy.deepcopy(a)
b.append(10)
c[3].append(11)
d[3].append(12)

146.先有字典d={‘a’:26,‘g’:20,‘e’:22,‘c’:24,‘d’:23},请按照字段中value字段进行排序

147.python语言有什么特点

148.介绍一下python中的可变参数和关键字参数

149.写出下面执行结果

seq = [1, 2, 3, 4]
print(seq[:2])   #[1, 2]
print(seq[-2:])  #[3, 4]
print(seq[10:])   #[]
print(seq[::-1])   #[4, 3, 2, 1]
print(seq[:])    #[1, 2, 3, 4]
print(id(seq[:]) == id(seq))   #False

150.列表list和元祖tuple的区别

151.集合set是怎样的一种数据类型,如何使用?

152.写一段程序,包括迭代器和生成器的使用

153.标准库的copy中的copy和deepcopy的区别?

154.标准库re正则表达式match和search区别

155.请简述left join,right join,inner join,outer join的区别

156.请说一说,lambda函数的作用,请用,lambda和reduce实现1到100的累加

157.请描述一下tuple,list,dict,set的特点

158.请说一下staticmethod和classmethod的区别

159.请说一说迭代器和生成器的理解

你可能感兴趣的:(python,python,开发语言)