• 2021金三银四


    前言

    最近收到了很多自动化学员反馈的面试题 。。

    有主观题 ,有功能测试题,有python编程题 ,有自动化测试题,有数据库题,linux等。。

    为了让我们的学员可以更好的去准备面试,我们专门在腾讯课堂,3小时以上的直播讲解面试

    本文作为课堂部分内容,将面试题以及部分参考答案开放出来。。

     

     

    自动化测试面试题 - python语言篇

     

    1、python面试题

    序号面试题
    1 python 常用到的库 和 常遇到的异常
    2 python当中如何操作数据库?
    3 工作中使用python去做过哪些事情?为什么要使用?
    4 简述Python的可变类型和不可变类型?
    5 python为什么使用*args和**kwargs
    6 python 中的 __new____init__方法的作用是什么?
    7 单元测试框架的断言方式?
    8 装饰器 - 知道它是什么?
    9 深浅拷贝、垃圾回收?

    在面试自动化岗位的过程中,必须有问题,是关于编程的。

    第1题和第3题:

    python 常用到的库 和 常遇到的异常?

    工作中使用python去做过哪些事情?为什么要使用?

    面试官主要是想了解:

    1、你对python的熟练度和应用度如何。

    比如做接口自动化测试的同学,就可以很快的列出常用的库:openpyxl,pymysql,unittest,pytest,allure,os,loggging.......

    在工作当中,可以用python来做自动化测试,也可以写些脚本来改善工作效率。

     

    其它的问题,都是基于以上这个应用来,来考察细节上的问题。

    当然还有一些就是面试爱问,但是自动化的工作中用到的极少,甚至没有。

     

     

    2、编程思维题

    序号面试题
    1 请获取列表中重复元素最多的元素,以及重复的次数 例子1: 参数 ['a', 'b', 'a', 'b', 'c', 'd', '1', 'd', '2'] 结果: 重复最多的是:['d', 'a', 'b'],重复个数:2 例子2: 参数 ['a','a','a', 'b', 'a', 'b', 'c', 'd', '1', 'd', '2'] 结果:重复最多的是:['a'],重复个数:4
    2 python -- 对list去重并找出列表list中的重复元素
    3 python统计字符串中指定字符出现次数的方法
    4 统计列表(list)中每个元素出现的次数
    5 列表推导式求列表所有奇数并构造新列表 a = [1,2,3,4,5,6,7,8,9,10]
    6 用 python 写个冒泡排序 a = [1, 3, 10, 9, 21, 35, 4, 6]
    7 已知一个数列:1、1、2、3、5、8、13、。。。。的规律为从 3 开始的每一项都 等于其前两项的和,这是斐波那契数列。 求满足规律的 100 以内的所以数据
    8 幂的递归 计算 x 的 n 次方,如:3 的 4 次方 为 333*3=81
    9 给定字符串,找出有重复的字符串,并输出其位置 。输入: abcaaXY12ab12 输出: a, 1; a, 4; a, 5; a, 10; b, 2; b, 11; 1, 8; 1, 12; 2, 9; 2, 13

    这一部分,大概率都是出现在笔记题上。

    主要考察的是:编程思维和实现。

    从0入门编程的都感受过,问题的基本实现思路有,但是不会转化成代码。

    需要一定时间的慢慢积累,才开始具备利用编程解决问题的能力。

     

    参考答案:

    1、请获取列表中重复元素最多的元素,以及重复的次数

    例子1:参数 ['a', 'b', 'a', 'b', 'c', 'd', '1', 'd', '2'] 结果: 重复最多的是:['d', 'a', 'b'],重复个数:2

    例子2:参数 ['a','a','a', 'b', 'a', 'b', 'c', 'd', '1', 'd', '2'] 结果:重复最多的是:['a'],重复个数:4

    def func(data):
        # 重复最多的次数
        mv = max([data.count(i) for i in set(data)])
        # 获取重复最多的元素
        ns = [k for k in set(data) if data.count(k) == mv]
        print("重复最多的是:{},重复个数:{}".format(ns, mv))
    ​
    if __name__ == '__main__':
        data = ['a', 'b', 'a', 'b', 'c', 'd', '1', 'd', '2']
        func(data)

     

    2、python -- 对list去重并找出列表list中的重复元素

    from collections import Counter #引入Counter
    a = [1, 2, 3, 3, 4, 4]
    b = dict(Counter(a))
    print(b)
    print([key for key,value in b.items() if value > 1]) #只展示重复元素
    print({key:value for key,value in b.items() if value > 1}) #展现重复元素和重复次数

     

    3、python统计字符串中指定字符出现次数的方法

    s = "Count, the number of spaces."
    print(s.count(" "))
    x = "I like to program in Python"
    print(x.count("i"))

     

    4、统计列表(list)中每个元素出现的次数

    lista = [1, 2, 3, 4, 12, 22, 15, 44, 3, 4, 4, 4, 7, 7, 44, 77, 100]
    ​
    new_dict = {}
    for item in lista:
        if item not in new_dict.keys():
            new_dict[item] = lista.count(item)
    ​
    print(new_dict)

     

    5、列表推导式求列表所有奇数并构造新列表 a = [1,2,3,4,5,6,7,8,9,10]

    a = [1,2,3,4,5,6,7,8,9,10]
    b = [i for i in a if i % 2 != 0]
    print(b)
    # 执行结果为[1, 3, 5, 7, 9]

     

    6、用 python 写个冒泡排序 a = [1, 3, 10, 9, 21, 35, 4, 6]

    # 用 python 写个冒泡排序
    a = [1, 3, 10, 9, 21, 35, 4, 6]
    ​
    for _ in range(1,len(a)):
        for i in range(0,len(a)-j):
            # 前一位数 > 后一位数。交换位置。
            if a[i] > a[i+1]:
                a[i],a[i+1] = a[i+1],a[i]
    ​
    print(a)

    相关文章:http://testingpai.com/article/1596527692183

     

     

    7、已知一个数列:1、1、2、3、5、8、13、。。。。的规律为从 3 开始的每一项都 等于其前两项的和,这是斐波那契数列。

    求满足规律的 100 以内的所有数据

    # 递归求和
    def func(n):
        if n == 1 or n == 2:
            return 1
        else:
            return func(n-1) + func(n-2)
    ​
    # 处理
    def get_all_numbs():
        datas = []
        max_value = 0
        count = 1
        while max_value < 100:
            max_value = func(count)
            if max_value >= 100:
                break
            datas.append(max_value)
            count += 1
        return datas
    ​
    print(get_all_numbs())
    # 结果为[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]

     

    8、幂的递归 计算 x 的 n 次方,如:3 的 4 次方 为 333*3=81

    # 递归的方式
    def mi(x, n):
        if n == 0:
            return 1
        else:
            return x*mi(x, n-1)
    print(mi(3, 4))
    ​
    # 非递归的方式:
    def mix(x,n):
        result = 1
        for count in range(n):
            result *= x
        return result
    ​
    print(mi(3,4))

     

    9、给定字符串,找出有重复的字符串,并输出其位置 。

    输入: abcaaXY12ab12 输出: a, 1; a, 4; a, 5; a, 10; b, 2; b, 11; 1, 8; 1, 12; 2, 9; 2, 13

    def find_repeat_char(s):
        data = {}
        for index, char in enumerate(s):
            temp = data.get(char, [])
            temp.append('{}, {}'.format(char, index+1))
            data[char] = temp
        print(data)
        res = []
        for value in data.values():
            if len(value) > 1:
                res.extend(value)
        return '; '.join(res)
    
    print(find_repeat_char('abcaaXY12ab12'))

     

    *******请大家尊重原创,如要转载,请注明出处:转载自:https://www.cnblogs.com/Simple-Small,谢谢!!*******
    *******有任何疑问,欢迎加微:qd20150815 (加时请备注:博客园-简)*******
  • 相关阅读:
    Lilo的实现
    通过Bochs分析Lilo启动Linux内核的过程
    Linux内核代码布局
    Linux启动过程的内核代码分析
    Linux启动过程的C语言代码分析
    Linux操作系统中对于NTFS读取目录功能的实现
    Linux初始化的汇编代码
    Linux文件映射的反思
    Xen的概况
    安装debian总结以及编译linux内核
  • 原文地址:https://www.cnblogs.com/Simple-Small/p/14612507.html
Copyright © 2020-2023  润新知