您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關面試中不常見卻一定會問到Python題分別是哪些,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
Python面試題解析
編者按:
恰逢金三銀四招聘季,很多朋友都在忙著跳槽找工作,不斷的面試……我們知道網上有非常多面試題的解析,但是其中往往是前幾年的老題了。 為了幫助小伙伴們能夠在Python工作面試中脫穎而出,再此特別奉上2019年11道***Python面試大題及答題思路解析。
1、請用python編寫函數find_string,從文本中搜索并打印內容,要求支持通配符星號和問號。
例子:
>>>find_string('hello\nworld\n','wor') ['wor'] >>>find_string('hello\nworld\n','l*d') ['ld'] >>>find_string('hello\nworld\n','o.') ['or']
解析:
def find_string(str_in,pat): import re return re.findall(pat,str_in,re.I)
2、看你T恤上印著:人生苦短,我用Python,你可否說說Python到底是什么樣的語言?你可以比較其他技術或者語言來回答你的問題。
解析:
這里是一些關鍵點:Python是解釋型語言。這意味著不像C和其他語言,Python運行前不需要編譯。其他解釋型語言包括PHP和Ruby。
1.Python是動態類型的,這意味著你不需要在聲明變量時指定類型。你可以先定義x=111,然后 x=”I’m a string”。
2.Python是面向對象語言,所有允許定義類并且可以繼承和組合。Python沒有訪問訪問標識如在C++中的public, private, 這就非常信任程序員的素質,相信每個程序員都是“成人”了~
3.在Python中,函數是一等公民。這就意味著它們可以被賦值,從其他函數返回值,并且傳遞函數對象。類不是一等公民。
4.寫Python代碼很快,但是跑起來會比編譯型語言慢。幸運的是,Python允許使用C擴展寫程序,所以瓶頸可以得到處理。Numpy庫就是一個很好例子,因為很多代碼不是Python直接寫的,所以運行很快。
5.Python使用場景很多 – web應用開發、大數據應用、數據科學、人工智能等等。它也經常被看做“膠水”語言,使得不同語言間可以銜接上。
6.Python能夠簡化工作 ,使得程序員能夠關心如何重寫代碼而不是詳細看一遍底層實現。
本題解析來源:@David 9,鏈接:http://nooverfit.com/wp/15
3、請寫出一段Python代碼實現刪除一個list里面的重復元素。
解析:
1.使用set函數,set(list)
2.使用字典函數,
>>>a=[1,2,4,2,4,5,6,5,7,8,9,0] >>> b={} >>>b=b.fromkeys(a) >>>c=list(b.keys()) >>> c
本題解析來源:@Tom_junsong
4、a=[1,2,4,2,4,5,7,10,5,5,7,8,9,0,3],編程用 sort 進行排序,然后從***一個元素開始判斷?
解析:
a.sort() last=a[-1] for i inrange(len(a)-2,-1,-1): if last==a[i]: del a[i] else:last=a[i] print(a)
本題解析來源:@Tom_junsong
5、Python里面如何生成隨機數?
解析:
random模塊
隨機整數:random.randint(a,b):返回隨機整數x,a<=x<=b
random.randrange(start,stop,[,step]):返回一個范圍在(start,stop,step)之間的隨機整數,不包括結束值。
隨機實數:random.random( ):返回0到1之間的浮點數
random.uniform(a,b):返回指定范圍內的浮點數。
本題解析來源:@Tom_junsong
6、Python里面如何實現tuple和list的轉換?
解析:
直接使用tuple和list函數就行了,type()可以判斷對象的類型
7、什么是lambda函數?它有什么好處?
解析:
lambda 表達式,通常是在需要一個函數,但是又不想費神去命名一個函數的場合下使用,也就是指匿名函數
lambda函數:首要用途是指點短小的回調函數
lambda [arguments]:expression >>> a=lambdax,y:x+y >>> a(3,11)
8、- 輸入一個字符串 返回滿足以下條件的字符串
- 由字符串的最前面兩個字母和***兩個字母組成的字符串。
- 例如: 'spring' 返回 'spng', 'is' 返回 'is’
- 當輸入的字符串長度小于2時,返回空字符串
解析:
s=input('input:') l=len(s) if l<2: print('') else : if l>3: s=s[:2]+s[-2:] print(s)
9、把每個合數分解成幾個質數相乘的形式,例如:100=2*2*5*5,并把代碼封裝成函數的形式
解析:
def f(n): result = [] i = 2 str1 = str(n) + '=' while n > 1: if n % i == 0: n /= i result.append(str(i)) i -= 1 i += 1 str1 += '*'.join(result) return str1 if __name__ == '__main__': for i in range(100, 120): print(f(i))
對n進行分解質因數,應先找到一個最小的質數k,然后按下述步驟完成:
(1)如果這個質數恰等于n,則說明分解質因數的過程已經結束,打印出即可。
(2)如果n<>k,但n能被k整除,則應打印出k的值,并用n除以k的商,作為新的正整數你n,重復執行***步。
(3)如果n不能被k整除,則用k+1作為k的值,重復執行***步。
10、請用Python手寫實現冒泡排序
解析:
冒泡排序的原理不難,假定要將被排序的數組R[1..n]從大到小垂直排列,每個數字R可以看作是重量為R.key的氣泡。
根據輕氣泡在上、重氣泡在上的原則,從下往上掃描數組R:凡掃描到違反本原則的輕氣泡,則使其向上"飄浮"。如此反復進行,直到***任何兩個氣泡都是輕者在上、重者在下為止。
然后將所有氣泡逆序,就實現了數組從小到大的排序。
步驟:
1 比較相鄰的元素。如果***個比第二個大,就交換他們兩個。
2 對第0個到第n-1個數據做同樣的工作。這時,***的數就到了數組***的位置上。
3 針對所有的元素重復以上的步驟,除了***一個。
4 持續每次對越來越少的元素重復上面的步驟,直到沒有任何一對數字需要比較。
Python實現
def bubble_sort(arry): #獲得數組的長度 n = len(arry) for i in range(n): for j in range(1,n-i): #如果前者比后者大 if arry[j-1] > arry[j] : #則交換兩者 arry[j-1],arry[j] = arry[j],arry[j-1] return arry
11、- 判斷是否為回文
- 提示:回文:62426是回文數字
解析:
s=input('pls input a string of numbes:') s_=s[::-1] answer='isn\'t' if s_==s: answer='is' print(s,answer,'Palindrome number')
如果您還想看更多關于Python的面試題,我們推薦你點擊“閱讀原文”到七月在線AI面試題題庫,題庫里目前擁有上千道AI面試題解析,涵蓋所有考點,包括機器學習、深度學習、Python、NLP、數據挖掘、算法等個方面。
關于面試中不常見卻一定會問到Python題分別是哪些就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。