2021金三銀四 - 我們遇到的那些面試題(2)-python語言篇


前言

最近收到了很多自動化學員反饋的面試題 。。

有主觀題 ,有功能測試題,有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'))

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM