精選大廠10道常考python面試題!

七月在線【無人駕駛感知融合】將于本月底正式開課。課程將從自動駕駛的基礎理論開始講起(當然,平臺上還有無人駕駛實戰(zhàn)、slam、目標檢測、目標跟蹤等課程也可以學習),帶你走入無人駕駛感知融合的世界。

問題1:Python中的列表和元組有什么區(qū)別?
list 是可變的對象,元組 tuple 是不可變的對象。也就是說列表中的元素可以進行任意修改,而元組中的元素無法修改。

問題2:Python數組和列表有什么區(qū)別?
Python中的數組和列表具有相同的存儲數據方式。但是,數組只能包含單個數據類型元素,而列表可以包含任何數據類型元素。

問題3:Python中append和extend的區(qū)別?
append()? 向列表尾部追加一個新元素,列表只占一個索引位,在原有列表上增加
extend() 向列表尾部追加一個列表,將列表中的每個元素都追加進來,在原有列表上增加

問題4:Python中==和is的區(qū)別
is用于判斷兩個變量引用對象是否為同一個,==用于判斷引用變量的值是否相等。

問題5:說一下Python深淺拷貝
對于不可變類型(字符串、數值型、布爾值):淺拷貝和深拷貝一樣,對象的引用(內存地址)沒有發(fā)生變化。
對于可變對象(列表、字典、集合):淺拷貝在拷貝時,只會copy一層,在內存中開辟一個空間,存放這個copy的列表。
更深的層次并沒有copy,即第二層用的都是同一個內存;深拷貝時,會逐層進行拷貝,遇到可變類型,就開辟一塊內存復制下來,遇到不可變類型就沿用之前的引用。
因為不可變數據修改會從新開辟新的空間,所以,深拷貝數據之間的修改都不會相互影響。
總結如下:
淺拷貝花費時間少,占用內存少,只拷貝頂層數據,拷貝效率高。
對不可變對象拷貝時,淺拷貝和深拷貝的作用是一致的,不開辟新空間,相當于賦值操作。
可變對象淺拷貝時,只拷貝第一層中的引用,如果元素是可變對象,并且被修改,那么拷貝的對象也會發(fā)生變化。
可變對象深拷貝時,會逐層進行拷貝,遇到可變類型,就開辟一塊內存復制下來。
元組是個異類。元組是否為可變對象取決于元組中的元素。如果元組中每個元素以及其子孫元素都不包含可變對像,那么這個元祖就是不可變對象。如果元組的元素以及子孫元素中包含可變對象,那么元組就是可變對象。

問題6:區(qū)分下break,continue和pass?
break:跳出循環(huán),不執(zhí)行下一個循環(huán)。同時break后面的代碼也不會執(zhí)行。
pass:pass后面的代碼還是會繼續(xù)執(zhí)行,也就是當前的循環(huán)還在繼續(xù)。
continue:continue后面的代碼不會執(zhí)行,而是直接進入下一個循環(huán)。

?
問題7:Python中的局部變量和全局變量是什么?
全局變量:在函數外或全局空間中聲明的變量稱為全局變量。這些變量可以由程序中的任何函數訪問。
局部變量:在函數內聲明的任何變量都稱為局部變量。此變量存在于局部空間中,而不是全局空間中。

問題8:python中range&xrange有什么區(qū)別?
在大多數情況下,xrange和range在功能方面完全相同。
它們都提供了一種生成整數列表的方法,唯一的區(qū)別是range返回一個Python列表對象,x range返回一個xrange對象。這就表示xrange實際上在運行時并不是生成靜態(tài)列表。
它使用稱為yielding的特殊技術根據需要創(chuàng)建值。該技術與一種稱為生成器的對象一起使用。因此如果你有一個非常巨大的列表,那么就要考慮xrange。

問題9:python裝飾器是什么?
裝飾器本質上是一個Python函數,它可以讓其他函數在不需要做任何代碼變動的前提下增加額外功能,裝飾器的返回值也是一個函數對象。
它經常用于有切面需求的場景,比如:插入日志、性能測試、事務處理、緩存、權限校驗等場景。

?
問題10:說一下python迭代器和生成器?
介紹python生成器需要先介紹可迭代對象和迭代器。
可迭代對象(Iterable Object),簡單的來理解就是可以使用 for 來循環(huán)遍歷的對象。比如常見的 list、set和dict。
可迭代對象具有__iter__ 方法,用于返回一個迭代器,或者定義了 getitem 方法,可以按 index 索引的對象(并且能夠在沒有值時拋出一個 IndexError 異常),因此,可迭代對象就是能夠通過它得到一個迭代器的對象。所以,可迭代對象都可以通過調用內建的 iter() 方法返回一個迭代器。
生成器其實是一種特殊的迭代器,不過這種迭代器更加優(yōu)雅。它不需要再像上面的類一樣寫__iter__()和__next__()方法了,只需要一個yiled關鍵字。

七月在線【無人駕駛感知融合】將于本月底正式開課。

課程將從自動駕駛的基礎理論開始講起(當然,平臺上還有無人駕駛實戰(zhàn)、slam、目標檢測、目標跟蹤等課程也可以學習),帶你走入無人駕駛感知融合的世界。

課程特色:
??特色1:從零入門?-?從基礎知識開始介紹,循序漸進,一點點深挖無人駕駛的主要技術點;
??特色2:七大項目 -?重視學生的在自動駕駛領域的設計、動手能力和項目實踐;
??特色3:數據融合 -?計算機視覺與雷達應用相結合。

所需基礎:
??1、基礎數理知識。熟悉概率論,卡爾曼濾波。
??2、一定的編程基礎。熟悉C++與python語言。
戳↓↓“閱讀原文”了解課程詳情!
