1. 程式人生 > >python筆試題42-69

python筆試題42-69

tro args **kw) switch 區別 功能 copy模塊 cti for

42、如何在Python中拷貝一個對象,並說明他們之間的區別

  答:Python中有兩種拷貝方式,深拷貝與淺拷貝

    淺拷貝:用賦值符號(=)即可,內存地址公用,一個改復制對象全都改

    深拷貝:用copy模塊下的deepcopy方法,每一個拷貝對象都是獨立的內存地址

43、談談你對Python裝飾器的理解

  答:裝飾器是一個內嵌函數

    他能不改變原函數代碼的情況下增加其裝飾函數的功能

44、Python裏的match()與search()區別

  答:match是從字符串第一位開始匹配,若第一位不同則找不到

    search是在字符串中找到匹配的字符串,第一位不同就找下一位

45、獲取list的元素個數,和向末尾追加元素所用的方法分別是

  答:len(),.append()

46、判斷dict有沒有某個key的方法是

  答:py2.7(dict.has_key(key)) py3 key in dict

47、L=range(100),取第一到第三個元素用(L[:3]),取倒數第二個元素(L[-2]),取後十個用(L[-11:-1])

  把L復制給L1用(L1=copy.deepcopy(L)),非引用傳遞

48、d = {‘a‘:1,‘b‘:2,‘c‘:3}請打印key,value對

  答:for k,v in d.values(): print k,v

49、如何判斷一個變量是不是字符串?

  答:type(a) is str

50、list與touple有什麽不同

  答:list內的元素可變,touple內的元素不可變,相同長度的list與touple,list占得內存大

51、xrange與range有什麽不同?

  答:range生成一個列表,xrange生成一個生成器

52、‘1,2,3’如何變成[‘1‘,‘2‘,‘3‘]? [‘1‘,‘2‘,‘3‘]如何變成[1,2,3]?

  答:‘1,2,3’.split(‘,‘) map(int,b)

53、def add_end(L=[]):

    L.append(‘END‘)

    return L

  >>>add_end() 輸出什麽---------------[‘END‘]

  >>>add_end()再次調用輸出什麽?為什麽--------------[‘END‘,‘END’]因為指向的列表還是原來那個

54、[36,5,12,9,21]怎麽排序?

  答:sorted([36,5,12,9,21])

55、def func(a,b,c=0,*args,**kw):

    pass

  *args,**kw的作用是什麽

  答:接受額外的參數

56、is與==的區別?

  答:is比較內存地址和值,==只比較值

57、如何生成[1,4,9,16,25,36,49,64,81,100]?盡量用一行實現?

  答:[i*i for i in range(1,11)]

58、生成器是什麽?有什麽作用?請寫一個生成器

  答:生成器的本質就是一個叠代器,實現惰性生成,在需要一個數據時生成一個數據

    def gen():

       for i in range(10):

        yield i

59、map(str,[1,2,3,4,5,6,7,8,9])輸出什麽?

  答:[‘1‘, ‘2‘, ‘3‘, ‘4‘, ‘5‘, ‘6‘, ‘7‘, ‘8‘, ‘9‘]

60、請寫log的實現(主要功能打印函數名)

  @log

  def now():

    print ‘123455‘

  >>>now()

  輸出call now():‘‘123455‘

  答:

def log(func):
def inner(*args,**kwargs):
print ‘call %s:‘ % func.__name__
ret = func(*args,**kwargs)
return ret
return inner

61、以下敘述正確的是

  A、continue語句的作用是結束整個循環的執行 B、只能在循環體內和switch語句內使用break

  C、在循環體內使用continue和break作用相同 D、從多層循環嵌套中退出時,只能使用goto語句

62、Python如何定義一個函數

  A、class<name>(<Type>arg1,<Type>arg2) B、function<name>(arg1,arg2)

  C、def <name>(arg1,arg2) D、def <name>(<Type>arg1,<Type>arg2)

63、下面那個函數能夠在linux下創建子進程

  A、os.popenB、os.forkC、os.systemD、os.link

64、已知x=43,ch=‘A‘,y=1,則表達式(x>y and ch <‘B‘ and y)的值是

  A、0 B、1 C、出錯 D、True(‘真‘)

65、下面語句那個會無限循環下去

  其中range函數原型為range([start],stop[,step])

  A、for a in range(10):time.sleep(10) B、while 1 < 10: time.sleep(10)

  C、while True:break D、a=[3,-1,‘,"] for i in a[:]: if a >10:break;

66、下列表達式中返回True的是

  A、3>2>2 B、‘abc‘>‘xyz‘ C、0x56<56 D、(3,2)<(‘a‘,‘b‘)

67、Python不支持的數據類型有

  A、char B、int C、float D、list

68、下面的函數轉換哪一個是正確的

  A、int(‘ABcDef‘) B、float(‘‘‘) C、bool((3,‘‘‘‘)) D、str(‘)

69、下面函數,那些會輸出1,2,3三個數字

  A、for i in range(3):print i B、aList = [0,1,2] for i in aList:print i+1

  C、i = 1 while i <3: print i i=i+1 D、for i in range(3):print i+1

python筆試題42-69