zoukankan      html  css  js  c++  java
  • 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)累积函数

  • 相关阅读:
    实时获取管道信息的一个小框架
    multiprocessing还是threading?
    QThread的一些使用心得
    super超类继承特点小结
    打靶总结
    简析Colorspace
    第一个Unity3D脚本
    一个新的计划,写在年末
    lambda函数的特性
    Nuke Python module的使用
  • 原文地址:https://www.cnblogs.com/wuzhuangzhuang/p/14174568.html
Copyright © 2011-2022 走看看