嗨,小鱼来了~
六七月份可谓是求职的黄金期,跳槽的朋友,毕业找工作的小伙伴们已经非常躁动了。Python作为编程界的网红,我相信不少朋友都将此作为自己的跳板,不管是附加技能,还是当作饭碗,下面这份整理的Python面试合集务必看完,牢记!话不多说,来看看面试官们都会问些神马问题吧!
试题NO1 : Python下多线程的限制以及多进程中传递参数的方式?
.答:Python多线程有个全局解释器锁(global interpreter lock),这个锁的意思是任一时间只能有一个线程使用解释器,跟单cpu跑多个程序一个意思,太家都是轮着用的,这叫“并发”,不是“并行”
多进程间共享数据可以使用multiprocessing.Value和multiprocessing.Array
试题NO2: Python是如何进行内存管理的?
答:一、对象的引用计数机制。
Python内部使用引用计数,来保持追踪内存中的对象,所有对象都有引用计数。
二、垃圾回收
1,当一个对象的引用计数归零时,它将被垃圾收集机制处理掉。2,当两个对象a和b相互引用时,del语句可以减少a和b的引用计数,并销毁用于引用底层对象的名称。
三、内存池机制
Python提供了对内存的垃圾收集机制,但是它将不用的内存放到内存池而不是返回给操作系统。
试题NO3:求数值以内的质数,合数及个数
#质数
def zhishu(number):
num=0
for i in range(2,number+1):
k=Truefor j in range(2,i):
if i==j:
continue
if(i%j==0):
k=False
break
if(k==True):
print("%d"%i)
num=num+1
print("素数个数%d"%num)
# 合数
def heshu(number):
num = []
for i in range(2,number+1):
for j in range(2,i):
if i==j:
continue
if i%j==0:
print(i)
num.append(i)
break
print(f'{number}以内合数个数:{len(num)}')
试题No4:九九乘法表
#九九乘法表 1
for i in range(1,10):
for j in range(1,i+1):
print('%d*%d=%d'%(i,j,i*j)+'\t',end='') #常用格式化方式#d,%s
print(f'{i}*{j}={i*j}\t',end='') #f-string 量格式化字符串
print()
#九九乘法表 2
n = 1
while n<=9:
i=1
while i<=n:
print(f'{i}*{n}={i*n}',end=' ')
i=i+1
n=n+1
print()
试题NO5:裴波那契数列
# 方法1,递归对性能要求较大
def func(x):if x==0 or x ==1:return 1else:
return func(x-1)+func(x-2)
for i in range(10):
print(func(i))
# 方法2,循环方式
def loop(n):
a,b= 1,1while n>0:
a,b= b,a+b
n-=1return a
for i in range(10):
print(loop(i))
试题NO6:解释一下python的and-or语法
与c表达式bool ? a: b类似,但是bool and a or b,当a为假时,不会像C表达式bool ?a: b一样工作
应该将and-or技功封装成一个函数:
defchoose(bool, a, b):return(booland[a]or[b])[0]
因为[a]是一个非空列表它永远不会为假。甚至a是o或"或其他假值,列表[a]为真,因为它有一个元素。
试题NO7: how do l iterate over a sequence inreverse order?
for x in reversed(sequence) :
... # do something with x..
如果不是list,最通用但是稍慢的解决方案是:
for i in range(len( sequence)-1,-1,-1):2
x = sequence[i]
试题NO8: Python是如何进行类型转换的?
1函数 描述
2 int(x [,base ])将x转换为一个整数
3 long(x [,base ])将x转换为一个长整数
4 float(x )将x转换到一个浮点数
5 complex(real [,imag ])创建一个复数
6 str(x )将对象×转换为字符串
7 repr(x )将对象×转换为表达式字符串
8 eval(str )用来计算在字符串中的有效Python表达式,并返回一个对象
9 tuple(s )将序列s转换为一个元组
10 list(s )将序列s转换为一个列表
11 chr(x )将一个整数转换为一个字符
12 unichr(x )将一个整数转换为Unicode字符
13 ord(x )将一个字符转换为它的整数值
14 hex(x )将一个整数转换为一个十六进制字符串知乎
15 oct(x )将一个整数转换为一个八进制字符串
试题NO9: Python里面如何实现tuple和list的转换?
>>> 1 = tuple(iplist)
>>> print l
( '217.169.209.2:6666', '192.227.139.106:7808', '110.4.12.170:83','69.197.132.80:7808', '205.164.41.101:3128','63.141.249.37:8089','27.34.142.47:9090')
>>>t = list(1)
>>>print t
[ '217.169.209.2:6666', '192.227.139.106:7808', '110.4.12.170:83','69,A.97。 172-.-B0.7808', '205.164.41.101:3128', '63.141.249.37:8089', '27.34.142.47:9090']
试题NO10:请写出一段Python代码实现删除一个list里面的重复元素?
>>>l =[1,1,2,3,4,5,4]
>>> list(set(1))
[1,2,3,4,,5]
或者
d = { }
for x in mylist:
d[X]=1
mylist = list(a.keys())
试题NO11:冒泡排序
def new_sort(arr):
for i in range(len(arr)):
for j in range(0,len(arr)-i-1):
if arr[j]>arr[j+1]:
arr[j],arr[j+1] = arr[j+1],arr[j]
list1 = [64, 34, 25, 12, 22, 11, 90]
new_sort(list1)
试题NO12: Python里面如何拷贝一个对象?
答:标准库中的copy模块提供了两个方法来实现拷贝一个方法是copy,它返回和参数包含内容一样的对象.
使用deepcopy方法对象中的属性也被复制
试题NO13:x,y 由人为输入的整数,求 x 的 y 次方,不允许使用**
x = int(input('请输入 X:'))
y = int(input('请输入 Y:'))
res = x
for i in range(y-1):
res *=x
print(res)
在实操过程中有问题的可以进群咨询,里面各个阶段的朋友,你会在这里找到你想要的答案哦~交流群:954526228(注意进群暗号是:小鱼)
里面还有适合小白新手的全套资料给到大家~
快来和小鱼一起成长进步吧!
① 2000多本Python电子书(主流和经典的书籍应该都有了)
② Python标准库资料(最全中文版)
③ 项目源码(四五十个有趣且经典的练手项目及源码)
④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)
⑤ Python学习路线图(告别不入流的学习)