python 面試題 部落格園 python面試題

2021-10-21 03:48:33 字數 3345 閱讀 8560

1.一行**實現1-100的和

print(sum(range(1,101)))

#range中的引數是1<=i<101

#sum是計算引數的和

2.在函式內部改變全域性變數

a = 5

def foo1():

global a

a = 4

foo1()

print(a)

3.列出5個python標準庫

time,獲取時間戳,時間等。

os獲取系統資訊,如目錄,pid。

subprocess,與linux shell互動

re,正規表示式,如match,findall,search

sys,獲取程式的引數,路徑,退出訊息等

psutil,獲取系統執行狀態,如cpu,mem,disk,net。

4.如何刪除字典中的元素,如何更新元素的值,如何合併兩個字典

dicta =

del dicta['age'] #刪除乙個鍵值對

dicta['name'] = 'eric' #改變乙個key的value

tel =

dicta.update(tel) #將tel字典合併到dicta字典

print(dicta)

5 如何刪除列表中的元素,如何將刪除的元素賦值給變數,如何在列表頭部插入元素,如何在列表尾部插入元素

lista = [1,2,3]

del lista[0] #刪除index=0的元素

num = lista.pop(-1) #將index為-1的元素彈出,賦值給num

lista.insert(0,1) #在index為0的位置插入元素1

6 fun(*args,**kwargs)中的*args,**kwargs什麼意思?

*args 傳遞多個值時使用

**kwargs 傳遞多組關鍵字時使用,比如django中的model定義,可能會有多組關鍵字,後面的函式就會用它作為形參

7 什麼樣的語言能使用裝飾器?

函式能作為引數傳遞的語言

8 物件導向中__new__和__init__的區別

init是初始化方法,物件建立後,就被呼叫,並且可以接受引數。

9 簡述with方法開啟處理檔案幫我我們做了什麼?

f = open('admin.py','r')

try:

str = f.read()

print(str)

except:

pass

finally:

f.close()

#這樣開啟檔案,需要處理異常,還要在finally裡關閉檔案

#with中會自己close,也可以處理異常

10.列表[1,2,3,4,5],請使用map()函式輸出[1,4,9,16,25],並使用列表推導式提取出大於10的數,最終輸出[16,25]

lista = [1,2,3,4,5]

def fn(i):

return i*i

listb = map(fn,lista)

listc = [i for i in listb if i > 10]

print(listc)

#map()是 python 內建的高階函式,它接收乙個函式 f 和乙個 list,並通過把函式 f 依次作用在 list 的每個元素上,得到乙個新的object並返回。(python2返回列表,python3返回迭代物件)

#[i for i in listb if i > 10]為列表推導式,把listb中大於10的元素給listc

11 解釋 python 中的三元表示式

根據乙個表示式判斷,x的值是什麼。

a = 1

b = 2

x = a if a > b else b

12 python如何實現多執行緒

13 join()和split的區別

join是把乙個字串的字典組成成乙個字串,用確定的分隔符。

split是把乙個字串按特定分隔符轉化成乙個列表

13 如何刪除字串中的前置空格,或者最後的/字元。

前置 lstrip(' ') 後置 rstrip('/')

14 改字母大小寫,查字母大小寫

str.lower 改小寫

str.upper 改大寫

str.islower 判斷是否小寫,字串需要全部小寫

str.ipupper  判斷是否大寫,字串需要全部大寫

答:要把bytes型別解碼為str型別的時候,ascii碼不能解碼,因為這個bytes不是由ascii碼編碼的,可以換乙個試試,像utf-8,gbk。

正規表示式

python裡match()和search()的區別

import re

sql = 'select * from table'

match_sql = re.match('from',sql)

print(match_sql)

search_sql = re.search('from',sql)

print(search_sql.span())

none

(9, 13)

#match()函式只檢測re是不是在string的開始位置匹配,search()會掃瞄整個string查詢匹配;

#span()用於給出匹配字元範圍

寫乙個方法,輸入乙個檔名和乙個字串,統計這個字串在這個檔案**現的次數。

#輸入檔名和匹配字串,返回出現次數

def countof(file_name,str):

with open(file_name,'r') as file_obj:

parse = file_obj.read()

count = len(re.findall(str,parse))

return count

列表字典字元處理

python如何實現tuple和list的轉換

t = (1,2,3)

l = [2,3,4]

print(list(t))

print(tuple(l))

寫一段python**,刪除列表裡的重複元素(刪除字串裡的重複字元)

list1 = [1,2,3,4,2,3,4]

s1 = set(list1)

print(s1)

str1 = 'google'

s2 = set(str1)

print(s2)

#set函式將list或str裡的重複項刪除,並返回乙個無序字典

上下文管理

設計乙個類foo,使其滿足以下**輸出

python部落格園 python 模擬部落格園系統

作業 用 模擬系統。專案分析 一 首先程式啟動,頁面顯示下面5內容供使用者選擇 1.請登入 2.請註冊 3.進入文章頁面 5.進入日記頁面 6.進入收藏頁面 7.登出賬號 8.退出整個程式 二 必須實現的功能 1.註冊功能要求 a.使用者名稱 密碼要記錄在檔案中。b.使用者名稱要求 只能含有字母或者...

部落格園一道面試題的解法

今天出了一道面試題,我也解了一下,php解決方案如下 大廳裡有100盞燈,每盞燈都編了號碼,分別為1 100。每盞燈由乙個開關來控制。開關按一下,燈亮,再按一下燈滅。開關的編號與被控制的燈相同。開始時,燈是全滅的。現在按照以下規則按動開關。第一次,將所有的燈點亮。第二次,將所有2的倍數的開關按一下。...

關於在部落格園慢慢更新面試題的想法

已經入職一周多了,慢慢地要開始適應工作的節奏 在自己自學的過程中,走了不少彎路,也遇到了不少困難,儘管到最後都能順利解決,但其中的努力還是付出了很多的。偶爾還會想起自學時顛倒的生活節奏,白天睡覺,晚上起床學習,樂此不疲。從開始面試以來,總共面試了10家左右,也有幾家中型公司,從通過率來看,還是不錯的...