當前位置:成語大全網 - 新華字典 - python面試常見問題有哪些

python面試常見問題有哪些

python面試常見問題有:1、Python是如何被解釋的;2、什麽是PEP8;3、Python是怎樣管理內存的;4、什麽是Python裝飾器;5、Python提供哪些內置類型等等。

大量免費學習推薦,敬請訪問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代碼的文件夾是壹個包。壹個包可以包含模塊和子文件夾。