天天看點

一周python面試題彙總:星期三

45、寫5條常用sql語句

show databases;

show tables;

desc 表名;

select * from 表名;

delete from 表名 where id=5;

update students set gender=0,hometown="北京" where id=5

46、a="hello"和b="你好"編碼成bytes類型

一周python面試題彙總:星期三

47、[1,2,3]+[4,5,6]的結果是多少?

兩個清單相加,等價于extend

一周python面試題彙總:星期三

48、提高python運作效率的方法

1、使用生成器,因為可以節約大量記憶體

2、循環代碼優化,避免過多重複代碼的執行

3、核心子產品用Cython  PyPy等,提高效率

4、多程序、多線程、協程

5、多個if elif條件判斷,可以把最有可能先發生的條件放到前面寫,這樣可以減少程式判斷的次數,提高效率

49、簡述mysql和redis差別

redis: 記憶體型非關系資料庫,資料儲存在記憶體中,速度快

mysql:關系型資料庫,資料儲存在磁盤中,檢索的話,會有一定的Io操作,通路速度相對慢

50、遇到bug如何處理

1、細節上的錯誤,通過print()列印,能執行到print()說明一般上面的代碼沒有問題,分段檢測程式是否有問題,如果是js的話可以alert或console.log

2、如果涉及一些第三方架構,會去查官方文檔或者一些技術部落格。

3、對于bug的管理與歸類總結,一般測試将測試出的bug用teambin等bug管理工具進行記錄,然後我們會一條一條進行修改,修改的過程也是了解業務邏輯和提高自己程式設計邏輯缜密性的方法,我也都會收藏做一些筆記記錄。

4、導包問題、城市定位多音字造成的顯示錯誤問題

51、正則比對,比對日期2018-03-20

url='https://sycm.taobao.com/bda/tradinganaly/overview/get_summary.json?dateRange=2018-03-20%7C2018-03-20&dateType=recent1&device=1&token=ff25b109b&_=1521595613462'

提取一段特征語句,用(.*?)比對即可

一周python面試題彙總:星期三

52、list=[2,3,5,4,9,6],從小到大排序,不許用sort,輸出[2,3,4,5,6,9]

利用min()方法求出最小值,原清單删除最小值,新清單加入最小值,遞歸調用擷取最小值的函數,反複操作

一周python面試題彙總:星期三

53、寫一個單列模式

因為建立對象時__new__方法執行,并且必須return 傳回執行個體化出來的對象所cls.__instance是否存在,不存在的話就建立對象,存在的話就傳回該對象,來保證隻有一個執行個體對象存在(單列),列印ID,值一樣,說明對象同一個

一周python面試題彙總:星期三

54、保留兩位小數

題目本身隻有a="%.03f"%1.3335,讓計算a的結果,為了擴充保留小數的思路,提供round方法(數值,保留位數)

一周python面試題彙總:星期三

55、求下面三個函數的列印結果

fn("one",1)直接将鍵值對傳給字典;

fn("two",2)因為字典在記憶體中是可變資料類型,是以指向同一個位址,傳了新的額參數後,會相當于給字典增加鍵值對

fn("three",3,{})因為傳了一個新字典,是以不再是原先預設參數的字典

一周python面試題彙總:星期三

56、列出常見的狀态碼和意義

200 OK 

請求正常處理完畢

204 No Content 

請求成功處理,沒有實體的主體傳回

206 Partial Content 

GET範圍請求已成功處理

301 Moved Permanently 

永久重定向,資源已永久配置設定新URI

302 Found 

臨時重定向,資源已臨時配置設定新URI

303 See Other 

臨時重定向,期望使用GET定向擷取

304 Not Modified 

發送的附帶條件請求未滿足

307 Temporary Redirect 

臨時重定向,POST不會變成GET

400 Bad Request 

請求封包文法錯誤或參數錯誤

401 Unauthorized 

需要通過HTTP認證,或認證失敗

403 Forbidden 

請求資源被拒絕

404 Not Found 

無法找到請求資源(伺服器無理由拒絕)

500 Internal Server Error 

伺服器故障或Web應用故障

503 Service Unavailable 

伺服器超負載或停機維護

57、分别從前端、後端、資料庫闡述web項目的性能優化

前端優化:

1、減少http請求、例如制作精靈圖

2、html和CSS放在頁面上部,javascript放在頁面下面,因為js加載比HTML和Css加載慢,是以要優先加載html和css,以防頁面顯示不全,性能差,也影響使用者體驗差

後端優化:

1、緩存存儲讀寫次數高,變化少的資料,比如網站首頁的資訊、商品的資訊等。應用程式讀取資料時,一般是先從緩存中讀取,如果讀取不到或資料已失效,再通路磁盤資料庫,并将資料再次寫入緩存。

2、異步方式,如果有耗時操作,可以采用異步,比如celery

3、代碼優化,避免循環和判斷次數太多,如果多個if else判斷,優先判斷最有可能先發生的情況

資料庫優化:

1、如有條件,資料可以存放于redis,讀取速度快

2、建立索引、外鍵等

58、使用pop和del删除字典中的"name"字段,dic={"name":"zs","age":18}

一周python面試題彙總:星期三

45、寫5條常用sql語句

show databases;

show tables;

desc 表名;

select * from 表名;

delete from 表名 where id=5;

update students set gender=0,hometown="北京" where id=5

46、a="hello"和b="你好"編碼成bytes類型

一周python面試題彙總:星期三

47、[1,2,3]+[4,5,6]的結果是多少?

兩個清單相加,等價于extend

一周python面試題彙總:星期三

48、提高python運作效率的方法

1、使用生成器,因為可以節約大量記憶體

2、循環代碼優化,避免過多重複代碼的執行

3、核心子產品用Cython  PyPy等,提高效率

4、多程序、多線程、協程

5、多個if elif條件判斷,可以把最有可能先發生的條件放到前面寫,這樣可以減少程式判斷的次數,提高效率

49、簡述mysql和redis差別

redis: 記憶體型非關系資料庫,資料儲存在記憶體中,速度快

mysql:關系型資料庫,資料儲存在磁盤中,檢索的話,會有一定的Io操作,通路速度相對慢

50、遇到bug如何處理

1、細節上的錯誤,通過print()列印,能執行到print()說明一般上面的代碼沒有問題,分段檢測程式是否有問題,如果是js的話可以alert或console.log

2、如果涉及一些第三方架構,會去查官方文檔或者一些技術部落格。

3、對于bug的管理與歸類總結,一般測試将測試出的bug用teambin等bug管理工具進行記錄,然後我們會一條一條進行修改,修改的過程也是了解業務邏輯和提高自己程式設計邏輯缜密性的方法,我也都會收藏做一些筆記記錄。

4、導包問題、城市定位多音字造成的顯示錯誤問題

51、正則比對,比對日期2018-03-20

url='https://sycm.taobao.com/bda/tradinganaly/overview/get_summary.json?dateRange=2018-03-20%7C2018-03-20&dateType=recent1&device=1&token=ff25b109b&_=1521595613462'

仍有同學問正則,其實比對并不難,提取一段特征語句,用(.*?)比對即可

一周python面試題彙總:星期三

52、list=[2,3,5,4,9,6],從小到大排序,不許用sort,輸出[2,3,4,5,6,9]

利用min()方法求出最小值,原清單删除最小值,新清單加入最小值,遞歸調用擷取最小值的函數,反複操作

一周python面試題彙總:星期三

53、寫一個單列模式

因為建立對象時__new__方法執行,并且必須return 傳回執行個體化出來的對象所cls.__instance是否存在,不存在的話就建立對象,存在的話就傳回該對象,來保證隻有一個執行個體對象存在(單列),列印ID,值一樣,說明對象同一個

一周python面試題彙總:星期三

54、保留兩位小數

題目本身隻有a="%.03f"%1.3335,讓計算a的結果,為了擴充保留小數的思路,提供round方法(數值,保留位數)

一周python面試題彙總:星期三

55、求三個方法列印結果

fn("one",1)直接将鍵值對傳給字典;

fn("two",2)因為字典在記憶體中是可變資料類型,是以指向同一個位址,傳了新的額參數後,會相當于給字典增加鍵值對

fn("three",3,{})因為傳了一個新字典,是以不再是原先預設參數的字典

一周python面試題彙總:星期三

56、列出常見的狀态碼和意義

200 OK 

請求正常處理完畢

204 No Content 

請求成功處理,沒有實體的主體傳回

206 Partial Content 

GET範圍請求已成功處理

301 Moved Permanently 

永久重定向,資源已永久配置設定新URI

302 Found 

臨時重定向,資源已臨時配置設定新URI

303 See Other 

臨時重定向,期望使用GET定向擷取

304 Not Modified 

發送的附帶條件請求未滿足

307 Temporary Redirect 

臨時重定向,POST不會變成GET

400 Bad Request 

請求封包文法錯誤或參數錯誤

401 Unauthorized 

需要通過HTTP認證,或認證失敗

403 Forbidden 

請求資源被拒絕

404 Not Found 

無法找到請求資源(伺服器無理由拒絕)

500 Internal Server Error 

伺服器故障或Web應用故障

503 Service Unavailable 

伺服器超負載或停機維護

57、分别從前端、後端、資料庫闡述web項目的性能優化

該題目網上有很多方法,我不想截圖網上的長串文字,看的頭疼,按我自己的了解說幾點

前端優化:

1、減少http請求、例如制作精靈圖

2、html和CSS放在頁面上部,javascript放在頁面下面,因為js加載比HTML和Css加載慢,是以要優先加載html和css,以防頁面顯示不全,性能差,也影響使用者體驗差

後端優化:

1、緩存存儲讀寫次數高,變化少的資料,比如網站首頁的資訊、商品的資訊等。應用程式讀取資料時,一般是先從緩存中讀取,如果讀取不到或資料已失效,再通路磁盤資料庫,并将資料再次寫入緩存。

2、異步方式,如果有耗時操作,可以采用異步,比如celery

3、代碼優化,避免循環和判斷次數太多,如果多個if else判斷,優先判斷最有可能先發生的情況

資料庫優化:

1、如有條件,資料可以存放于redis,讀取速度快

2、建立索引、外鍵等

58、使用pop和del删除字典中的"name"字段,dic={"name":"zs","age":18}

一周python面試題彙總:星期三

45、寫5條常用sql語句

show databases;

show tables;

desc 表名;

select * from 表名;

delete from 表名 where id=5;

update students set gender=0,hometown="北京" where id=5

46、a="hello"和b="你好"編碼成bytes類型

一周python面試題彙總:星期三

47、[1,2,3]+[4,5,6]的結果是多少?

兩個清單相加,等價于extend

一周python面試題彙總:星期三

48、提高python運作效率的方法

1、使用生成器,因為可以節約大量記憶體

2、循環代碼優化,避免過多重複代碼的執行

3、核心子產品用Cython  PyPy等,提高效率

4、多程序、多線程、協程

5、多個if elif條件判斷,可以把最有可能先發生的條件放到前面寫,這樣可以減少程式判斷的次數,提高效率

49、簡述mysql和redis差別

redis: 記憶體型非關系資料庫,資料儲存在記憶體中,速度快

mysql:關系型資料庫,資料儲存在磁盤中,檢索的話,會有一定的Io操作,通路速度相對慢

50、遇到bug如何處理

1、細節上的錯誤,通過print()列印,能執行到print()說明一般上面的代碼沒有問題,分段檢測程式是否有問題,如果是js的話可以alert或console.log

2、如果涉及一些第三方架構,會去查官方文檔或者一些技術部落格。

3、對于bug的管理與歸類總結,一般測試将測試出的bug用teambin等bug管理工具進行記錄,然後我們會一條一條進行修改,修改的過程也是了解業務邏輯和提高自己程式設計邏輯缜密性的方法,我也都會收藏做一些筆記記錄。

4、導包問題、城市定位多音字造成的顯示錯誤問題

51、正則比對,比對日期2018-03-20

url='https://sycm.taobao.com/bda/tradinganaly/overview/get_summary.json?dateRange=2018-03-20%7C2018-03-20&dateType=recent1&device=1&token=ff25b109b&_=1521595613462'

仍有同學問正則,其實比對并不難,提取一段特征語句,用(.*?)比對即可

一周python面試題彙總:星期三

52、list=[2,3,5,4,9,6],從小到大排序,不許用sort,輸出[2,3,4,5,6,9]

利用min()方法求出最小值,原清單删除最小值,新清單加入最小值,遞歸調用擷取最小值的函數,反複操作

一周python面試題彙總:星期三

53、寫一個單列模式

因為建立對象時__new__方法執行,并且必須return 傳回執行個體化出來的對象所cls.__instance是否存在,不存在的話就建立對象,存在的話就傳回該對象,來保證隻有一個執行個體對象存在(單列),列印ID,值一樣,說明對象同一個

一周python面試題彙總:星期三

54、保留兩位小數

題目本身隻有a="%.03f"%1.3335,讓計算a的結果,為了擴充保留小數的思路,提供round方法(數值,保留位數)

一周python面試題彙總:星期三

55、求三個方法列印結果

fn("one",1)直接将鍵值對傳給字典;

fn("two",2)因為字典在記憶體中是可變資料類型,是以指向同一個位址,傳了新的額參數後,會相當于給字典增加鍵值對

fn("three",3,{})因為傳了一個新字典,是以不再是原先預設參數的字典

一周python面試題彙總:星期三

56、列出常見的狀态碼和意義

200 OK 

請求正常處理完畢

204 No Content 

請求成功處理,沒有實體的主體傳回

206 Partial Content 

GET範圍請求已成功處理

301 Moved Permanently 

永久重定向,資源已永久配置設定新URI

302 Found 

臨時重定向,資源已臨時配置設定新URI

303 See Other 

臨時重定向,期望使用GET定向擷取

304 Not Modified 

發送的附帶條件請求未滿足

307 Temporary Redirect 

臨時重定向,POST不會變成GET

400 Bad Request 

請求封包文法錯誤或參數錯誤

401 Unauthorized 

需要通過HTTP認證,或認證失敗

403 Forbidden 

請求資源被拒絕

404 Not Found 

無法找到請求資源(伺服器無理由拒絕)

500 Internal Server Error 

伺服器故障或Web應用故障

503 Service Unavailable 

伺服器超負載或停機維護

57、分别從前端、後端、資料庫闡述web項目的性能優化

該題目網上有很多方法,我不想截圖網上的長串文字,看的頭疼,按我自己的了解說幾點

前端優化:

1、減少http請求、例如制作精靈圖

2、html和CSS放在頁面上部,javascript放在頁面下面,因為js加載比HTML和Css加載慢,是以要優先加載html和css,以防頁面顯示不全,性能差,也影響使用者體驗差

後端優化:

1、緩存存儲讀寫次數高,變化少的資料,比如網站首頁的資訊、商品的資訊等。應用程式讀取資料時,一般是先從緩存中讀取,如果讀取不到或資料已失效,再通路磁盤資料庫,并将資料再次寫入緩存。

2、異步方式,如果有耗時操作,可以采用異步,比如celery

3、代碼優化,避免循環和判斷次數太多,如果多個if else判斷,優先判斷最有可能先發生的情況

資料庫優化:

1、如有條件,資料可以存放于redis,讀取速度快

2、建立索引、外鍵等

58、使用pop和del删除字典中的"name"字段,dic={"name":"zs","age":18}

一周python面試題彙總:星期三

59、列出常見MYSQL資料存儲引擎

InnoDB:支援事務處理,支援外鍵,支援崩潰修複能力和并發控制。如果需要對事務的完整性要求比較高(比如銀行),要求實作并發控制(比如售票),那選擇InnoDB有很大的優勢。如果需要頻繁的更新、删除操作的資料庫,也可以選擇InnoDB,因為支援事務的送出(commit)和復原(rollback)。 

MyISAM:插入資料快,空間和記憶體使用比較低。如果表主要是用于插入新記錄和讀出記錄,那麼選擇MyISAM能實作處理高效率。如果應用的完整性、并發性要求比 較低,也可以使用。

MEMORY:所有的資料都在記憶體中,資料的處理速度快,但是安全性不高。如果需要很快的讀寫速度,對資料的安全性要求較低,可以選擇MEMOEY。它對表的大小有要求,不能建立太大的表。是以,這類資料庫隻使用在相對較小的資料庫表

60、計算代碼運作結果

一周python面試題彙總:星期三

安利下dict()建立字典的新方法

一周python面試題彙總:星期三

61、簡述同源政策

 同源政策需要同時滿足以下三點要求: 

1)協定相同 

 2)域名相同 

3)端口相同 

 http:www.test.com與https:www.test.com 不同源——協定不同 

 http:www.test.com與http:www.admin.com 不同源——域名不同 

 http:www.test.com與http:www.test.com:8081 不同源——端口不同

 隻要不滿足其中任意一個要求,就不符合同源政策,就會出現“跨域”

62、簡述cookie和session的差別

1,session 在伺服器端,cookie 在用戶端(浏覽器)

2、session 的運作依賴 session id,而 session id 是存在 cookie 中的,也就是說,如果浏覽器禁用了 cookie ,同時 session 也會失效,存儲Session時,鍵與Cookie中的session id相同,值是開發人員設定的鍵值對資訊,進行了base64編碼,過期時間由開發人員設定

3、cookie安全性比session差

63、簡述多線程、多程序

程序:

1、作業系統進行資源配置設定和排程的基本機關,多個程序之間互相獨立

2、穩定性好,如果一個程序崩潰,不影響其他程序,但是程序消耗資源大,開啟的程序數量有限制

線程:

1、CPU進行資源配置設定和排程的基本機關,線程是程序的一部分,是比程序更小的能獨立運作的基本機關,一個程序下的多個線程可以共享該程序的所有資源

2、如果IO操作密集,則可以多線程運作效率高,缺點是如果一個線程崩潰,都會造成程序的崩潰

應用:

IO密集的用多線程,在使用者輸入,sleep 時候,可以切換到其他線程執行,減少等待的時間

CPU密集的用多程序,因為假如IO操作少,用多線程的話,因為線程共享一個全局解釋器鎖,目前運作的線程會霸占GIL,其他線程沒有GIL,就不能充分利用多核CPU的優勢

64、簡述any()和all()方法

any():隻要疊代器中有一個元素為真就為真

all():疊代器中所有的判斷項傳回都是真,結果才為真

python中為假的元素包括 0,空字元串,空清單、空字典、空元組、None, False

65、IOError、AttributeError、ImportError、IndentationError、IndexError、KeyError、SyntaxError、NameError分别代表什麼異常

IOError:輸入輸出異常

AttributeError:試圖通路一個對象沒有的屬性

ImportError:無法引入子產品或包,基本是路徑問題

IndentationError:文法錯誤,代碼沒有正确的對齊

IndexError:下标索引超出序列邊界

KeyError:試圖通路你字典裡不存在的鍵

SyntaxError:Python代碼邏輯文法出錯,不能執行

NameError:使用一個還未賦予對象的變量

66、python中copy和deepcopy差別

1、複制不可變資料類型,不管copy還是deepcopy,都是同一個位址當淺複制的值是不可變對象(數值,字元串,元組)時和=“指派”的情況一樣,對象的id值與淺複制原來的值相同。

一周python面試題彙總:星期三

2、複制的值是可變對象(清單和字典)

淺拷貝copy有兩種情況:

第一種情況:複制的 對象中無 複雜 子對象,原來值的改變并不會影響淺複制的值,同時淺複制的值改變也并不會影響原來的值。原來值的id值與淺複制原來的值不同。

第二種情況:複制的對象中有 複雜 子對象 (例如清單中的一個子元素是一個清單), 改變原來的值 中的複雜子對象的值  ,會影響淺複制的值。

深拷貝deepcopy:完全複制獨立,包括内層清單和字典

一周python面試題彙總:星期三
一周python面試題彙總:星期三