主頁 > 知識(shí)庫 > python基礎(chǔ)面試題整理

python基礎(chǔ)面試題整理

熱門標(biāo)簽:百度地圖標(biāo)注沒有了 長(zhǎng)沙高頻外呼系統(tǒng)原理是什么 ai電銷機(jī)器人源碼 西藏房產(chǎn)智能外呼系統(tǒng)要多少錢 外呼并發(fā)線路 湛江智能外呼系統(tǒng)廠家 宿遷星美防封電銷卡 地圖標(biāo)注審核表 ai電話機(jī)器人哪里好

Python基礎(chǔ)語法相關(guān)

一、Python中的pass語句的作用是什么?

pass語句什么也不做,一般作為占位符 或者創(chuàng)建站位程序,pass語句不會(huì)不執(zhí)行任何操作。

二、Python是如何進(jìn)行類型轉(zhuǎn)換的?

python提供了將變量或值從一種類型轉(zhuǎn)換為另一種類型的內(nèi)置函數(shù)。比如int函數(shù)能將符合數(shù)學(xué)格式數(shù)字型字符串轉(zhuǎn)換為整型。否則,返回錯(cuò)誤信息。

三、Python是如何進(jìn)行內(nèi)存管理的?

 Python引用了一個(gè)內(nèi)存池(memory pool)機(jī)制,即Pymalloc機(jī)制(malloc:n.分配內(nèi)存),用于管理對(duì)小塊內(nèi)存的申請(qǐng)和釋放。

四、dict的items()方法與iteritems()方法的不同

 items方法將所有的字典以列表方式放回,其中項(xiàng)在放回時(shí)沒有特殊的順序;
 iteritems方法有相似的作用,但是反回一個(gè)迭代器對(duì)象。

五、什么是lambda函數(shù)?它有什么好處?

 編程中提到的lambda表達(dá)式,通常是在需要一個(gè)函數(shù),但是又想費(fèi)神去命名一個(gè)函數(shù)的場(chǎng)合下使用,也就是指匿名函數(shù)。
 Python允許你定義一種單行的小函數(shù)。定義lambda函數(shù)的形式:lambda 參數(shù):表達(dá)式lambda函數(shù)默認(rèn)返回表達(dá)式的值。你也可以將其賦值給一個(gè)變量。lambd函數(shù)可以接受任意參數(shù),包括可選參數(shù),但是表達(dá)式只有一個(gè)。

六、說明os,sys模塊不同,并列舉常用的模塊方法?

os:提供一種方便的使用操作系統(tǒng)函數(shù)的方法。
sys:提供訪問由解釋器使用或維護(hù)的變量和在與解釋器交互使用到的函數(shù)。

os常用的方法

順序 方法
1 os.remove()刪除文件
2 os.rename()重命名文件
3 os.walk()生成目錄樹下的所有文件名
4 os.chdir()改變目錄
5 os.mkdir/makedirs創(chuàng)建目錄/多層目錄
6 os.redir/removedirs刪除目錄/多層目錄
7 os.listdir()列出指定目錄的文件
8 os.getcwd()取得當(dāng)前工作目錄
9 os.chmod()改變目錄權(quán)限
10 os.path.basename()去掉目錄路徑,返回文件名
11 os.path.join()將分離的各部分組合成一個(gè)路徑名
12 os.path.split()返回(dirname(),basename())元組
13 os.path.splitext()(放回filename,extension)元組
14 os.path.splitext()(放回filename,extension)元組
15 os.path.getatime\ctime\mtime分別放回最近訪問,創(chuàng)建,修改時(shí)間
16 os.path.getsize()返回文件大小
17 os.path.exists()是否存在
18 os.path.isabs()是否為絕對(duì)路徑
19 os.path.isdir()是否為目錄
20 os.path.isfile()是否為目錄
30 os.path.isfile()是否為文件

sys常用的方法

順序 方法
1 sys.argv()命令行參數(shù)List,第一個(gè)元素是程序本身路徑
2 sys.modules.keys()返回所有已經(jīng)導(dǎo)入的模塊列表
3 sys.exc_info()獲取當(dāng)前正在處理的異常類,exc_type,exc_value,exc_traceback當(dāng)前處理的異常詳細(xì)信息
4 sys.exit()退出程序,正常退出時(shí)exit(0)
5 sys.hexversion獲取Python解釋程序的版本值,16進(jìn)制格式如下:0x020403F0
6 sys.version獲取Python解釋程序的版本信息
7 sys.maxint 最大值
8 sys.maxunicode最大Unicode值
9 sys.modules返回系統(tǒng)導(dǎo)入的模塊字段,key是模塊名,value是模塊
10 sys.path返回模塊的搜索路徑,初始化時(shí)使用PythonPATH環(huán)境變量的值
11 sys.platform返回操作系統(tǒng)平臺(tái)名稱
12 sys.stdout標(biāo)準(zhǔn)輸出
13 sys.stdin標(biāo)準(zhǔn)輸入
14 sys.stderr錯(cuò)誤輸出
15 sys.exc_clear()用來清除當(dāng)前線程所出現(xiàn)的當(dāng)前的或最近的錯(cuò)誤信息
16 sys.exec_prefix反回平臺(tái)獨(dú)立的python文件安裝的位置
17 sys.byteorder本地字節(jié)規(guī)則的指示器,big-endian平臺(tái)的值是big,little-endian平臺(tái)的值是little
18 sys.copyright記錄Python版權(quán)相關(guān)的東西
19 sys.api_version解釋器的C的API版本
20 sys.version_info

七、Python里面如何拷貝一個(gè)對(duì)象?deepcopy和copy的區(qū)別?

copy僅拷貝對(duì)象本身,而不拷貝對(duì)象中引用的其它對(duì)象。
deepcopy除拷貝對(duì)象本身,而且拷貝對(duì)象中引用的其它對(duì)象。

八、os.path和sys.path的區(qū)別?

os.path是module,包含了各種處理長(zhǎng)文件名(路徑名)的函數(shù)。
sys.path是由目錄名構(gòu)成的列表,Python從中查找擴(kuò)展模塊(Python源模塊,編譯模塊,或者二進(jìn)制擴(kuò)展).啟動(dòng)Python時(shí),這個(gè)列表從根據(jù)內(nèi)建規(guī)則,PYTHONPATH環(huán)境變量的內(nèi)容,,以及注冊(cè)表(windows系統(tǒng))等進(jìn)行初始化。

九、re模塊中match和search方法的不同?

match()函數(shù)只檢查RE是否在字符串開始處匹配,而search()則是掃描整個(gè)字符串。

十、解釋生成器(generator)與函數(shù)的不同,并實(shí)現(xiàn)和使用簡(jiǎn)單generator?

生成器和函數(shù)的主要區(qū)別在與函數(shù)return avalue,生成器yield value同時(shí)標(biāo)記或記憶point of the yield以便于在下次調(diào)用時(shí)從標(biāo)記點(diǎn)恢復(fù)執(zhí)行。yield使用函數(shù)轉(zhuǎn)換生成器,而生成器反過來又返回迭代器。

十一、Python Web相關(guān)

解釋一下 WSGI 和 FastCGI 的關(guān)系?
    CGI全稱是“公共網(wǎng)關(guān)接口”(CommonGateway Interface),HTTP服務(wù)器與你的或其它機(jī)器上的程序進(jìn)行“交談”的一種工具,其程序須運(yùn)行在網(wǎng)絡(luò)服務(wù)器上?!GI可以用任何一種語言編寫,只要這種語言具有標(biāo)準(zhǔn)輸入、輸出和環(huán)境變量。如php,perl,tcl等。

    FastCGI像是一個(gè)常駐(long-live)型的CGI,它可以一直執(zhí)行著,只要激活后,不會(huì)每次都要花費(fèi)時(shí)間去fork一次(這是CGI最為人詬病的fork-and-execute模式)。它還支持分布式的運(yùn)算, 即 FastCGI 程序可以在網(wǎng)站服務(wù)器以外的主機(jī)上執(zhí)行并且接受來自其它網(wǎng)站服務(wù)器來的請(qǐng)求。

    FastCGI是語言無關(guān)的、可伸縮架構(gòu)的CGI開放擴(kuò)展,其主要行為是將CGI解釋器進(jìn)程保持在內(nèi)存中并因此獲得較高的性能。眾所周知,CGI解釋器的反復(fù)加載是CGI性能低下的主要原因,如果CGI解釋器保持在內(nèi)存中并接受FastCGI進(jìn)程管理器調(diào)度,則可以提供良好的性能、伸縮性、Fail- Over特性等等。

    WSGI的全稱為: PythonWeb Server Gateway Interface v1.0 (Python Web 服務(wù)器網(wǎng)關(guān)接口),

    它是 Python 應(yīng)用程序和 WEB 服務(wù)器之間的一種接口。

    它的作用,類似于FCGI 或 FASTCGI 之類的協(xié)議的作用。

    WSGI 的目標(biāo),是要建立一個(gè)簡(jiǎn)單的普遍適用的服務(wù)器與 WEB 框架之間的接口。

    Flup就是使用 Python 語言對(duì) WSGI 的一種實(shí)現(xiàn),是可以用于 Python 的應(yīng)用開發(fā)中的一種工具或者說是一種庫。

    Spawn-fcgi是一個(gè)小程序,這個(gè)程序的作用是管理fast-cgi進(jìn)程,那么管理wsgi進(jìn)程也是沒有問題的,功能和php-fpm類似。

    故,簡(jiǎn)單地說,WSGI和FastCGI都是一種CGI,用于連接WEB服務(wù)器與應(yīng)用程序,而WSGI專指Python應(yīng)用程序。而flup是WSGI的一種實(shí)現(xiàn),Spawn-fcgi是用于管理flup進(jìn)程的一個(gè)工具,可以啟動(dòng)多個(gè)wsgi進(jìn)程,并管理它們。

十二、解釋一下 Django 和 Tornado 的關(guān)系、差別

Django源自一個(gè)在線新聞 Web站點(diǎn),于 2005 年以開源的形式被釋放出來。

Django 框架的核心組件有:

用于創(chuàng)建模型的對(duì)象關(guān)系映射為最終用戶設(shè)計(jì)的完美管理界面一流的 URL 設(shè)計(jì)設(shè)計(jì)者友好的模板語言緩存系統(tǒng)等等

它鼓勵(lì)快速開發(fā),并遵循MVC設(shè)計(jì)。Django遵守 BSD版權(quán),最新發(fā)行版本是Django

1.4,于2012年03月23日發(fā)布.Django的主要目的是簡(jiǎn)便、快速的開發(fā)數(shù)據(jù)庫驅(qū)動(dòng)的網(wǎng)站。它強(qiáng)調(diào)代碼復(fù)用,多個(gè)組件可以很方便的以“插件”形式服務(wù)于整個(gè)框架,Django有許多功能強(qiáng)大的第三方插件,你甚至可以很方便的開發(fā)出自己的工具包。這使得Django具有很強(qiáng)的可擴(kuò)展性。它還強(qiáng)調(diào)快速開發(fā)和DRY(Do Not RepeatYourself)原則。

Tornado是 FriendFeed使用的可擴(kuò)展的非阻塞式 web 服務(wù)器及其相關(guān)工具的開源版本。這個(gè) Web 框架看起來有些像 web.py 或者 Google 的 webapp,不過為了能有效利用非阻塞式服務(wù)器環(huán)境,這個(gè) Web 框架還包含了一些相關(guān)的有用工具和優(yōu)化。

Tornado 和現(xiàn)在的主流 Web 服務(wù)器框架(包括大多數(shù)Python 的框架)有著明顯的區(qū)別:它是非阻塞式服務(wù)器,而且速度相當(dāng)快。得利于其 非阻塞的方式和對(duì)epoll的運(yùn)用,Tornado 每秒可以處理數(shù)以千計(jì)的連接,這意味著對(duì)于實(shí)時(shí) Web服務(wù)來說,Tornado 是一個(gè)理想的 Web 框架。我們開發(fā)這個(gè) Web 服務(wù)器的主要目的就是為了處理 FriendFeed 的實(shí)時(shí)功能 ——在 FriendFeed 的應(yīng)用里每一個(gè)活動(dòng)用戶都會(huì)保持著一個(gè)服務(wù)器連接。(關(guān)于如何擴(kuò)容 服務(wù)器,以處理數(shù)以千計(jì)的客戶端的連接的問題。

十三、解釋下django-debug-toolbar的使用

使用django開發(fā)站點(diǎn)時(shí),可以使用django-debug-toolbar來進(jìn)行調(diào)試。在settings.py中添加'debug_toolbar.middleware.DebugToolbarMiddleware'到項(xiàng)目的MIDDLEWARE_CLASSES 內(nèi)。

十四、解釋下Django使用redis緩存服務(wù)器

為了能在Django中使用redis,還需要安裝redis for Django的插件。然后在Django的settings中配置了?,F(xiàn)在連接和配置都已經(jīng)完成了,接下來是一個(gè)簡(jiǎn)單的例子:

from django.conf import settings
from django.core.cache import cache
#read cache user id
def read_from_cache(self, user_name):
    key = 'user_id_of_'+user_name
    value = cache.get(key)
    if value == None:
        data = None
    else:
        data = json.loads(value)
    return data
#write cache user id
def write_to_cache(self, user_name):
    key = 'user_id_of_'+user_name
    cache.set(key, json.dumps(user_name), settings.NEVER_REDIS_TIMEOUT)


十五、執(zhí)行目錄下所有的測(cè)試(所有的test*.py文件):運(yùn)行測(cè)試的時(shí)候,測(cè)試程序會(huì)在所有以test開頭的文件中查找所有的test cases(inittest.TestCase的子類),自動(dòng)建立測(cè)試集然后運(yùn)行測(cè)試。

$ python manage.py test

執(zhí)行animals項(xiàng)目下tests包里的測(cè)試:

$ python manage.py testanimals.tests

執(zhí)行animals項(xiàng)目里的test測(cè)試:

$ python manage.py testanimals

單獨(dú)執(zhí)行某個(gè)test case:

$ python manage.py testanimals.tests.AnimalTestCase

單獨(dú)執(zhí)行某個(gè)測(cè)試方法:

$ python manage.py testanimals.tests.AnimalTestCase.test_animals_can_speak

為測(cè)試文件提供路徑:

$ python manage.py testanimals/
$ python manage.py test--pattern="tests_*.py"

啟用warnings提醒:

$ python -Wall manage.py test

十六、解釋下Http協(xié)議

HTTP是一個(gè)屬于應(yīng)用層的面向?qū)ο蟮膮f(xié)議,由于其簡(jiǎn)捷、快速的方式,適用于分布式超媒體信息系統(tǒng)。

十七、HTTP協(xié)議的主要特點(diǎn)可概括如下:

1.支持客戶/服務(wù)器模式。

2.簡(jiǎn)單快速:客戶向服務(wù)器請(qǐng)求服務(wù)時(shí),只需傳送請(qǐng)求方法和路徑。請(qǐng)求方法常用的有GET、HEAD、POST。每種方法規(guī)定了客戶與服務(wù)器聯(lián)系的類型不同。由于HTTP協(xié)議簡(jiǎn)單,使得HTTP服務(wù)器的程序規(guī)模小,因而通信速度很快。

3.靈活:HTTP允許傳輸任意類型的數(shù)據(jù)對(duì)象。正在傳輸?shù)念愋陀蒀ontent-Type加以標(biāo)記。

4.無連接:無連接的含義是限制每次連接只處理一個(gè)請(qǐng)求。服務(wù)器處理完客戶的請(qǐng)求,并收到客戶的應(yīng)答后,即斷開連接。采用這種方式可以節(jié)省傳輸時(shí)間。

5.無狀態(tài):HTTP協(xié)議是無狀態(tài)協(xié)議。無狀態(tài)是指協(xié)議對(duì)于事務(wù)處理沒有記憶能力。缺少狀態(tài)意味著如果后續(xù)處理需要前面的信息,則它必須重傳,這樣可能導(dǎo)致每次連接傳送的數(shù)據(jù)量增大。另一方面,在服務(wù)器不需要先前信息時(shí)它的應(yīng)答就較快。

十八、解釋下Http請(qǐng)求頭和常見響應(yīng)狀態(tài)碼

Accept:指瀏覽器或其他客戶可以接愛的MIME文件格式??梢愿鶕?jù)它判斷并返回適當(dāng)?shù)奈募袷健?

Accept-Charset:指出瀏覽器可以接受的字符編碼。英文瀏覽器的默認(rèn)值是ISO-8859-1.

Accept-Language:指出瀏覽器可以接受的語言種類,如en或en-us,指英語。

Accept-Encoding:指出瀏覽器可以接受的編碼方式。編碼方式不同于文件格式,它是為了壓縮文件并加速文件傳遞速度。瀏覽器在接收到Web響應(yīng)之后先解碼,然后再檢查文件格式。

Cache-Control:設(shè)置關(guān)于請(qǐng)求被代理服務(wù)器存儲(chǔ)的相關(guān)選項(xiàng)。一般用不到。

Connection:用來告訴服務(wù)器是否可以維持固定的HTTP連接。HTTP/1.1使用Keep-Alive為默認(rèn)值,這樣,當(dāng)瀏覽器需要多個(gè)文件時(shí)(比如一個(gè)HTML文件和相關(guān)的圖形文件),不需要每次都建立連接。

Content-Type:用來表名request的內(nèi)容類型??梢杂肏ttpServletRequest的getContentType()方法取得。

Cookie:瀏覽器用這個(gè)屬性向服務(wù)器發(fā)送Cookie。Cookie是在瀏覽器中寄存的小型數(shù)據(jù)體,它可以記載和服務(wù)器相關(guān)的用戶信息,也可以用來實(shí)現(xiàn)會(huì)話功能。

十九、狀態(tài)代碼有三位數(shù)字組成,第一個(gè)數(shù)字定義了響應(yīng)的類別,且有五種可能取值:

1xx:指示信息–表示請(qǐng)求已接收,繼續(xù)處理

2xx:成功–表示請(qǐng)求已被成功接收、理解、接受

3xx:重定向–要完成請(qǐng)求必須進(jìn)行更進(jìn)一步的操作

4xx:客戶端錯(cuò)誤–請(qǐng)求有語法錯(cuò)誤或請(qǐng)求無法實(shí)現(xiàn)

5xx:服務(wù)器端錯(cuò)誤–服務(wù)器未能實(shí)現(xiàn)合法的請(qǐng)求

常見狀態(tài)代碼、狀態(tài)描述、說明:

200 OK     //客戶端請(qǐng)求成功

400 Bad Request  //客戶端請(qǐng)求有語法錯(cuò)誤,不能被服務(wù)器所理解

401 Unauthorized //請(qǐng)求未經(jīng)授權(quán),這個(gè)狀態(tài)代碼必須和WWW-Authenticate報(bào)頭域一起使用

403 Forbidden  //服務(wù)器收到請(qǐng)求,但是拒絕提供服務(wù)

404 Not Found  //請(qǐng)求資源不存在,eg:輸入了錯(cuò)誤的URL

500 Internal Server Error //服務(wù)器發(fā)生不可預(yù)期的錯(cuò)誤

503 Server Unavailable  //服務(wù)器當(dāng)前不能處理客戶端的請(qǐng)求,一段時(shí)間后可能恢復(fù)正常

eg:HTTP/1.1 200 OK (CRLF)

到此這篇關(guān)于python基礎(chǔ)面試題整理的文章就介紹到這了,更多相關(guān)python基礎(chǔ)面試題內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • python3字符串輸出常見面試題總結(jié)
  • Python工程師必考的6個(gè)經(jīng)典面試題
  • Python自動(dòng)化測(cè)試筆試面試題精選
  • 基于Python實(shí)現(xiàn)撲克牌面試題
  • Python筆試面試題小結(jié)
  • python面試題之列表聲明實(shí)例分析
  • python面試題Python2.x和Python3.x的區(qū)別
  • 值得收藏的10道python 面試題

標(biāo)簽:盤錦 南平 大同 林芝 寧夏 漯河 海南 普洱

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《python基礎(chǔ)面試題整理》,本文關(guān)鍵詞  python,基礎(chǔ),面,試題,整理,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《python基礎(chǔ)面試題整理》相關(guān)的同類信息!
  • 本頁收集關(guān)于python基礎(chǔ)面試題整理的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章