python 面试题 博客园_python面试题
1.一行代碼實(shí)現(xiàn)1-100的和
print(sum(range(1,101)))
#range中的參數(shù)是1<=i<101
#sum是計(jì)算參數(shù)的和
2.在函數(shù)內(nèi)部改變?nèi)肿兞?/p>
a = 5
def foo1():
global a
a = 4
foo1()
print(a)
3.列出5個(gè)python標(biāo)準(zhǔn)庫
time,獲取時(shí)間戳,時(shí)間等。
os獲取系統(tǒng)信息,如目錄,pid。
subprocess,與linux shell交互
re,正則表達(dá)式,如match,findall,search
sys,獲取程序的參數(shù),路徑,退出消息等
psutil,獲取系統(tǒng)運(yùn)行狀態(tài),如cpu,mem,disk,net。
4.如何刪除字典中的元素,如何更新元素的值,如何合并兩個(gè)字典
dictA = {'age':18,'name':'jab'}
del dictA['age'] #刪除一個(gè)鍵值對
dictA['name'] = 'eric' #改變一個(gè)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 傳遞多個(gè)值時(shí)使用
**kwargs 傳遞多組關(guān)鍵字時(shí)使用,比如django中的model定義,可能會有多組關(guān)鍵字,后面的函數(shù)就會用它作為形參
appid = models.IntegerField(primary_key=True)
7 什么樣的語言能使用裝飾器?
函數(shù)能作為參數(shù)傳遞的語言
8 面向?qū)ο笾衉_new__和__init__的區(qū)別
init是初始化方法,對象創(chuàng)建后,就被調(diào)用,并且可以接受參數(shù)。
9?簡述with方法打開處理文件幫我我們做了什么?
f = open('admin.py','r')
try:
str = f.read()
print(str)
except:
pass
finally:
f.close()
#這樣打開文件,需要處理異常,還要在finally里關(guān)閉文件
#with中會自己close,也可以處理異常
10.列表[1,2,3,4,5],請使用map()函數(shù)輸出[1,4,9,16,25],并使用列表推導(dǎo)式提取出大于10的數(shù),最終輸出[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 內(nèi)置的高階函數(shù),它接收一個(gè)函數(shù) f 和一個(gè) list,并通過把函數(shù) f 依次作用在 list 的每個(gè)元素上,得到一個(gè)新的object并返回。(python2返回列表,Python3返回迭代對象)
#[i for i in listB if i > 10]為列表推導(dǎo)式,把listB中大于10的元素給listC
11?解釋 Python 中的三元表達(dá)式
根據(jù)一個(gè)表達(dá)式判斷,x的值是什么。
a = 1
b = 2
x = a if a > b else b
12 python如何實(shí)現(xiàn)多線程
13 join()和split的區(qū)別
join是把一個(gè)字符串的字典組成成一個(gè)字符串,用確定的分隔符。
split是把一個(gè)字符串按特定分隔符轉(zhuǎn)化成一個(gè)列表
13 如何刪除字符串中的前置空格,或者最后的/字符。
前置 lstrip(' ') 后置 rstrip('/')
14 改字母大小寫,查字母大小寫
str.lower 改小寫
str.upper 改大寫
str.islower 判斷是否小寫,字符串需要全部小寫
str.ipupper??判斷是否大寫,字符串需要全部大寫
答:要把bytes類型解碼為str類型的時(shí)候,ascii碼不能解碼,因?yàn)檫@個(gè)bytes不是由ascii碼編碼的,可以換一個(gè)試試,像utf-8,gbk。
正則表達(dá)式
python里match()和search()的區(qū)別
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()函數(shù)只檢測RE是不是在string的開始位置匹配,search()會掃描整個(gè)string查找匹配;
#span()用于給出匹配字符范圍
寫一個(gè)方法,輸入一個(gè)文件名和一個(gè)字符串,統(tǒng)計(jì)這個(gè)字符串在這個(gè)文件中出現(xiàn)的次數(shù)。
#輸入文件名和匹配字符串,返回出現(xiàn)次數(shù)
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如何實(shí)現(xiàn)tuple和list的轉(zhuǎn)換
t = (1,2,3)
l = [2,3,4]
print(list(t))
print(tuple(l))
寫一段python代碼,刪除列表里的重復(fù)元素(刪除字符串里的重復(fù)字符)
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函數(shù)將list或str里的重復(fù)項(xiàng)刪除,并返回一個(gè)無序字典
上下文管理
設(shè)計(jì)一個(gè)類Foo,使其滿足以下代碼輸出
總結(jié)
以上是生活随笔為你收集整理的python 面试题 博客园_python面试题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: phpmyadmin忘记mysql密码_
- 下一篇: python中全局变量和局部变量详解_P