- 資訊首頁(yè) > 開(kāi)發(fā)技術(shù) >
- python基礎面試題有哪些
這篇文章將為大家詳細講解有關(guān)python基礎面試題有哪些,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
pass語(yǔ)句什么也不做,一般作為占位符 或者創(chuàng )建站位程序,pass語(yǔ)句不會(huì )不執行任何操作。
python提供了將變量或值從一種類(lèi)型轉換為另一種類(lèi)型的內置函數。比如int函數能將符合數學(xué)格式數字型字符串轉換為整型。否則,返回錯誤信息。
Python引用了一個(gè)內存池(memory pool)機制,即Pymalloc機制(malloc:n.分配內存),用于管理對小塊內存的申請和釋放。
items方法將所有的字典以列表方式放回,其中項在放回時(shí)沒(méi)有特殊的順序; iteritems方法有相似的作用,但是反回一個(gè)迭代器對象。
編程中提到的lambda表達式,通常是在需要一個(gè)函數,但是又想費神去命名一個(gè)函數的場(chǎng)合下使用,也就是指匿名函數。 Python允許你定義一種單行的小函數。定義lambda函數的形式:lambda 參數:表達式lambda函數默認返回表達式的值。你也可以將其賦值給一個(gè)變量。lambd函數可以接受任意參數,包括可選參數,但是表達式只有一個(gè)。
os:提供一種方便的使用操作系統函數的方法。 sys:提供訪(fǎng)問(wèn)由解釋器使用或維護的變量和在與解釋器交互使用到的函數。
os常用的方法
sys常用的方法
copy僅拷貝對象本身,而不拷貝對象中引用的其它對象。 deepcopy除拷貝對象本身,而且拷貝對象中引用的其它對象。
os.path是module,包含了各種處理長(cháng)文件名(路徑名)的函數。 sys.path是由目錄名構成的列表,Python從中查找擴展模塊(Python源模塊,編譯模塊,或者二進(jìn)制擴展).啟動(dòng)Python時(shí),這個(gè)列表從根據內建規則,PYTHONPATH環(huán)境變量的內容,,以及注冊表(windows系統)等進(jìn)行初始化。
match()函數只檢查RE是否在字符串開(kāi)始處匹配,而search()則是掃描整個(gè)字符串。
生成器和函數的主要區別在與函數return avalue,生成器yield value同時(shí)標記或記憶point of the yield以便于在下次調用時(shí)從標記點(diǎn)恢復執行。yield使用函數轉換生成器,而生成器反過(guò)來(lái)又返回迭代器。
解釋一下 WSGI 和 FastCGI 的關(guān)系? CGI全稱(chēng)是“公共網(wǎng)關(guān)接口”(CommonGateway Interface),HTTP與你的或其它機器上的程序進(jìn)行“交談”的一種工具,其程序須運行在網(wǎng)絡(luò )服務(wù)器上?!GI可以用任何一種語(yǔ)言編寫(xiě),只要這種語(yǔ)言具有標準輸入、輸出和環(huán)境變量。如php,perl,tcl等。 FastCGI像是一個(gè)常駐(long-live)型的CGI,它可以一直執行著(zhù),只要激活后,不會(huì )每次都要花費時(shí)間去fork一次(這是CGI最為人詬病的fork-and-execute模式)。它還支持分布式的運算, 即 FastCGI 程序可以在網(wǎng)站服務(wù)器以外的主機上執行并且接受來(lái)自其它網(wǎng)站服務(wù)器來(lái)的請求。 FastCGI是語(yǔ)言無(wú)關(guān)的、可伸縮架構的CGI開(kāi)放擴展,其主要行為是將CGI解釋器進(jìn)程保持在內存中并因此獲得較高的性能。眾所周知,CGI解釋器的反復加載是CGI性能低下的主要原因,如果CGI解釋器保持在內存中并接受FastCGI進(jìn)程管理器調度,則可以提供良好的性能、伸縮性、Fail- Over特性等等。 WSGI的全稱(chēng)為: PythonWeb Server Gateway Interface v1.0 (Python Web 服務(wù)器網(wǎng)關(guān)接口), 它是 Python 應用程序和 WEB 服務(wù)器之間的一種接口。 它的作用,類(lèi)似于FCGI 或 FASTCGI 之類(lèi)的協(xié)議的作用。 WSGI 的目標,是要建立一個(gè)簡(jiǎn)單的普遍適用的服務(wù)器與 WEB 框架之間的接口。 Flup就是使用 Python 語(yǔ)言對 WSGI 的一種實(shí)現,是可以用于 Python 的應用開(kāi)發(fā)中的一種工具或者說(shuō)是一種庫。 Spawn-fcgi是一個(gè)小程序,這個(gè)程序的作用是管理fast-cgi進(jìn)程,那么管理wsgi進(jìn)程也是沒(méi)有問(wèn)題的,功能和php-fpm類(lèi)似。 故,簡(jiǎn)單地說(shuō),WSGI和FastCGI都是一種CGI,用于連接WEB服務(wù)器與應用程序,而WSGI專(zhuān)指Python應用程序。而flup是WSGI的一種實(shí)現,Spawn-fcgi是用于管理flup進(jìn)程的一個(gè)工具,可以啟動(dòng)多個(gè)wsgi進(jìn)程,并管理它們。
Django源自一個(gè)在線(xiàn)新聞 Web站點(diǎn),于 2005 年以開(kāi)源的形式被釋放出來(lái)。 Django 框架的核心組件有: 用于創(chuàng )建模型的對象關(guān)系映射為最終用戶(hù)設計的完美管理界面一流的 URL 設計設計者友好的模板語(yǔ)言緩存系統等等 它鼓勵快速開(kāi)發(fā),并遵循MVC設計。Django遵守 BSD版權,最新發(fā)行版本是Django 1.4,于2012年03月23日發(fā)布.Django的主要目的是簡(jiǎn)便、快速的開(kāi)發(fā)數據庫驅動(dòng)的網(wǎng)站。它強調代碼復用,多個(gè)組件可以很方便的以“插件”形式服務(wù)于整個(gè)框架,Django有許多功能強大的第三方插件,你甚至可以很方便的開(kāi)發(fā)出自己的工具包。這使得Django具有很強的可擴展性。它還強調快速開(kāi)發(fā)和DRY(Do Not RepeatYourself)原則。 Tornado是 FriendFeed使用的可擴展的非阻塞式 web 服務(wù)器及其相關(guān)工具的開(kāi)源版本。這個(gè) Web 框架看起來(lái)有些像 web.py 或者 Google 的 webapp,不過(guò)為了能有效利用非阻塞式服務(wù)器環(huán)境,這個(gè) Web 框架還包含了一些相關(guān)的有用工具和優(yōu)化。 Tornado 和現在的主流 Web 服務(wù)器框架(包括大多數Python 的框架)有著(zhù)明顯的區別:它是非阻塞式服務(wù)器,而且速度相當快。得利于其 非阻塞的方式和對epoll的運用,Tornado 每秒可以處理數以千計的連接,這意味著(zhù)對于實(shí)時(shí) Web服務(wù)來(lái)說(shuō),Tornado 是一個(gè)理想的 Web 框架。我們開(kāi)發(fā)這個(gè) Web 服務(wù)器的主要目的就是為了處理 FriendFeed 的實(shí)時(shí)功能 ——在 FriendFeed 的應用里每一個(gè)活動(dòng)用戶(hù)都會(huì )保持著(zhù)一個(gè)服務(wù)器連接。(關(guān)于如何擴容 服務(wù)器,以處理數以千計的客戶(hù)端的連接的問(wèn)題。
使用django開(kāi)發(fā)站點(diǎn)時(shí),可以使用django-debug-toolbar來(lái)進(jìn)行調試。在settings.py中添加'debug_toolbar.middleware.DebugToolbarMiddleware'到項目的MIDDLEWARE_CLASSES 內。
為了能在Django中使用redis,還需要安裝redis for Django的插件。然后在Django的settings中配置了?,F在連接和配置都已經(jīng)完成了,接下來(lái)是一個(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)
$ python manage.py test
執行animals項目下tests包里的測試:
$ python manage.py testanimals.tests
執行animals項目里的test測試:
$ python manage.py testanimals
單獨執行某個(gè)test case:
$ python manage.py testanimals.tests.AnimalTestCase
單獨執行某個(gè)測試方法:
$ python manage.py testanimals.tests.AnimalTestCase.test_animals_can_speak
為測試文件提供路徑:
$ python manage.py testanimals/
$ python manage.py test--pattern="tests_*.py"
啟用warnings提醒:
$ python -Wall manage.py test
HTTP是一個(gè)屬于應用層的面向對象的協(xié)議,由于其簡(jiǎn)捷、快速的方式,適用于分布式超媒體信息系統。
1.支持客戶(hù)/服務(wù)器模式。 2.簡(jiǎn)單快速:客戶(hù)向服務(wù)器請求服務(wù)時(shí),只需傳送請求方法和路徑。請求方法常用的有GET、HEAD、POST。每種方法規定了客戶(hù)與服務(wù)器聯(lián)系的類(lèi)型不同。由于HTTP協(xié)議簡(jiǎn)單,使得HTTP服務(wù)器的程序規模小,因而通信速度很快。 3.靈活:HTTP允許傳輸任意類(lèi)型的數據對象。正在傳輸的類(lèi)型由Content-Type加以標記。 4.無(wú)連接:無(wú)連接的含義是限制每次連接只處理一個(gè)請求。服務(wù)器處理完客戶(hù)的請求,并收到客戶(hù)的應答后,即斷開(kāi)連接。采用這種方式可以節省傳輸時(shí)間。 5.無(wú)狀態(tài):HTTP協(xié)議是無(wú)狀態(tài)協(xié)議。無(wú)狀態(tài)是指協(xié)議對于事務(wù)處理沒(méi)有記憶能力。缺少狀態(tài)意味著(zhù)如果后續處理需要前面的信息,則它必須重傳,這樣可能導致每次連接傳送的數據量增大。另一方面,在服務(wù)器不需要先前信息時(shí)它的應答就較快。
Accept:指瀏覽器或其他客戶(hù)可以接愛(ài)的MIME文件格式??梢愿鶕袛嗖⒎祷剡m當的文件格式。 Accept-Charset:指出瀏覽器可以接受的字符編碼。英文瀏覽器的默認值是ISO-8859-1. Accept-Language:指出瀏覽器可以接受的語(yǔ)言種類(lèi),如en或en-us,指英語(yǔ)。 Accept-Encoding:指出瀏覽器可以接受的編碼方式。編碼方式不同于文件格式,它是為了壓縮文件并加速文件傳遞速度。瀏覽器在接收到Web響應之后先解碼,然后再檢查文件格式。 Cache-Control:設置關(guān)于請求被代理服務(wù)器存儲的相關(guān)選項。一般用不到。 Connection:用來(lái)告訴服務(wù)器是否可以維持固定的HTTP連接。HTTP/1.1使用Keep-Alive為默認值,這樣,當瀏覽器需要多個(gè)文件時(shí)(比如一個(gè)HTML文件和相關(guān)的圖形文件),不需要每次都建立連接。 Content-Type:用來(lái)表名request的內容類(lèi)型??梢杂肏ttpServletRequest的getContentType()方法取得。 Cookie:瀏覽器用這個(gè)屬性向服務(wù)器發(fā)送Cookie。Cookie是在瀏覽器中寄存的小型數據體,它可以記載和服務(wù)器相關(guān)的用戶(hù)信息,也可以用來(lái)實(shí)現會(huì )話(huà)功能。
1xx:指示信息–表示請求已接收,繼續處理 2xx:成功–表示請求已被成功接收、理解、接受 3xx:重定向–要完成請求必須進(jìn)行更進(jìn)一步的操作 4xx:客戶(hù)端錯誤–請求有語(yǔ)法錯誤或請求無(wú)法實(shí)現 5xx:服務(wù)器端錯誤–服務(wù)器未能實(shí)現合法的請求 常見(jiàn)狀態(tài)代碼、狀態(tài)描述、說(shuō)明: 200 OK //客戶(hù)端請求成功 400 Bad Request //客戶(hù)端請求有語(yǔ)法錯誤,不能被服務(wù)器所理解 401 Unauthorized //請求未經(jīng)授權,這個(gè)狀態(tài)代碼必須和WWW-Authenticate報頭域一起使用 403 Forbidden //服務(wù)器收到請求,但是拒絕提供服務(wù) 404 Not Found //請求資源不存在,eg:輸入了錯誤的URL 500 Internal Server Error //服務(wù)器發(fā)生不可預期的錯誤 503 Server Unavailable //服務(wù)器當前不能處理客戶(hù)端的請求,一段時(shí)間后可能恢復正常 eg:HTTP/1.1 200 OK (CRLF)
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自互聯(lián)網(wǎng)轉載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權請聯(lián)系QQ:712375056 進(jìn)行舉報,并提供相關(guān)證據,一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容。
Copyright ? 2009-2021 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 珠海市特網(wǎng)科技有限公司 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站