大量免費學習推薦,敬請訪問python教程(視頻)
python面試常見問題有:
1、Python是什麽?簡述並說明優點和缺點?
Python是壹種面向對象的解釋性計算機編程語言,它是結合了解釋性、編譯性、互動性和面向對象的腳本語言。
優點:開源、免費、簡單、易學、可移植、可擴展、易維護、開發效率高。
缺點:運行速度慢、代碼不能加密。
2、Python是如何被解釋的?
Python是壹種解釋性語言,它的源代碼可以直接運行。Python解釋器會將源代碼轉換成中間語言,之後再翻譯成機器碼再執行。
3、什麽是PEP8?
PEP8是壹個編程規範,是讓程序更具可讀性的壹些建議。
4、Python是怎樣管理內存的?
1)引用計數機制:Python內部使用引用計數,來保持追蹤內存中的對象。
2)垃圾回收機制:當壹個對象的引用計數歸零時,它將被垃圾收集機制處理掉;
循環垃圾回收器,確保釋放循環引用對象。
3).內存池機制:
Python提供了對內存的垃圾收集機制,但是它將不用的內存放到內存池而不是返回給操作系統:
Pymalloc機制:為了加速Python的執行效率,Python引入了壹個內存池機制,用於管理對小塊內存的申請和釋放。
對於Python對象,如整數,浮點數和List,都有其獨立的私有內存池,對象間不***享他們的內存池。也就是說如果妳分配又釋了大量的整數,用於緩存這些整數的內存就不能再分配給浮點數。
Python裝飾器是壹個函數,是Python中的特有變動,可以使修改函數變得更容易。它可以使函數在不修改本身的函數定義外,動態產生額外的功能。
5、什麽是Python裝飾器?
Python裝飾器是壹個函數,是Python中的特有變動,可以使修改函數變得更容易。它可以使函數在不修改本身的函數定義外,動態產生額外的功能。
叠代器、生成器
可叠代對象:可以使用for-in遍歷的對象,都是可叠代對象
在Python中如果壹個對象有__iter__( )方法或__getitem__( )方法,則稱這個對象是可叠代的(Iterable);其中__iter__( )方法的作用是讓對象可以用for ... in循環遍歷,__getitem__( )方法是讓對象可以通過“實例名[index]”的方式訪問實例中的元素。換句話說,兩個條件只要滿足壹條,就可以說對象是可叠代的。顯然列表List、元組Tuple、字典Dictionary、字符串String等數據類型都是可叠代的。
叠代器:叠代器是訪問集合元素的壹種方式。能夠使用for-in進行遍歷,並能使用next函數進行叠代的對象
在Python中如果壹個對象有__iter__( )方法和__next__( )方法,則稱這個對象是叠代器(Iterator);其中__iter__( )方法是讓對象可以用for ... in循環遍歷,__next__( )方法是讓對象可以通過next(實例名)訪問下壹個元素。註意:這兩個方法必須同時具備,才能稱之為叠代器。列表List、元組Tuple、字典Dictionary、字符串String等數據類型雖然是可叠代的,但都不是叠代器,因為他們都沒有next( )方法。
6、函數閉包
引用了自由變量的函數即是壹個閉包. 這個被引用的自由變量和這個函數壹同存在, 即使已經離開了創造它的環境也不例外.
7、數組和元組之間的區別是什麽?
數組和元組之間的區別:數組內容是可以被修改的,而元組內容是只讀的。另外,元組可以被哈希,比如作為字典的關鍵字。
8、類方法和靜態方法
method:通過實例調用,可以引用類內部的任何屬性和方法
classmethod:無需實例化,可以調用類屬性和類方法,無法取到普通的成員屬性和方法
staticmethod:無需實例化,無法取到類內部的任何屬性和方法, 完全獨立的壹個方法
9、Python提供哪些內置類型?
整型(int)、字符串(str)、元組(tuple)、布爾(bool)、集合(set)、列表(list)、字典(dict)
10、字典推導式和列表推導式是什麽?
它們是可以輕松創建字典和列表的語法結構。
參數按值傳遞和引用傳遞是怎樣實現的?
Python中的壹切都是類,所有的變量都是壹個對象的引用。引用的值是由函數確定的,因此無法被改變。但是如果壹個對象是可以被修改的,妳可以改動對象。
11、Python中的lambda是什麽?
這是壹個匿名函數,常被用於代碼中的單個表達式。
12、Python中的pass是什麽?
pass是壹個占位符,用來表示空白,不被執行。
13、Python中淺拷貝和深拷貝的區別?
copy.copy()淺拷貝:拷貝了對象,但拷貝對象的值仍然是指向原對象的值(相當於引用),修改拷貝對象的元素,則被拷貝對象的值也會被修改。
copy.deepcopy()深拷貝: 不僅拷貝了對象,同時也拷貝了對象中的元素,獲得了全新的對象,與被拷貝對象完全獨立;但這需要犧牲壹定的時間和空間。
14、Python中的模塊和包是什麽?
在Python中,模塊是搭建程序的壹種方式。每壹個Python代碼文件都是壹個模塊,並可以引用其他的模塊,比如對象和屬性。
壹個包含許多Python代碼的文件夾是壹個包。壹個包可以包含模塊和子文件夾。