-
【Python面試題】有沒有一個工具可以幫助查找python的bug和進行靜態的代碼分析?
答:PyChecker是一個Python代碼的靜態分析工具,它可以幫助查找Python代碼的bug, 會對代碼的復雜度和格式提出警告 Pylint是另外一個工具可以進行codingstandard檢查 【返回原文】
-
【Python面試題】書寫一個函數,用于替換某個字符串或幾個字符串
函數原型strreplace(str,oldString,newString) 例如: s = 'Hello World!'; afterReplace = strreplace(s,'World','Tom') 輸出結果為:"Hello Tom!" 1 2 3 代碼實現: def strreplace(str,oldString,newString): str_list = str.split(oldString) print(newString.join(str_list)) strrepa…
-
【Python面試題】在python中,list,tuple,dict,set有什么區別,主要應用于什么樣的場景
解答list:列表(鏈表的數據結構)有序的項目, 通過索引進行查找,使用方括號”[]”;tuple:元組 元組將多樣的對象集合到一起,不能修改,通過索引進行查找, 使用括號”()”;dict:字典 字典是一組鍵(key)和值(value)的組合,通過鍵(key)進行查找,沒有順序, 使用大括號”{}”;set:集合 無序,元素只出現一次, 自動去重,使用”set([])”應用場景list, 簡單的數據集合,可以使用索引;tuple, 把一些數據當做一個整體去使用,不能修改;dict,使用鍵值和值…
-
【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 復制代碼 【點擊返回】