您好,登錄后才能下訂單哦!
小編給大家分享一下關于Python基礎的面試題,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
Python基礎篇
1、為什么學習Python
家里有在這個IT圈子里面,也想讓我接觸這個圈子,然后給我建議學的Python,然后自己通過百度和向有學過Python的同學了解了Python,Python這門語言,入門比較簡單,它簡單易學,生態圈比較強大,涉及的地方比較多,特別是在人工智能,和數據分析這方面。在未來我覺得是往自動化,人工智能這方面發展的,所以學習了Python。
2、通過什么途徑學習Python
剛開始接觸Python的時候,到網上里面跟著視頻學基礎,再后來網上到看技術貼,然后看到有人推薦廖雪峰的Python教程,
練項目到GitHub上面找一些小項目學習。
3、談談對Python和其他語言的區別
Python屬于解釋型語言,當程序運行時,是一行一行的解釋,并運行,所以調式代碼很方便,開發效率高,
還有龜叔給Python定位是任其自由發展、優雅、明確、簡單,所以在每個領域都有建樹,所有它有著非常強大的第三方庫。
特點:
語法簡潔優美,功能強大,標準庫與第三方庫都非常強大,而且應用領域也非常廣
可移植性,可擴展性,可嵌入性
缺點:運行速度慢
- 解釋型
- python/php
- 編譯型
- c/java/c#
- Python弱類型
(1)與java相比:在很多方面,Python比Java要簡單,比如java中所有變量必須聲明才能使用,而Python不需要聲明,用少量的代碼構建出很多功能;(高效的高級數據結構)
(2)與php相比:python標準包直接提供了工具,并且相對于PHP代碼更易于維護;
(3)Python與c相比:
Python 和 C Python這門語言是由C開發而來。
對于使用:Python的類庫齊全并且使用簡潔,如果要實現同樣的功能,Python 10行代碼可以解決,C可能就需要100行甚至更多。
對于速度:Python的運行速度相較與C,絕逼是慢了。
Python的優勢:
1、Python 易于學習;
2、用少量的代碼構建出很多功能;(高效的高級數據結構)
3、Python 擁有最成熟的程序包資源庫之一;
4、Python完全支持面向對象;
5、Python是跨平臺且開源的;
6、動態類型。
4、簡述解釋型和編譯型編程語言
解釋型:就是邊解釋邊執行(Python,php)
編譯型:編譯后再執行(c、java、c#)
5、Python的解釋器種類以及相關特點?
CPython
當我們從Python官方網站下載并安裝好Python 3.6后,我們就直接獲得了一個官方版本的解釋器:CPython。這個解釋器是用C語言開發的,所以叫CPython。在命令行下運行python就是啟動CPython解釋器。
CPython是使用最廣的Python解釋器。教程的所有代碼也都在CPython下執行。
IPython
IPython是基于CPython之上的一個交互式解釋器,也就是說,IPython只是在交互方式上有所增強,但是執行Python代碼的功能和CPython是完全一樣的。好比很多國產瀏覽器雖然外觀不同,但內核其實都是調用了IE。
CPython用>>>作為提示符,而IPython用In [序號]:作為提示符。
PyPy
PyPy是另一個Python解釋器,它的目標是執行速度。PyPy采用JIT技術,對Python代碼進行動態編譯(注意不是解釋),所以可以顯著提高Python代碼的執行速度。
絕大部分Python代碼都可以在PyPy下運行,但是PyPy和CPython有一些是不同的,這就導致相同的Python代碼在兩種解釋器下執行可能會有不同的結果。如果你的代碼要放到PyPy下執行,就需要了解PyPy和CPython的不同點。
Jython
Jython是運行在Java平臺上的Python解釋器,可以直接把Python代碼編譯成Java字節碼執行。
IronPython
IronPython和Jython類似,只不過IronPython是運行在微軟.Net平臺上的Python解釋器,可以直接把Python代碼編譯成.Net的字節碼。
小結:
Python的解釋器很多,但使用最廣泛的還是CPython。如果要和Java或.Net平臺交互,最好的辦法不是用Jython或IronPython,而是通過網絡調用來交互,確保各程序之間的獨
PyPy
由Python寫的解釋器,它的執行速度是最快。PyPy采用JIT技術,對Python代碼進行動態編譯(注意不是解釋),
絕大部分Python代碼都可以在PyPy下運行,但是PyPy和CPython有一些是不同的,這就導致相同的Python代碼在兩種解釋器下執行可能會有不同的結果。
Jython
Jython是運行在Java平臺上的Python解釋器,可以直接把Python代碼編譯成Java字節碼執行。
IronPython
IronPython和Jython類似,只不過IronPython是運行在.Net平臺上的Python解釋器,可以直接把Python代碼編譯成.Net的字節碼。
小結:
Python的解釋器很多,但使用最廣泛的還是CPython。如果要和Java或.Net平臺交互,最好的辦法不是用Jython或IronPython,而是通過網絡調用來交互,確保各程序之間的獨立性。
6、位和字節的關系
1字節 = 8 位 位(bit),數據存儲是以“字節”(Byte)為單位,數據傳輸是以大多是以“位”(bit,又名“比特”)為單位, 一個位就代表一個0或1(即一個二進制),二進制是構成存儲器的最小單位,每8個位(bit,簡寫為b)組成一個字節(Byte, 簡寫為B),字節是最小一級的信息單位
7、b、B、KB、MB、GB的關系
b --->位(bit) B --->字節 一個字節等于8位 1B = 8 bit 1kb = 1024 B 1 MB = 1024 KB 1 GB = 1024 MB
8、PE8規范
1、使用4個空格而不是tab鍵進行縮進。 2、每行長度不能超過79 3、使用空行來間隔函數和類,以及函數內部的大塊代碼 4、必要時候,在每一行下寫注釋 5、使用文檔注釋,寫出函數注釋 6、在操作符和逗號之后使用空格,但是不要在括號內部使用 7、命名類和函數的時候使用一致的方式,比如使用CamelCase來命名類,使用lower_case_with_underscores來命名函數和方法 8、在類中總是使用self來作為默認 9、盡量不要使用魔法方法 10、默認使用UTF-8,甚至ASCII作為編碼方式 11、換行可以使用反斜杠,最好使用圓括號。 12、不要在一句import中多個庫, 13、空格的使用
9、通過代碼實現如下轉換(進制之間轉換)
# 二進制轉換成十進制-->int v = "0b1111011" b = int(v,2) print(b) # 123 # 十進制轉換成二進制--->bin v2 = 18 print(bin(int(v2))) # 0b10010 # 八進制轉換成十進制 v3 = "011" print(int(v3)) # 11 # 十進制轉換成八進制:---> oct v4 = 30 print(oct(int(v4))) # 0o36 # 十六進制轉換成十進制: v5 = "0x12" print(int(v5,16)) # 18 # 十進制轉換成十六進制:---> hex v6 = 87 print(hex(int(v6))) # 0x57
10、請編寫一個函數實現將IP地址轉換成一個整數
請編寫一個函數實現將IP地址轉換成一個整數。 如 10.3.9.12 轉換規則為: 10 00001010 ? 3 00000011? 9 00001001 ? 12 00001100? 再將以上二進制拼接起來計算十進制結果:00001010 00000011 00001001 00001100 = ? def v1(addr): # 取每個數 id = [int(x) for x in addr.split(".")] print(id) return sum(id[i] << [24, 16, 8, 0][i] for i in range(4)) print(v1("127.0.0.1")) # [127, 0, 0, 1] # 2130706433
以上是關于Python基礎的面試題的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。