python面試題

dav2100發表於2021-09-09

將一個字串逆序,不能使用反轉函式
求從10到100中能被3或5整除的數的和
What is Python? What are the benefits of using Python?
What is PEP 8?
What is pickling and unpickling?
How Python is interpreted?
What are the tools that help to find bugs or perform static analysis?
What are Python decorators?
What is the difference between list and tuple?
What are the built-in type does python provides?
What is namespace in Python?
What is lambda in Python?
In Python what are iterators?
What is unittest in Python?
What are generators in Python?
How can you copy an object in Python?
What is module and package in Python?
Mention what are the rules for local and global variables in Python?
Explain how can you make a Python Script executable on Unix?
Explain how to delete a file in Python?
How can you share global variables across modules?
Explain how can you generate random numbers in Python?
Explain how can you access a module written in Python from C?
Mention the use of // operator in Python?
Mention five benefits of using Python?
a=1, b=2, 不用中間變數交換a和b的值
請用自己的演算法, 按升序合併如下兩個list, 並去除重複的元素
list1 = [2, 3, 8, 4, 9, 5, 6]
list2 = [5, 6, 10, 17, 11, 2]
寫一個簡單的python socket程式設計
請描述set的用途並舉例說明
請簡述python2.x 與python3.x的主要區別
簡述python新式類和舊式類的區別
Python裡面search()和match()的區別?
用Python匹配HTML tag的時候,<.>>和<.>?>有什麼區別?
請簡述執行緒\程式\協程的特性
請簡述你對python閉包的理解
靜態函式, 類函式, 成員函式的區別?
Python和c和Java的對比
Python的記憶體管理
Python的裝飾器內部實現原理
Python的物件導向和Java物件導向的區別
Python物件導向的靜態方法
Python為啥是動態語言
動態語言和靜態語言的區別
描述你知道的設計模式及各模式特點
演算法(冒泡,二叉樹,堆排序等)
Python的執行緒
Python的程式
Python的執行緒池
Python的物件導向和c程式導向的區別
為什麼c沒有物件導向依然可以封裝函式
請用多執行緒併發爬取3個知名網站的首頁
解釋一下 Django 和 的關係、差別
Django源自一個線上新聞 Web站點,於 2005 年以開源的形式被釋放出來。
Django 框架的核心元件有:
用於建立模型的物件關係對映為終端使用者設計的完美管理介面一流的 URL 設計設計者友好的模板語言快取系統等等
它鼓勵快速開發,並遵循MVC設計。Django遵守 BSD版權,最新發行版本是Django
1.4,於2012年03月23日釋出.Django的主要目的是簡便、快速的開發資料庫驅動的網站。它強調程式碼複用,多個元件可以很方便的以“外掛”形式服務於整個框架,Django有許多功能強大的第三方外掛,你甚至可以很方便的開發出自己的工具包。這使得Django具有很強的可擴充套件性。它還強調快速開發和DRY(Do Not RepeatYourself)原則。
是 FriendFeed使用的可擴充套件的非阻塞式 web 伺服器及其相關工具的開源版本。這個 Web 框架看起來有些像 web.py 或者 Google 的 webapp,不過為了能有效利用非阻塞式伺服器環境,這個 Web 框架還包含了一些相關的有用工具和最佳化。

和現在的主流 Web 伺服器框架(包括大多數Python 的框架)有著明顯的區別:它是非阻塞式伺服器,而且速度相當快。得利於其 非阻塞的方式和對epoll的運用, 每秒可以處理數以千計的連線,這意味著對於實時 Web服務來說, 是一個理想的 Web 框架。我們開發這個 Web 伺服器的主要目的就是為了處理 FriendFeed 的實時功能 ——在 FriendFeed 的應用裡每一個活動使用者都會保持著一個伺服器連線。(關於如何擴容 伺服器,以處理數以千計的客戶端的連線的問題。
解釋下django-debug-toolbar的使用
使用django開發站點時,可以使用django-debug-toolbar來進行除錯。在settings.py中新增’debug_toolbar.middleware.DebugToolbarMiddleware’到專案的MIDDLEWARE_CLASSES 內。
如何進行Django單元測試
Django的單元測試使用python的unittest模組,這個模組使用基於類的方法來定義測試。類名為django.test.TestCase,繼承於python的unittest.TestCase。
from django.test import TestCase
from myapp.models import Animal
class AnimalTestCase(TestCase):
def setUp(self):
Animal.objects.create(name="lion", sound="roar")
Animal.objects.create(name="cat", sound="meow")
def test_animals_can_speak(self):
"""Animals that can speak are correctly identified"""
lion = Animal.objects.get(name="lion")
cat = Animal.objects.get(name="cat")
self.assertEqual(lion.speak(), 'The lion says "roar"')
self.assertEqual(cat.speak(), 'The cat says "meow"')
執行目錄下所有的測試(所有的test*.py檔案):執行測試的時候,測試程式會在所有以test開頭的檔案中查詢所有的test cases(inittest.TestCase的子類),自動建立測試集然後執行測試
python manage.py testanimals.tests
解釋下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  //伺服器當前不能處理客戶端的請求,一段時間後可能恢復正常
django models 中如何實現反向查詢? 如a表中透過外來鍵關聯了b表, 那透過b表如何反查到a表中有多少記錄關聯到了b表中的某條記錄
django orm如何輸入自定義的原少sql語句?
描述django orm query api中 Q語句與F語句的作用及區別
django中如何實現ajax在post資料時出現的csrf 403 forbidden的問題?描述解決步驟
django 自定義標籤tag的作用,及配置步驟

前端篇
有哪項方式可以對一個DOM設定它的CSS樣式?
•外部樣式表,引入一個外部css檔案
•內部樣式表,將css程式碼放在

標籤內部
•內聯樣式,將css樣式直接定義在 HTML 元素內部
CSS都有哪些選擇器?
•派生選擇器(用HTML標籤申明)
•id選擇器(用DOM的ID申明)
•類選擇器(用一個樣式類名申明)
•屬性選擇器(用DOM的屬性申明,屬於CSS2,IE6不支援,不常用,不知道就算了)
除了前3種基本選擇器,還有一些擴充套件選擇器,包括
•後代選擇器(利用空格間隔,比如div .a{  })
•群組選擇器(利用逗號間隔,比如p,div,#a{  }) 
那麼問題來了,CSS選擇器的優先順序是怎麼樣定義的?
CSS中可以透過哪些屬性定義,使得一個DOM元素不顯示在瀏覽器可視範圍內?
最基本的:
設定display屬性為none,或者設定visibility屬性為hidden
技巧性:
設定寬高為0,設定透明度為0,設定z-index位置在-1000
rgba()和opacity的透明效果有什麼不同?
答案: rgba()和opacity都能實現透明效果,但最大的不同是opacity作用於元素,以及元素內的所有內容的透明度,而rgba()只作用於元素的顏色或其背景色。(設定rgba透明的元素的子元素不會繼承透明效果!)
px和em的區別?
px和em都是長度單位,區別是,px的值是固定的,指定是多少就是多少,計算比較容易。em得值不是固定的,並且em會繼承父級元素的字型大小。 瀏覽器的預設字型高都是16px。所以未經調整的瀏覽器都符合: 1em=16px。那麼12px=0.75em, 10px=0.625em。
已知ID的Input輸入框,希望獲取這個輸入框的輸入值,怎麼做?(不使用第三方框架)
希望獲取到頁面中所有的checkbox怎麼做?(不使用第三方框架)
設定一個已知ID的DIV的html內容為xxxx,字型顏色設定為黑色(不使用第三方框架)
如何實現跨域請求?請描述實現原理
用js實現隨機選取10--100之間的10個數字,存入一個陣列,並排序。
原生JS的window.onload與Jquery的$(document).ready(function(){})有什麼不同?如何用原生JS實現Jq的ready方法?
window.onload()方法是必須等到頁面內包括圖片的所有元素載入完畢後才能執行。
$(document).ready()是DOM結構繪製完畢後就執行,不必等到載入完畢。
更多js http://blog.jobbole.com/78346/#q3

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4479/viewspace-2802614/,如需轉載,請註明出處,否則將追究法律責任。

相關文章