在這個即將進入金9銀10的跳槽季節的時候,肯定需要一波面試題了,安靜總結了一些經常遇到的python面試題,讓我們一起擼起來。
python面試題
1、求出1-100之間的和
# coidng:utf-8 a = 0 for i in range(0,100): a += (i+1) print(a)
5050
# 也可以使用函數sum sum = sum(range(1,101)) print(sum)
5050
2、冒泡排序
a = [1,6,4,2,67,32] l = len(a) for i in range(l): for j in range(l-1): if a[l-j-1]<a[l-j-2]: a[l-j-1],a[l-j-2] = a[l-j-2],a[l-j-1] for i in range(l): print(a[i])
# 代碼結果
1
2
4
6
32
67
3、數字排序
一看就是冒泡排序。這次我們用函數
a = [1,6,4,2,67,32] m = sorted(a) print(m)
# 代碼結果
[1, 2, 4, 6, 32, 67]
# 也可通過其他函數
a.sort()
4、寫出常用的python庫
我們做測試的常用的肯定是與測試有關的嘍
requests--接口自動化
selenium--web的UI自動化
appium--app的UI自動化
re ---正則表達式
5、python的數據類型
整型--int
布爾型--bool
字符串--str
列表--list
元組--tuple
字典--dict
6、python2與python3的區別
安靜來看python2和python3的最大區別就是編碼問題了
python2中使用ascii編碼,python3中使用utf-8編碼
7、python的可變數據類型和不可變數據類型
不可變數據類型:數值型、字符串型string和元組tuple
不允許變量的值發生變化,如果改變了變量的值,相當於是新建了一個對象
可變數據類型:列表list和字典dict;
允許變量的值發生變化,即如果對變量進行append、+=等這種操作后,只是改變了變量的值,而不會新建一個對象,變量引用的對象的地址也不會變化,不過對於相同的值的不同對象,在內存中則會存在不同的對象,即每個對象都有自己的地址,相當於內存中對於同值的對象保存了多份,這里不存在引用計數,是實實在在的對象。
8、在編輯python腳本的時候遇到bug怎么解決
1、通過print()進行調試,看看哪里出了問題
2、如果是第三方庫的書寫問題,查找文檔,
9、python如何操作Excel表
第3方庫xlwr和xlrd
其中xlwr是對Excel進行寫,xlrd是對Excel進行讀
10、*arg和*kwarg的作用
簡單的來說就是可以是我們的函數引入多個實參
*arg返回的是字典
*kwarg返回的是元祖
11、python通過什么連接數據庫
python2通過MYSQL-python
python3通過pyMysql
12、我們通過編寫自動化測試的過程通過什么保存數據
通過yaml或者是ini
13、裝飾器是什么
裝飾器是為已經存在的函數或者對象添加額外的功能。本質上是一個閉包函數(閉包函數:本質是個嵌套函數,內層函數引用外層函數的變量並且返回外層函,外層函數返回內層函數)
14、裝飾器的作用
1.不修改已有函數的源代碼
2.不修改已有函數的調用方式
3.為已有函數添加額外的功能
15、列表去重
# 首先轉換成列表 m = set(a) print(m) print(type(m)) # 在從列表轉換成列表 x = [i for i in m] print(x) print(type(x) # 代碼結果 {1, 2, 3, 45, 23} <class 'set'> [1, 2, 3, 45, 23] <class 'list'>
16、lambda函數實現兩個數相乘
# 通過匿名函數 sum = lambda a,b: a*b print(sum(2,6)) # 代碼結果 12
17、python兩個數值交換
a ,b = 5,6 print("a的值為:%s"%a,"b的值為%s"%b) a, b =b,a print("a的值為:%s"%a,"b的值為%s"%b) 代碼結果 a的值為:5 b的值為6 a的值為:6 b的值為5
18、如何提高python的運行效率
1、使用生成器,因為可以節約大量內存
2、循環代碼優化,避免過多重復代碼的執行
3、核心模塊用Cython PyPy等,提高效率
4、多進程、多線程、協程
5、多個if elif條件判斷,可以把最有可能先發生的條件放到前面寫,這樣可以減少程序判斷的次數,提高效率
19、如何生成一個隨機數?
通過random模塊
import random # 隨機整數 a = random.randint(0,100) print(a) # 隨機浮點數: m = random.random() print(m)
20、如何判斷是函數還是方法
通常來說類中的函數為方法,類外面聲明def為函數
收集了一些python面試題,當然這不是完整的,點個關注,持續更新~~~
持續更新:python簡單面試題(2)
PS:有測試同學會說,測試不是點點點嗎?寫什么代碼。會點就行。在我們這個行業涌入越來越多的人,軟件測試技術要求也越來越高,為了我們口袋的錢財,大家一起努力學習吧~~