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