-
【Python面試題】-iterable(可迭代對象)和iterator(迭代器)的區別?
可迭代對象(list,set,dict)可以重復迭代,只能使用for循環;迭代器只能迭代一次,可以通過next或for進行迭代。 ps:可迭代對象不能使用next函數調用但是可以使用for調用,而迭代器可以使用next,也可以使用for進行調用。 ps:他倆最大的區別就是,可迭代對象可以無限迭代,而迭代器只能迭代一次(是個數據流的形式!)。 判斷迭代器 : isinstance([], Iterator)。 判斷可迭代對象:??isinstance([], Iterable)。 【返回…
-
【Python面試題】簡單談下GIL:
Global Interpreter Lock(全局解釋器鎖) Python代碼的執行由Python 虛擬機(也叫解釋器主循環,CPython版本)來控制,Python 在設計之初就考慮到要在解釋器的主循環中,同時只有一個線程在執行,即在任意時刻,只有一個線程在解釋器中運行。對Python 虛擬機的訪問由全局解釋器鎖(GIL)來控制,正是這個鎖能保證同一時刻只有一個線程在運行。在多線程環境中,Python 虛擬機按以下方式執行: 設置G…
-
【Python面試題】Python是怎樣管理內存的?
Python的內存管理是由私有heap空間管理的。所有的Python對象和數據結構都在一個私有heap中。程序員沒有訪問該heap的權限,只有解釋器才能對它進行操作。為Python的heap空間分配內存是由Python的內存管理模塊進行的,其核心API會提供一些訪問該模塊的方法供程序員使用。Python有自帶的垃圾回收系統,它回收并釋放沒有被使用的內存,讓它們能夠被其他程序使用。 【返回原文】
-
【Python面試題】怎樣獲取字典中所有鍵的列表?
【Python面試題答案】: 使用 keys() 獲取字典中的所有鍵 >>> mydict={'a':1,'b':2,'c':3,'e':5}>>> mydict.keys()dict_keys(['a', 'b', 'c', 'e']) 【返回早報】
-
【Python面試題】在Python中如何使用多進制數字?
【Python面試題答案】: 我們在Python中,除十進制外還可以使用二進制、八進制和十六進制。二進制數字由0和1組成,我們使用 0b 或 0B 前綴表示二進制數。 >>> int(0b1010)10 使用bin()函數將一個數字轉換為它的二進制形式。 >>> bin(0xf)‘0b1111’ 八進制數由數字 0-7 組成,用前綴 0o 或 0O 表示 8 進制數。 >>> oct(8)‘0o10’ 十六進數由數字 0-15 組成,用前綴 0x 或者 0X 表示 16 進制數。 >>> hex…
-
【Python面試題】請解釋一下Python中的位運算符?
【Python面試題答案】: 該運算符按二進制位對值進行操作。 與(&),按位與運算符:參與運算的兩個值,如果兩個相應位都為1,則該位的結果為1,否則為0 >>> 0b110 & 0b0102 或(|),按位或運算符:只要對應的?個?進位有?個為1時,結果位就為1。 >>> 3|23 異或(^),按位異或運算符:當兩對應的?進位相異時,結果為1 >>> 3^21 取反(~),按位取反運算符:對數據的每個二進制位取反,即把1變為…
-
【Python開發面試題】列表和元組之間的區別是?
答:二者的主要區別是列表是可變的,而元組是不可變的。舉個例子,如下所示: mylist=[1,3,3] mylist[1]=2 mytuple=(1,3,3) mytuple[1]=2 Traceback (most recent call last): File "", line 1, in mytuple[1]=2 復制代碼 【點擊返回】
-
【Python面試題】解釋一下Python中的身份運算符
【答案 】: 通過身份運算符‘is’和‘is not’,我們可以確認兩個值是否相同。 >>> 10 is '10'False >>> True is not FalseTrue 【返回早報】
-
【Python面試題】解釋一下Python中的成員運算符?
【答案】: 通過成員運算符‘in’和‘not in’,我們可以確認一個值是否是另一個值的成員。 >>> 'me' in 'disappointment'True>>> 'us' not in 'disappointment'True 【返回早報】
-
【Python面試題】請解釋一下Python中的邏輯運算符?
【答案】: Python中有3個邏輯運算符: and, or, not。 >>> False and TrueFalse>>> 7<7 or TrueTrue>>> not 2==2False 【返回早報】