python 面试题 博客园_python面试题
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 = {'age':18,'name':'jab'}
del dictA['age'] #刪除一個鍵值對
dictA['name'] = 'eric' #改變一個key的value
tel = {'tel':'131111111'}
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
listA.append(3) #在尾部追加元素3
6?fun(*args,**kwargs)中的*args,**kwargs什么意思?
*args 傳遞多個值時使用
**kwargs 傳遞多組關鍵字時使用,比如django中的model定義,可能會有多組關鍵字,后面的函數就會用它作為形參
appid = models.IntegerField(primary_key=True)
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)
-->
{1, 2, 3, 4}
{'g', 'l', 'o', 'e'}
#set函數將list或str里的重復項刪除,并返回一個無序字典
上下文管理
設計一個類Foo,使其滿足以下代碼輸出
總結
以上是生活随笔為你收集整理的python 面试题 博客园_python面试题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: phpmyadmin忘记mysql密码_
- 下一篇: eclipse java maven_E