python常见面试题

 

面试自动化会遇到的面试题,分享一波,就不排版了,多多见谅。

先上几道编程题

001 求数值以内的质数,合数及个数

#质数
def zhishu(number):
    num=0
    for i in range(2,number+1):
        k=True
        for 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)}')

002 九九乘法表

#九九乘法表1
for i in range(1,10):
    for j in range(1,i+1):
        print('%d*%d=%d'%(i,j,i*j)+'	',end='')   #常用格式化方式#d,%s
        print(f'{i}*{j}={i*j}	',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()

003 x,y由人为输入的整数,求x的y次方,不允许使用**

x = int(input('请输入X:'))
y = int(input('请输入Y:'))
res = x
for i in range(y-1):
    res *=x
print(res)

004 裴波那契数列(这个我遇到N次)

# 方法1,递归对性能要求较大
def func(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,循环方式
def loop(n):
    a,b= 1,1
    while n>0:
        a,b= b,a+b
        n-=1
    return a
for i in range(10):
    print(loop(i))

005 冒泡排序

ef 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)

006 水仙花数(水仙花数指153=1**3+5**3+3**3,位数立方之和等于该数)

for i in range(100,1000):
    a = i//100
    b = (i-a*100)//10
    c = (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 in zipped:
    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)累积函数

原文地址:https://www.cnblogs.com/wuzhuangzhuang/p/14174568.html