91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

python基礎面試題有哪些

發布時間:2021-08-17 09:04:39 來源:億速云 閱讀:101 作者:小新 欄目:開發技術

這篇文章將為大家詳細講解有關python基礎面試題有哪些,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

Python基礎語法相關

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

pass語句什么也不做,一般作為占位符 或者創建站位程序,pass語句不會不執行任何操作。

二、Python是如何進行類型轉換的?

python提供了將變量或值從一種類型轉換為另一種類型的內置函數。比如int函數能將符合數學格式數字型字符串轉換為整型。否則,返回錯誤信息。

三、Python是如何進行內存管理的?

 Python引用了一個內存池(memory pool)機制,即Pymalloc機制(malloc:n.分配內存),用于管理對小塊內存的申請和釋放。

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

 items方法將所有的字典以列表方式放回,其中項在放回時沒有特殊的順序;
 iteritems方法有相似的作用,但是反回一個迭代器對象。

五、什么是lambda函數?它有什么好處?

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

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

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

os常用的方法

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

sys常用的方法

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

七、Python里面如何拷貝一個對象?deepcopy和copy的區別?

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

八、os.path和sys.path的區別?

os.path是module,包含了各種處理長文件名(路徑名)的函數。
sys.path是由目錄名構成的列表,Python從中查找擴展模塊(Python源模塊,編譯模塊,或者二進制擴展).啟動Python時,這個列表從根據內建規則,PYTHONPATH環境變量的內容,,以及注冊表(windows系統)等進行初始化。

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

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

十、解釋生成器(generator)與函數的不同,并實現和使用簡單generator?

生成器和函數的主要區別在與函數return avalue,生成器yield value同時標記或記憶point of the yield以便于在下次調用時從標記點恢復執行。yield使用函數轉換生成器,而生成器反過來又返回迭代器。

十一、Python Web相關

解釋一下 WSGI 和 FastCGI 的關系?
    CGI全稱是“公共網關接口”(CommonGateway Interface),HTTP服務器與你的或其它機器上的程序進行“交談”的一種工具,其程序須運行在網絡服務器上。 CGI可以用任何一種語言編寫,只要這種語言具有標準輸入、輸出和環境變量。如php,perl,tcl等。

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

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

    WSGI的全稱為: PythonWeb Server Gateway Interface v1.0 (Python Web 服務器網關接口),

    它是 Python 應用程序和 WEB 服務器之間的一種接口。

    它的作用,類似于FCGI 或 FASTCGI 之類的協議的作用。

    WSGI 的目標,是要建立一個簡單的普遍適用的服務器與 WEB 框架之間的接口。

    Flup就是使用 Python 語言對 WSGI 的一種實現,是可以用于 Python 的應用開發中的一種工具或者說是一種庫。

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

    故,簡單地說,WSGI和FastCGI都是一種CGI,用于連接WEB服務器與應用程序,而WSGI專指Python應用程序。而flup是WSGI的一種實現,Spawn-fcgi是用于管理flup進程的一個工具,可以啟動多個wsgi進程,并管理它們。

十二、解釋一下 Django 和 Tornado 的關系、差別

Django源自一個在線新聞 Web站點,于 2005 年以開源的形式被釋放出來。

Django 框架的核心組件有:

用于創建模型的對象關系映射為最終用戶設計的完美管理界面一流的 URL 設計設計者友好的模板語言緩存系統等等

它鼓勵快速開發,并遵循MVC設計。Django遵守 BSD版權,最新發行版本是Django

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

Tornado是 FriendFeed使用的可擴展的非阻塞式 web 服務器及其相關工具的開源版本。這個 Web 框架看起來有些像 web.py 或者 Google 的 webapp,不過為了能有效利用非阻塞式服務器環境,這個 Web 框架還包含了一些相關的有用工具和優化。

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

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

使用django開發站點時,可以使用django-debug-toolbar來進行調試。在settings.py中添加'debug_toolbar.middleware.DebugToolbarMiddleware'到項目的MIDDLEWARE_CLASSES 內。

十四、解釋下Django使用redis緩存服務器

為了能在Django中使用redis,還需要安裝redis for Django的插件。然后在Django的settings中配置了。現在連接和配置都已經完成了,接下來是一個簡單的例子:

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)

十五、執行目錄下所有的測試(所有的test*.py文件):運行測試的時候,測試程序會在所有以test開頭的文件中查找所有的test cases(inittest.TestCase的子類),自動建立測試集然后運行測試。

$ python manage.py test

執行animals項目下tests包里的測試:

$ python manage.py testanimals.tests

執行animals項目里的test測試:

$ python manage.py testanimals

單獨執行某個test case:

$ python manage.py testanimals.tests.AnimalTestCase

單獨執行某個測試方法:

$ 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協議

HTTP是一個屬于應用層的面向對象的協議,由于其簡捷、快速的方式,適用于分布式超媒體信息系統。

十七、HTTP協議的主要特點可概括如下:

1.支持客戶/服務器模式。

2.簡單快速:客戶向服務器請求服務時,只需傳送請求方法和路徑。請求方法常用的有GET、HEAD、POST。每種方法規定了客戶與服務器聯系的類型不同。由于HTTP協議簡單,使得HTTP服務器的程序規模小,因而通信速度很快。

3.靈活:HTTP允許傳輸任意類型的數據對象。正在傳輸的類型由Content-Type加以標記。

4.無連接:無連接的含義是限制每次連接只處理一個請求。服務器處理完客戶的請求,并收到客戶的應答后,即斷開連接。采用這種方式可以節省傳輸時間。

5.無狀態:HTTP協議是無狀態協議。無狀態是指協議對于事務處理沒有記憶能力。缺少狀態意味著如果后續處理需要前面的信息,則它必須重傳,這樣可能導致每次連接傳送的數據量增大。另一方面,在服務器不需要先前信息時它的應答就較快。

十八、解釋下Http請求頭和常見響應狀態碼

Accept:指瀏覽器或其他客戶可以接愛的MIME文件格式。可以根據它判斷并返回適當的文件格式。

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

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

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

Cache-Control:設置關于請求被代理服務器存儲的相關選項。一般用不到。

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

Content-Type:用來表名request的內容類型。可以用HttpServletRequest的getContentType()方法取得。

Cookie:瀏覽器用這個屬性向服務器發送Cookie。Cookie是在瀏覽器中寄存的小型數據體,它可以記載和服務器相關的用戶信息,也可以用來實現會話功能。

十九、狀態代碼有三位數字組成,第一個數字定義了響應的類別,且有五種可能取值:

1xx:指示信息–表示請求已接收,繼續處理

2xx:成功–表示請求已被成功接收、理解、接受

3xx:重定向–要完成請求必須進行更進一步的操作

4xx:客戶端錯誤–請求有語法錯誤或請求無法實現

5xx:服務器端錯誤–服務器未能實現合法的請求

常見狀態代碼、狀態描述、說明:

200 OK     //客戶端請求成功

400 Bad Request  //客戶端請求有語法錯誤,不能被服務器所理解

401 Unauthorized //請求未經授權,這個狀態代碼必須和WWW-Authenticate報頭域一起使用

403 Forbidden  //服務器收到請求,但是拒絕提供服務

404 Not Found  //請求資源不存在,eg:輸入了錯誤的URL

500 Internal Server Error //服務器發生不可預期的錯誤

503 Server Unavailable  //服務器當前不能處理客戶端的請求,一段時間后可能恢復正常

eg:HTTP/1.1 200 OK (CRLF)

關于“python基礎面試題有哪些”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

丹棱县| 萨迦县| 湘潭市| 濮阳县| 遂平县| 揭东县| 大宁县| 中超| 太康县| 丹阳市| 麦盖提县| 合山市| 如皋市| 彭阳县| 依兰县| 施甸县| 文水县| 博爱县| 锦屏县| 阿巴嘎旗| 贵港市| 龙陵县| 客服| 疏附县| 武冈市| 焦作市| 荆门市| 武定县| 佛冈县| 孝昌县| 罗山县| 乃东县| 吉安市| 安丘市| 中方县| 交口县| 德保县| 霸州市| 兴安县| 赤城县| 漯河市|