溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

關(guān)于Python基礎(chǔ)的面試題

發(fā)布時間:2020-08-05 17:44:26 來源:億速云 閱讀:151 作者:小新 欄目:編程語言

小編給大家分享一下關(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è)資訊頻道!

向AI問一下細(xì)節(jié)

免責(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)容。

AI