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