python面试技巧和注意事项_Python 程序员面试须知须会的5个问题
原標題:Python 程序員面試須知須會的5個問題
作為一個程序員,可能或多或少經歷過一些技術面試,有些是編程語言本身的問題,有些是跟工程相關的問題。今天我們來總結關于Python程序員面試的時候經常被問到的5個問題。供大家參考收藏。
0
1
淺談你對Python編碼規范的認識,并寫出你知道的編碼規范。
Python的規范主要基于以下幾個原因:
大多數程序員的代碼可讀性差。
不同的程序員之間的協作很重要,代碼可讀性必須要好。
在進行版本升級時,要基于源碼升級。
不友好的代碼會影響Python的執行效率,影響項目的整體進度。
目前都使用PEP 8的Python的編碼風格。Python的編碼規范主要有以下幾點:
1.代碼編排
縮進:4個空格實現縮進,盡量不使用Tab,禁止混用Tab和空格。
行:每行最大長度不超過79,換行可以使用反斜杠。最好使用圓括號將換行內容括起來,不建議使用“;”。
空行:類和top-level函數定義之間空兩行;類中的方法定義之間空一行;函數內邏輯無關段落之間空一行;其他地方盡量不要再空行。
空格:括號內的第一個位置,不要空格。緊靠右括號的位置也不要空格。冒號(:)、逗號(,)和分號(;)之前不要加空格。
括號:對于單元素tuple一定要加“,”和括號。
2.命名規范
module_name。
package_name。
ClassName。
method_name。
ExceptionName。
function_name。
GLOBAL_CONSTANT_NAME。
global_var_name。
instance_var_name。
function_parameter_name。
local_var_name。
3.注釋規范
塊注釋,在一段代碼前增加的注釋。在“#”后加一空格。段落之間以只有“#”的行間隔。
行注釋,在一句代碼后加注釋。
避免無謂的注釋。
4.編程建議
字符串拼接,盡量使用join。
單例對象,盡量使用is、is not,不要使用= =。
使用is not而不是not is。
使用def來定義函數,而不是將匿名函數賦給某個變量。
盡量使代碼整齊,簡潔。
使用isinstance來判斷instance的類型。
0
2
Python 如何定義一個函數?
用戶自定義函數需要遵循以下規則:
函數代碼塊以def 關鍵詞開頭,后接函數標識符名稱和圓括號。
任何傳入參數和自變量必須放在圓括號中間,圓括號中間可以用于定義參數。
函數的第一行語句可以選擇性地使用文檔字符串,用于存放函數說明。
函數內容以冒號起始,并且縮進。
“return [表達式]”用于結束函數,選擇性地返回一個值給調用者。不帶表達式的return 相當于返回None。
默認情況下,參數值和參數名稱是按函數聲明中定義的順序來匹配的。
Python 定義函數使用def 關鍵字,一般格式如下:
def 函數名(參數列表):
函數體
示例:
def hello:
print("Hello World!")
hello
運行結果:
Hello World!
0
3
什么是模塊?它有什么好處?
在Python中,一個.py文件就被稱之為一個模塊(Module)。模塊提高了代碼的可維護性,同時模塊還可以被其他地方引用。一個包含許多Python代碼的文件夾是一個包。一個包可以包含模塊和子文件夾。在Python中,模塊是搭建程序的一種方式。模塊一般分為以下幾種:
① 內置模塊:例如os、random、time和sys模塊。
② 第三方模塊:別人寫好的模塊,可以拿來使用,但是使用第三方模塊前,需要首先使用pip命令(第三方包管理工具)安裝。
③自定義模塊:程序員自己寫的模塊。
0
4
談一下Python的內存管理機制
Python內建了垃圾回收處理機制,引用計數是這個機制的一部分。
在Pyhton源碼中,實際上是用 Py_INCREF(op) 和 Py_DECREF(op) 這兩個宏來增加和減少引用計數。
當一個對象被創建、被賦值、被參數傳遞,函數返回之前的時候,它的引用計數值(ob_refcnt)都可能會被加1(INC),一直進行累加。
當對象變量失去作用域的時候,引用計數的值會減1(DEC)。
當一個對象的引用計數減少到0之后(ob_refcnt為0),Py_DECREF(op)會調用該對象 " 析構函數"(__del__) 將其從內存中釋放。
0
5
什么是Python的裝飾器。
裝飾器本質上是一個 Python 函數,它可以讓其他函數在不需要做任何代碼變動的前提下增加額外
功能,提高了代碼的復用性。裝飾器是一個函數,它接收一個函數返回另一個函數。裝飾器主要有以下
功能:
引入日志。
函數執行時間統計。
執行函數前預備處理。
執行函數后的清理功能。
權限校驗等場景。
緩存。
裝飾器其實就是一個以函數作為參數并返回一個替換函數的可執行函數。在不改動原函數代碼的情況下,為其增加新的功能。wrapper函數的參數定義是(*args, **kw),因此, wrapper函數可以接受任意參數的調用。在 wrapper函數內。例如下面的例子首先打印日志,再緊接著調用原始函數。
import time
import functools
def add:
print(' 調用(add) 函數時間: %s' % time.strftime('%Y-%m-%d%H:%M:%S'))
def log(func):
defwrapper:
#__name__ 可以獲得函數名稱
print(' 調用%s 函數時間: %s' % (func.__name__,time.strftime('%Y-%m-%d %H:%M:%S')))
func
returnwrapper
add_wrap = log(add)
add_wrap
運行結果:
調用add 函數時間: 2019-01-18 13:33:15
調用(add) 函數時間: 2019-01-18 13:33:15
受篇幅所限,關于這5個面試的問題就先講到這,其實關于Python面試筆試過程中涉及到的問題是十分廣泛和深入的。如果想了解更多關于Python的面試問題和技巧,小編建議大家關注我們本周四(7月2日)推出的程序員面試求職系列課程——Python程序員面試重點難點解析
程序員面試筆試求職系列叢書,自出版以來,受到廣大程序員和計算機專業學生的青睞,目前已出版29種,暢銷5年之久。為回報大家的支持,我們邀請該系列叢書的作者們,圍繞求職熱點,面試筆試難點,為大家開設系列免費直播課程——程序員面試求職系列課程。
Python程序員面試重點難點解析
開放時間:2020年7月4日(周四)20:00
主講老師:辛曉婷
天貓讀書新知圖書專營店
機械工業出版社官方騰訊直播
主講老師:辛曉婷
網名“小婷兒”,甘肅武威人,西北農林科技大學理學碩士,長期從事Python數據分析與數據挖掘工作,能在海量數據中尋找數據規律,發現數據異常,獲取深入的,有價值的信息,保證數據分析結果的高質量和數據挖掘的高價值,并在機器學習領域有一定造詣,熱衷技術分享。
★ Python語法
★ Python操作數據庫
★ 數據分析
★ 機器學習
★ Python發展空間
觀看方法
方法一:關注“IT有得聊”公眾號,我們會于直播前放出各平臺直播間二維碼。
方法二(墻裂推薦):
“Python”注意,一定要發送“Python”
點擊圖片可進入直播回看鏈接文章返回搜狐,查看更多
責任編輯:
總結
以上是生活随笔為你收集整理的python面试技巧和注意事项_Python 程序员面试须知须会的5个问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: struts2.1.8,hibernat
- 下一篇: 一个mp4文件分析工具