付費下載
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、學習資料1. Python 是如何進行內(nèi)存管理的?答: 從三個方面來說 ,一對象的引用計數(shù)機制 ,二垃圾回收機制 ,三內(nèi)存池機制一、對象的引用計數(shù)機制python 內(nèi)部使用引用計數(shù),來保持追蹤內(nèi)存中的對象,所有對象都有引用計數(shù)。引用計數(shù)增加的情況:1,一個對象分配一個新名稱2,將其放入一個容器中(如列表、元組或字典)引用計數(shù)減少的情況:1,使用 del 語句對對象別名顯示的銷毀2,引用超出作用域或被重新賦值sys.getrefcount( ) 函數(shù)可以獲得對象的當前引用計數(shù)多數(shù)情況下,引用計數(shù)比你猜測得要大得多。對于不可變數(shù)據(jù)(如數(shù)字和字符串),解釋器會在程序的不同部分共享內(nèi)存,以便節(jié)約內(nèi)存。
2、二、垃圾回收1,當一個對象的引用計數(shù)歸零時,它將被垃圾收集機制處理掉。2,當兩個對象 a 和 b 相互引用時, del 語句可以減少 a 和 b 的引用計數(shù), 并銷毀用于引用底層對象的名稱。然而由于每個對象都包含一個對其他對象的應用,因此引用計數(shù)不會歸零,對象也不會銷毀。 (從而導致內(nèi)存泄露) 。為解決這一問題, 解釋器會定期執(zhí)行一個循環(huán)檢測器,搜索不可訪問對象的循環(huán)并刪除它們。三、內(nèi)存池機制Python 提供了對內(nèi)存的垃圾收集機制,但是它將不用的內(nèi)存放到內(nèi)存池而不是返回給操作系統(tǒng)。1,Pymalloc 機制。為了加速 Python 的執(zhí)行效率, Python 引入了一個內(nèi)存池機制,用于管理對
3、小塊內(nèi)存的申請和釋放。2,Python 中所有小于 256 個字節(jié)的對象都使用 pymalloc 實現(xiàn)的分配器, 而大的對象則使用系統(tǒng)的 malloc 。精品文檔學習資料3,對于 Python 對象,如整數(shù),浮點數(shù)和List,都有其獨立的私有內(nèi)存池,對象間不共享他們的內(nèi)存池。 也就是說如果你分配又釋放了大量的整數(shù), 用于緩存這些整數(shù)的內(nèi)存就不能再分配給浮點數(shù)。2. 什么是 lambda 函數(shù)?它有什么好處 ?答: lambda 表達式,通常是在需要一個函數(shù),但是又不想費神去命名一個函數(shù)的場合下使用,也就是指匿名函數(shù)lambda 函數(shù):首要用途是指點短小的回調(diào)函數(shù)lambda arguments
4、:expression>>> a=lambdax,y:x+y>>> a(3,11)3. Python 里面如何實現(xiàn) tuple 和 list 的轉(zhuǎn)換?答:直接使用 tuple 和 list 函數(shù)就行了, type() 可以判斷對象的類型4. 請寫出一段 Python 代碼實現(xiàn)刪除一個 list 里面的重復元素答:1,使用 set 函數(shù), set(list)2,使用字典函數(shù),>>>a=1,2,4,2,4,5,6,5,7,8,9,0>>> b=>>>b=b.fromkeys(a)>>>c=l
5、ist(b.keys()>>> c5. 編程用 sort 進行排序,然后從最后一個元素開始判斷a=1,2,4,2,4,5,7,10,5,5,7,8,9,0,3精品文檔學習資料a.sort()last=a-1for i inrange(len(a)-2,-1,-1):if last=ai:del aielse:last=aiprint(a)6. Python 里面如何拷貝一個對象?(賦值,淺拷貝,深拷貝的區(qū)別)答:賦值( =),就是創(chuàng)建了對象的一個新的引用,修改其中任意一個變量都會影響到另一個。淺拷貝: 創(chuàng)建一個新的對象,但它包含的是對原始對象中包含項的引用(如果用引用的方式修
6、改其中一個對象,另外一個也會修改改變)1,完全切片方法;2,工廠函數(shù),如list() ; 3,copy 模塊的 copy()函數(shù) 深拷貝:創(chuàng)建一個新的對象,并且遞歸的復制它所包含的對象(修改其中一個,另外一個不會改變) copy 模塊的 deep.deepcopy() 函數(shù) 7.介紹一下except 的用法和作用?答: tryexceptexceptelsefinally執(zhí)行 try 下的語句, 如果引發(fā)異常, 則執(zhí)行過程會跳到 except 語句。對每個 except 分支順序嘗試執(zhí)行, 如果引發(fā)的異常與 except 中的異常組匹配, 執(zhí)行相應的語句。 如果所有的 except都不匹配,則
7、異常會傳遞到下一個調(diào)用本代碼的最高層try 代碼中。try 下的語句正常執(zhí)行,則執(zhí)行else 塊代碼。如果發(fā)生異常,就不會執(zhí)行如果存在finally 語句,最后總是會執(zhí)行。8. Python 中 pass 語句的作用是什么?答: pass 語句不會執(zhí)行任何操作,一般作為占位符或者創(chuàng)建占位程序,whileFalse:pass9. 介紹一下 Python 下 range()函數(shù)的用法?答:列出一組數(shù)據(jù),經(jīng)常用在forin range()循環(huán)中精品文檔學習資料10. 如何用 Python 來進行查詢和替換一個文本字符串?答:可以使用re 模塊中的sub()函數(shù)或者subn()函數(shù)來進行查詢和替換,格
8、式: sub(replacement, string,count=0) ( replacement 是被替換成的文本, string 是需要被替換的文本, count 是一個可選參數(shù),指最大被替換的數(shù)量)>>> import re>>>p=pile( blue|white|red)>>>print(p.sub( colour ,'blue socks and red shoes )colour socks and colourshoes>>>print(p.sub( colour ,'blue socks
9、and red shoes ,count=1)colour socks and redshoessubn()方法執(zhí)行的效果跟 sub()一樣,不過它會返回一個二維數(shù)組, 包括替換后的新的字符串和總共替換的數(shù)量11. Python 里面 match() 和 search()的區(qū)別?答: re 模塊中 match(pattern,string,flags), 檢查 string 的開頭是否與pattern 匹配。re 模塊中 research(pattern,string,flags), 在 string 搜索 pattern 的第一個匹配值。>>>print(re.match(
10、 super , superstition ).span()(0, 5)>>>print(re.match( super , insuperable )None>>>print(re.search( super , superstition ).span()(0, 5)>>>print(re.search( super , insuperable ).span()(2, 7)精品文檔學習資料12. 用 Python 匹配 HTML tag 的時候, <.*>和 <.*?> 有什么區(qū)別?答:術(shù)語叫貪婪匹配 ( <
11、.*> ) 和非貪婪匹配 (<.*?> )例如 :<div><span>test</span></div><.*> :<div><span>test</span></div><.*?> :<div>13. Python 里面如何生成隨機數(shù)?答: random 模塊隨機整數(shù): random.randint(a,b) :返回隨機整數(shù) x,a<=x<=brandom.randrange(start,stop,step) :返回一個范圍在 (
12、start,stop,step) 之間的隨機整數(shù),不包括結(jié)束值。隨機實數(shù): random.random( ): 返回 0 到 1 之間的浮點數(shù)random.uniform(a,b): 返回指定范圍內(nèi)的浮點數(shù)。14. 有沒有一個工具可以幫助查找python 的 bug 和進行靜態(tài)的代碼分析?答:PyChecker 是一個 python 代碼的靜態(tài)分析工具, 它可以幫助查找 python 代碼的 bug, 會對代碼的復雜度和格式提出警告Pylint 是另外一個工具可以進行codingstandard 檢查15. 如何在一個 function 里面設置一個全局的變量?答:解決方法是在 functio
13、n 的開始插入一個 global 聲明:def f()global x16. 單引號,雙引號,三引號的區(qū)別答:單引號和雙引號是等效的,如果要換行,需要符號(), 三引號則可以直接換行,并且可以包含注釋如果要表示Let s go 這個字符串單引號: s4 = s go精品文檔學習資料雙引號: s5 = “ Let s go”s6 = I realy like“ python ” ! 這就是單引號和雙引號都可以表示字符串的原因了17. 如何用 Python 來發(fā)送郵件?可以使用smtplib 標準庫。以下代碼可以在支持SMTP 監(jiān)聽器的服務器上執(zhí)行。import sys, smtplibfroma
14、ddr =raw_input(“ From: “)toaddrs = raw_input(“ To: “ ).split(, )print “ Enter message, end with D:”msg =”while 1:line = sys.stdin.readline()if not line:breakmsg = msg + line# 發(fā)送郵件部分server = smtplib.SMTP( localhost)server.sendmail(fromaddr, toaddrs, msg)server.quit()18.Python 如何實現(xiàn)單例模式?其他23 種設計模式 pyth
15、on 如何實現(xiàn)?Python 有兩種方式可以實現(xiàn)單例模式,下面兩個例子使用了不同的方式實現(xiàn)單例模式:1.class Singleton(type):def _init_(cls, name, bases, dict):super(Singleton, cls)._init_(name, bases, dict)cls.instance = Nonedef _call_(cls, *args,*kw):if cls.instance is None:cls.instance = super(Singleton, cls)._call_(*args, *kw)return cls.instance
16、class MyClass(object):精品文檔學習資料_metaclass_ = Singletonprint MyClass()print MyClass()2. 使用 decorator 來實現(xiàn)單例模式def singleton(cls):instances = def getinstance():if cls not in instances:instancescls = cls()return instancesclsreturn getinstancesingletonclass MyClass:19. 華為一道編程有兩個序列a,b,大小都為n,序列元素的值任意整形數(shù),無序;要
17、求:通過交換a,b 中的元素,使 序列 a 元素的和 與序列 b 元素的和 之間的差最小。1. 將兩序列合并為一個序列,并排序,為序列Source2. 拿出最大元素 Big,次大的元素 Small3. 在余下的序列 S:-2進行平分,得到序列 max, min4. 將 Small 加到 max 序列,將 Big 加大 min 序列,重新計算新序列和,和大的為max,小的為 min 。Python 代碼def mean( sorted_list ):if not sorted_list:return (,)big = sorted_list-1small = sorted_list-2big_l
18、ist, small_list =mean(sorted_list:-2)big_list.append(small)small_list.append(big)精品文檔學習資料big_list_sum =sum(big_list)small_list_sum =sum(small_list)if big_list_sum >small_list_sum:return ( (big_list,small_list)else:return ( small_list,big_list)tests = 1,2,3,4,5,6,700,800,10001,10000,100,90,50,1,ra
19、nge(1, 11),12312, 12311, 232, 210,30, 29, 3, 2, 1, 1for l in tests:l.sort()printprint“ Source List:” ,ll1,l2 = mean(l)print“ Result List:” ,l1, l2print“ Distance:” ,abs(sum(l1)-sum(l2)print-* *40輸出結(jié)果Python 代碼Source List:1, 2, 3, 4, 5, 6, 700, 800精品文檔學習資料Result List:1, 4, 5, 800 2, 3, 6, 700Distance:
20、99-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*Source List:1, 50, 90, 100, 10000, 10001Result List:50, 90, 10000 1, 100, 10001Distance:38-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*Source List:1, 2, 3, 4, 5, 6, 7, 8, 9, 10Result
21、List:2, 3, 6, 7, 10 1, 4, 5, 8, 9Distance:1-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*Source List:1, 1, 2, 3, 29, 30, 210, 232, 12311, 12312Result List:1, 3, 29, 232, 12311 1, 2, 30, 210, 12312Distance:2120. python 程序中文輸出問題怎么解決?方法一:用 encode 和 decode如:import os.pa
22、thimport xlrd,sysFilename= /home/tom/Desktop/1234.xlsif not os.path.isfile(Filename):raise NameError,” %s is not a valid filename” %Filenamebk=xlrd.open_workbook(Filename)shxrange=range(bk.nsheets)print shxrange精品文檔學習資料for x in shxrange:p=bk.sheets().encode( utf-8 )print p.decode( utf-8 )方法二:在
23、文件開頭加上reload(sys)sys.setdefaultencoding( utf8 )這 2 行,再試著運行一下字符串在Python 內(nèi)部的表示是unicode 編碼,因此,在做編碼轉(zhuǎn)換時,通常需要以unicode作為中間編碼,即先將其他編碼的字符串解碼(decode)成unicode ,再從unicode 編碼(encode )成另一種編碼。decode 的作用是將其他編碼的字符串轉(zhuǎn)換成unicode 編碼,如str1.decode('gb2312') ,表示將 gb2312 編碼的字符串 str1 轉(zhuǎn)換成 unicode 編碼。encode 的作用是將unicode
24、 編碼轉(zhuǎn)換成其他編碼的字符串,如str2.encode('gb2312') ,表示將 unicode 編碼的字符串 str2 轉(zhuǎn)換成 gb2312 編碼。因此,轉(zhuǎn)碼的時候一定要先搞明白,字符串str 是什么編碼,然后decode 成 unicode ,然后再 encode 成其他編碼代碼中字符串的默認編碼與代碼文件本身的編碼一致。如: s='中文 '如果是在utf8 的文件中,該字符串就是utf8 編碼,如果是在gb2312 的文件中,則其編碼為gb2312。這種情況下,要進行編碼轉(zhuǎn)換,都需要先用 decode 方法將其轉(zhuǎn)換成 unicode 編碼,再使用 en
25、code 方法將其轉(zhuǎn)換成其他編碼。通常,在沒有指定特定的編碼方式時,都是使用的系統(tǒng)默認編碼創(chuàng)建的代碼文件。如果字符串是這樣定義:s=u'中文 '則該字符串的編碼就被指定為unicode 了,即python 的內(nèi)部編碼,而與代碼文件本身的編碼無關。因此,對于這種情況做編碼轉(zhuǎn)換,只需要直接使用encode 方法將其轉(zhuǎn)換成指定編碼即可。如果一個字符串已經(jīng)是 unicode 了,再進行解碼則將出錯,因此通常要對其編碼方式是否為 unicode 進行判斷:isinstance(s,unicode)#用來判斷是否為unicode用非 unicode 編碼形式的str 來 encode 會報
26、錯精品文檔學習資料如何獲得系統(tǒng)的默認編碼?#!/usr/bin/env python#coding=utf-8import sysprint sys.getdefaultencoding()該段程序在英文WindowsXP 上輸出為: ascii21. python 代碼得到列表 list 的交集與差集交集b1=1,2,3b2=2,3,4b3 = val for val in b1if val in b2print b3差集b1=1,2,3b2=2,3,4b3 = val for val in b1 if val not in b2print b3差集實例 - #/bin/env python
27、# -*- coding:utf-8 -*-f =open( C:excel.txt)excel = f.readlines()f.close()f= open( C:db.txt)db = f.readlines()diff = val for val in db if val not in excelf.close()f =open( C:diff.txt , w)精品文檔學習資料f.writelines(diff)f.close()print diff22. 寫一個簡單的 python socket 編程python編寫 server 的步驟:1 第一步是創(chuàng)建socket 對象。調(diào)用so
28、cket 構(gòu)造函數(shù)。如:socket = socket.socket(family, type )family 參數(shù)代表地址家族, 可為 AF_INET或 AF_UNIX。AF_INET家族包括 Internet 地址,AF_UNIX家族用于同一臺機器上的進程間通信。type 參數(shù)代表套接字類型,可為SOCK_STREAM(流套接字 )和 SOCK_DGRAM(數(shù)據(jù)報套接字)。2.第二步是將socket 綁定到指定地址。這是通過socket 對象的 bind 方法來實現(xiàn)的:socket.bind( address )由 AF_INET所創(chuàng)建的套接字, address 地址必須是一個雙元素元組,
29、格式是 (host,port) 。 host 代表主機, port 代表端口號。如果端口號正在使用、主機名不正確或端口已被保留, bind 方法將引發(fā) socket.error 異常。3.第三步是使用socket 套接字的 listen 方法接收連接請求。socket.listen( backlog )backlog 指定最多允許多少個客戶連接到服務器。它的值至少為1。收到連接請求后,這些請求需要排隊,如果隊列滿,就拒絕請求。4.第四步是服務器套接字通過socket 的 accept 方法等待客戶請求一個連接。connection, address =socket.accept()調(diào)用 acc
30、ept 方法時, socket 會時入“ waiting ”狀態(tài)??蛻粽埱筮B接時,方法建立連接并返回服務器。accept 方法返回一個含有兩個元素的元組(connection,address) 。第一個元素connection 是新的 socket 對象,服務器必須通過它與客戶通信;第二個元素address 是客戶的 Internet 地址。5. 第五步是處理階段,服務器和客戶端通過send 和 recv 方法通信 (傳輸數(shù)據(jù) )。服務器調(diào)用send,并采用字符串形式向客戶發(fā)送信息。 send 方法返回已發(fā)送的字符個數(shù)。服務器使用 recv 方法從客戶接收信息。調(diào)用 recv 時,服務器必須指
31、定一個整數(shù),它對應于可通過本次精品文檔學習資料方法調(diào)用來接收的最大數(shù)據(jù)量。recv 方法在接收數(shù)據(jù)時會進入“blocked”狀態(tài),最后返回一個字符串,用它表示收到的數(shù)據(jù)。如果發(fā)送的數(shù)據(jù)量超過了recv 所允許的,數(shù)據(jù)會被截短。多余的數(shù)據(jù)將緩沖于接收端。以后調(diào)用recv 時,多余的數(shù)據(jù)會從緩沖區(qū)刪除(以及自上次調(diào)用 recv 以來,客戶可能發(fā)送的其它任何數(shù)據(jù))。6. 傳輸結(jié)束,服務器調(diào)用 socket 的 close 方法關閉連接。python 編寫 client 的步驟:1. 創(chuàng)建一個 socket 以連接服務器:socket= socket.socket( family, type )2.使
32、用 socket 的 connect 方法連接服務器。對于AF_INET家族 ,連接格式如下:socket.connect(host,port) )host 代表服務器主機名或IP,port 代表服務器進程所綁定的端口號。如連接成功, 客戶就可通過套接字與服務器通信,如果連接失敗,會引發(fā)socket.error 異常。3. 處理階段,客戶和服務器將通過send 方法和 recv 方法通信。4. 傳輸結(jié)束,客戶通過調(diào)用 socket 的 close 方法關閉連接。下面給個簡單的例子:server.pyif _name_ ='_main_':import socketsock =
33、socket.socket(socket.AF_INET,socket.SOCK_STREAM)sock.bind('localhost',8001)sock.listen(5)while True:connection,address =sock.accept()精品文檔學習資料try:connection.settimeout(5)buf =connection.recv(1024)if buf = '1':connection.send('welcometo server!')else:connection.send('please
34、go out!')except socket.timeout:print 'time out'connection.close()client.pypython代碼if _name_ ='_main_':import socketsock =socket.socket(socket.AF_INET, socket.SOCK_STREAM)sock.connect('localhost',8001)import timetime.sleep(2)sock.send('1')print sock.recv(1024)sock.
35、close()精品文檔學習資料在終端運行 server.py,然后運行 clien.py ,會在終端打印“ welcometo server!" 。如果更改 client.py 的 sock.23. Python 文件操作的面試題1. 如何用 Python 刪除一個文件?使用 os.remove(filename) 或者 os.unlink(filename);2. Python 如何 copy 一個文件?shutil 模塊有一個copyfile 函數(shù)可以實現(xiàn)文件拷貝1:Python 如何實現(xiàn)單例模式?Python 有兩種方式可以實現(xiàn)單例模式,下面兩個例子使用了不同的方式實現(xiàn)單例模式
36、:1.class Singleton(type):def _init_(cls, name, bases, dict):super(Singleton, cls)._init_(name, bases, dict)cls.instance = Nonedef _call_(cls, *args, *kw):if cls.instance is None:cls.instance = super(Singleton, cls)._call_(*args, *kw)return cls.instanceclass MyClass(object):_metaclass_ = Singletonpri
37、nt MyClass()print MyClass()2. 使用 decorator 來實現(xiàn)單例模式def singleton(cls):instances = def getinstance():if cls not in instances:instancescls = cls()return instancesclsreturn getinstancesingletonclass MyClass:精品文檔學習資料2:什么是lambda 函數(shù)?Python 允許你定義一種單行的小函數(shù)。定義 lambda 函數(shù)的形式如下:labmda 參數(shù):表達式lambda 函數(shù)默認返回表達式的值。你也可
38、以將其賦值給一個變量。lambda 函數(shù)可以接受任意個參數(shù),包括可選參數(shù),但是表達式只有一個:>>> g = lambda x, y: x*y>>> g(3,4)12>>> g = lambda x, y=0, z=0: x+y+z>>> g(1)1>>> g(3, 4, 7)14也能夠直接使用lambda 函數(shù),不把它賦值給變量:>>> (lambda x,y=0,z=0:x+y+z)(3,5,6)14如果你的函數(shù)非常簡單,只有一個表達式,不包含命令,可以考慮lambda 函數(shù)。否則,
39、你還是定義函數(shù)才對,畢竟函數(shù)沒有這么多限制。3:Python 是如何進行類型轉(zhuǎn)換的?Python 提供了將變量或值從一種類型轉(zhuǎn)換成另一種類型的內(nèi)置函數(shù)。int 函數(shù)能夠?qū)⒎蠑?shù)學格式數(shù)字型字符串轉(zhuǎn)換成整數(shù)。否則,返回錯誤信息。>>> int(” 34 )34>>> int(” 1234ab” ) #不能轉(zhuǎn)換成整數(shù)ValueError: invalid literal for int(): 1234ab函數(shù) int 也能夠把浮點數(shù)轉(zhuǎn)換成整數(shù),但浮點數(shù)的小數(shù)部分被截去。>>> int(34.1234)34>>> int(-2.
40、46)-2函數(shù)° oat 將整數(shù)和字符串轉(zhuǎn)換成浮點數(shù):>>> float( ” 12)12.0>>> float( ” 1.111111) 1.111111函數(shù) str 將數(shù)字轉(zhuǎn)換成字符:>>> str(98)98>>> str(” 76.765 )76.765 精品文檔學習資料整數(shù) 1 和浮點數(shù)1.0 在 python 中是不同的。雖然它們的值相等的,但卻屬于不同的類型。這兩個數(shù)在計算機的存儲形式也是不一樣。4:Python 如何定義一個函數(shù)函數(shù)的定義形式如下:def <name>(arg1, ar
41、g2,argN):<statements>函數(shù)的名字也必須以字母開頭,可以包括下劃線“” ,但不能把 Python 的關鍵字定義成函數(shù)的名字。函數(shù)內(nèi)的語句數(shù)量是任意的,每個語句至少有一個空格的縮進,以表示此語句屬于這個函數(shù)的??s進結(jié)束的地方,函數(shù)自然結(jié)束。下面定義了一個兩個數(shù)相加的函數(shù):>>> def add(p1, p2):print p1,“ +” , p2,“ =” , p1+p2>>> add(1, 2)1+2=3函數(shù)的目的是把一些復雜的操作隱藏,來簡化程序的結(jié)構(gòu),使其容易閱讀。函數(shù)在調(diào)用前,必須先定義。也可以在一個函數(shù)內(nèi)部定義函數(shù),內(nèi)部
42、函數(shù)只有在外部函數(shù)調(diào)用時才能夠被執(zhí)行。程序調(diào)用函數(shù)時,轉(zhuǎn)到函數(shù)內(nèi)部執(zhí)行函數(shù)內(nèi)部的語句,函數(shù)執(zhí)行完畢后,返回到它離開程序的地方,執(zhí)行程序的下一條語句。5:Python 是如何進行內(nèi)存管理的?Python 的內(nèi)存管理是由 Python 得解釋器負責的, 開發(fā)人員可以從內(nèi)存管理事務中解放出來,致力于應用程序的開發(fā),這樣就使得開發(fā)的程序錯誤更少,程序更健壯,開發(fā)周期更短6:如何反序的迭代一個序列?howdo I iterate over a sequence in reverse order如果是一個list,最快的解決方案是:list.reverse()try:for x in list:“do s
43、omething with x ”finally:list.reverse()如果不是list, 最通用但是稍慢的解決方案是:精品文檔學習資料for i in range(len(sequence)-1, -1, -1):x = sequencei<do something with x>7:Python 里面如何實現(xiàn)tuple 和 list 的轉(zhuǎn)換?函數(shù) tuple(seq) 可以把所有可迭代的(iterable) 序列轉(zhuǎn)換成一個tuple, 元素不變, 排序也不變。例如, tuple(1,2,3) 返回 (1,2,3),tuple( abc)返回 (a.b', c
44、9;).如果參數(shù)已經(jīng)是一個tuple的話,函數(shù)不做任何拷貝而直接返回原來的對象,所以在不確定對象是不是tuple 的時候來調(diào)用 tuple() 函數(shù)也不是很耗費的。函數(shù) list(seq)可以把所有的序列和可迭代的對象轉(zhuǎn)換成一個list,元素不變,排序也不變。例如 list(1,2,3) 返回 (1,2,3),list( abc )返回 'a', 'b', 'c' 。如果參數(shù)是一個 list,她會像 set: 一樣做一個拷貝8:Python 面試題:請寫出一段Python 代碼實現(xiàn)刪除一個list 里面的重復元素可以先把list 重新排序,然后從
45、list 的最后開始掃描,代碼如下:if List:List.sort()last = List-1for i in range(len(List)-2, -1, -1):if last=Listi: del Listielse: last=Listi9:Python 文件操作的面試題1. 如何用 Python 刪除一個文件?使用 os.remove(filename) 或者 os.unlink(filename);2. Python 如何 copy 一個文件?shutil 模塊有一個copyfile 函數(shù)可以實現(xiàn)文件拷貝10: Python 里面如何生成隨機數(shù)?標準庫 random 實現(xiàn)了一
46、個隨機數(shù)生成器,實例代碼如下:import randomrandom.random()精品文檔學習資料它會返回一個隨機的0 和 1 之間的浮點數(shù)11:如何用Python 來發(fā)送郵件?可以使用smtplib 標準庫。以下代碼可以在支持SMTP 監(jiān)聽器的服務器上執(zhí)行。import sys, smtplibfromaddr = raw_input(” From:“)toaddrs = raw_input(” To:“ ).split( ,')print“ Enter message, end with D:”msg =”while 1:line = sys.stdin.readline()i
47、f not line:breakmsg = msg + line# 發(fā)送郵件部分server = smtplib.SMTP( localhost)server.sendmail(fromaddr, toaddrs, msg)server.quit()12: Python 里面如何拷貝一個對象?一般來說可以使用copy.copy()方法或者copy.deepcopy() 方法,幾乎所有的對象都可以被拷貝一些對象可以更容易的拷貝,Dictionaries 有一個 copy 方法:newdict = olddict.copy()13:有沒有一個工具可以幫助查找python 的 bug 和進行靜態(tài)的代碼分析?有,PyChecker 是一個 python 代碼的靜態(tài)分析工具, 它可以幫助查找 python 代碼的 bug, 會對代碼的復雜度和格式提出警告Pylint 是另外一個工具可以進行coding standard 檢查。14:如何在一個function 里面設置一個全局的變量?解決方法是在function 的開始插入一個global 聲明:精品文檔學習資料def f()global x14:有兩個序列a,b,大小都為n,序列元素的值任意整形數(shù),無序;要求:通過交換a,b 中的元素,使 序列 a 元素的和
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 海藻膠提取工安全綜合強化考核試卷含答案
- 會議接待服務師安全培訓競賽考核試卷含答案
- 白酒貯酒工操作技能能力考核試卷含答案
- 玻璃制品裝飾工崗前工作技能考核試卷含答案
- 2024年湖南吉利汽車職業(yè)技術(shù)學院馬克思主義基本原理概論期末考試題附答案
- 2025年事業(yè)單位招聘考試《《行測》》真題庫1套
- 2024年溫州市工人業(yè)余大學輔導員考試筆試真題匯編附答案
- 2024年紹興理工學院輔導員招聘備考題庫附答案
- 2024年燕京理工學院輔導員招聘考試真題匯編附答案
- 2024年運城市遴選公務員考試真題匯編附答案
- 2026年公共部門人力資源管理試題含答案
- 2026年中國數(shù)聯(lián)物流備考題庫有限公司招聘備考題庫有答案詳解
- 黑龍江省哈爾濱市師范大學附中2026屆數(shù)學高三第一學期期末質(zhì)量檢測模擬試題含解析
- 公司業(yè)務三年發(fā)展規(guī)劃
- 人力資源統(tǒng)計學(第二版)新課件頁
- 神經(jīng)內(nèi)科護士長述職報告,神經(jīng)內(nèi)科護士長年終述職報告
- 某辦公樓室內(nèi)裝飾工程施工設計方案
- 高考復習反應熱
- 小學生常用急救知識PPT
- 中考英語選詞填空專項訓練
- TOC-李榮貴-XXXX1118
評論
0/150
提交評論