面试自动化会遇到的面试题,分享一波,就不排版了,多多见谅。
先上几道编程题
001 求数值以内的质数,合数及个数
#质数
defzhishu(number):
num=0for i in range(2,number+1):
k=Truefor j in range(2,i):if i==j:continue
if(i%j==0):
k=Falsebreak
if(k==True):print("%d"%i)
num=num+1
print("素数个数%d"%num)#合数
defheshu(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)}')
002 九九乘法表
#九九乘法表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+1n=n+1
print()
003 x,y由人为输入的整数,求x的y次方,不允许使用**
x = int(input('请输入X:'))
y= int(input('请输入Y:'))
res=xfor i in range(y-1):
res*=xprint(res)
004 裴波那契数列(这个我遇到N次)
#方法1,递归对性能要求较大
deffunc(x):if x==0 or x ==1:return 1
else:return func(x-1)+func(x-2)for i in range(10):print(func(i))#方法2,循环方式
defloop(n):
a,b= 1,1
while n>0:
a,b= b,a+b
n-=1
returnafor i in range(10):print(loop(i))
005 冒泡排序
ef new_sort(arr):for i inrange(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)
006 水仙花数(水仙花数指153=1**3+5**3+3**3,位数立方之和等于该数)
for i in range(100,1000):
a= i//100b= (i-a*100)//10c= (i-a*100-b*10)if i == pow(a,3)+pow(b,3)+pow(c,3):print(i)
以下20道题型是基础题。
1,python有哪几种数据类型?
数字(number),字符串(string),列表即数组(list),元组(tuple),字典(dict),集合(set)
2,列表和元组的区别?
list是可变的数据类型,可用于修改,删除等,元组是不可变类型,元组中的元素不可修改,所以元组多用作查询,性能较好
3,Python里面如何拷贝一个对象?deepcopy 和 copy的区别?
copy与deepcopy均可复制对象,copy 仅拷贝对象本身,而不拷贝对象中引用的其它对象。deepcopy 除拷贝对象本身,而且拷贝对象中引用的其它对象。
4,python中如何取随机数?
使用random库,random.randint(),random.choice()等
5,什么是lambda函数?
编程中提到的 lambda 表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数。
6,python中的*args与**kwargs是什么?
*args与**kwargs均是指python中的不定长参数,*args是参数以元组形式传入,**kwargs是参数以键值对形式传入。
7,re.complie的方法是做什么用的?
re.compile是将正则表达式编译成一个对象,提升查询速度,并重复使用
8,try...except...else/finally的用法
try..except..else如果没有捕获到异常,那么就执行else语句,try..except..finally不管是否捕获到异常,都执行finally语句
9,如何在Python中删除文件?
要在Python中删除文件,您需要导入OS模块。使用os.remove()函数。
10,python数据格式是否可以转换
可以强制转换,例如str(int),这样一个int类型的数据,就转为了字符串
11,如何实现列表去重?
使用set集合去重,在转换为列表,举例:
list1 = [1,2,3,1,4,1]
list2= list(set(list1))
12,is和==的区别?
is:判断内存地址是否相等;==:判断数值是否相等
13、ascii,unicode,utf-8,gbk几种编码的区别?
ASCII码:使用一个字节编码,所以它的范围基本是只有英文字母、数字和一些特殊符号,只有256个字符。
Unicode:能够表示全世界所有的字节
GBK:是只用来编码汉字的,GBK全称《汉字内码扩展规范》,使用双字节编码。
UTF-8:是一种针对Unicode的可变长度字符编码,用的最多,支持中文。
14,字符串的分割怎么用?
使用split()方法,举例:
str1 = 'abcdefg'
print(str1.split('b',2)) #从元素b开始分为两部分
15,python中的zip函数是用来做什么的,怎么使用?
zip()函数是将可迭代对象打包转换为对应的一个个元组,然后返回这些元组所组成的数组,python3中是组成了一个迭代器对象。举例:
a = '123'b= '456'zipped=zip(a,b)for i inzipped:print(i)>>>('1', '4')>>>('2', '5')>>>('3', '6')
16,如何使用zip和dict结合创建字典?
dict1 = dict(zip(('a','b','c'),('1','2','3')))>>>{'a': 1, 'b': 2, 'c': 3}
17,Python的可变类型和不可变类型?
可变类型:list、dict、set
不可变类型:string、int、float、tuple
18,常用字符串格式化哪几种?
print('%s今年5岁'%('小明')) #方法1
print('{}今年5岁'.format('小明')) #方法2
a = '小明'
print(f'{a}今年5岁') #方法3
19,面向对象中__new__、__init__的含义
__init__:为对象定制自己独有的特征,__new__:用来将类实例化的
20,filter、map、reduce的作用?
filter(function,iterable)过滤函数
map(function,iterable)循环函数
reduce(function, iterable)累积函数