Python面試的一些心得,與Python練習題分享

華為雲發表於2019-09-17

 

關於基礎

專案打算招聘一個自動化運維,主要需求是python、Linux與shell指令碼能力。但面試幾天發現一些問題:

簡歷虛假

這個不管哪行,簡歷含水量大都是普遍存在的,看簡歷犀利的一比,一面是能力弱的一腿。誰都希望自己80分的能力寫成120,但有時候假的有些離譜,問一兩個問題就漏氣了…

年齡與薪酬

目前的IT行業,最敢坐地起薪的就是27–33這年齡段的,低於範圍的往往因為能力或者說跳槽經驗少,而不敢要高價,高於這個年齡的感覺失去了針對年輕人的幹勁與學習能力,所以起薪不算太高或者浮動好商量。當然這裡說的是普遍情況,而不包含那些能力較強的精英人才。

重高階輕基礎

經常你會發現,接受面試的人,上來就跟你說做過什麼類似高階的、前沿的技術。你挑著問你個問題,回答的還行。反而你問一些較為基礎的東西時,卻回答的不盡人意。但有時候,BUG往往都發生在那些細小的基礎環節。
舉幾個這幾天的例子:

  • list tuple dict set 是可迭代物件,那麼字串是否為可迭代物件?

頭腦一熱的,馬上回答不是,但其實…

>>> from collections import Iterable
>>> isinstance('abc', Iterable)
>>> True
>>> isinstance('', Iterable)
>>> True

  • 在面試中問到Python集合定義時,A說可以使用花括號包裹多種型別的資料生成集合。那建立空集合呢?A順口就回復了一句,新增一對空的花括號…
>>> type({1,2,3})
>>> <class 'set'>
>>> type({})
>>> <class 'dict'>
>>> type(set())
>>> <class 'set'>
  • 假設一個list A為[1,2,3,4],如何獲取A的最後一個資料A[-1],如何向A的末尾插入數字5?A.append(5) OK,貌似他覺得我說的是插入,又不充了一個A.insert(-1,5)。index使用-1貌似是跟我之前問道的獲取最後一個元素有關,但這樣真的對麼?
>>> A=[1,2,3,4]
>>> A.insert(-1,5)
>>> A
>>> [1, 2, 3, 5, 4]

append()方法是值在列表的末尾增加一個資料項,insert()方法是指在某個特定位置前加一個資料項。

舉幾個例子,也許大家看到覺得回答的有些蠢,但其實這些知識對於基礎知識薄弱的一個體現。

關於Python練習

這幾天一些朋友問,python基礎的知識和書看了一些了,但總覺得學完了就完了,感覺學了一堆知識,沒有什麼深入的理解與運用。其實這些都是因為練習的太少了。針對演算法可以去https://leetcode.com/中文網站https://leetcode-cn.com/去刷一些演算法題,或者說是經典筆試題。

菜鳥教程上也有一套python100例的練習集合:

當然如果覺得網上刷題麻煩,也可以看看這份Python100經典練習題的PDF進行學習:

PDF下載地址:https://pan.baidu.com/s/1rVTqBBUJGBQwlQlHheFvlA 提取碼:fl2k

The End

OK,今天的內容就到這裡,如果覺得內容對你有所幫助,歡迎點贊。
期待你關注我的公眾號 清風Python,如果覺得不錯,希望能動動手指轉發給你身邊的朋友們。

作者:清風Python

相關文章