python筆試題22-41


22、[i%2 for i in range(10)]與(i%2 for i in range(10))輸出結果分別是什么

  答:[0, 1, 0, 1, 0, 1, 0, 1, 0, 1]與一個生成器

23、python2與python3有哪些顯著區別

  答:

    1、Python3中print為一個函數,必須用括號括起來;Python2中print為class

    2、Python3中用input,Python2中用row_input,都輸入為str

    3、Python3中/表示真除,%表示取余,//結果取整;Python2中帶上小數點/表示真除,%表示取余,//結果取整

    4、python--range(),python2---xrange()

 

24、請描述Unicode,utf8,gbk等編碼之間的關系

  答:unicode是字符集,utf8,gbk是unicode的一種編碼方式

 

25、請描述with用法,如果自己的類需要支持with語句,應該如何書寫

  答:用法 with 通過對象的__entry__()方法進入,無論執行過程中是否有異常,最后通過__exit__()結束

    只要保證自己的類中有__entry__()與__exit__()方法即可使用with

26、python中如何判斷一個對象是否可調用對象,那些對象是可調用對象,如何定義一個類,使其對象本身就是可調用對象?

  答:判斷可調用:1、callable(func)

          2、hasattr(func, '__call__')

          3、from types import FunctionType

            isinstance(func, FunctionType)

    定義可調用類:實現類中的__call__()方法

27、什么是裝飾器,寫一個裝飾器可以打印輸出方法執行時間信息

  答:不改變原函數內部結構並能拓展其方法的嵌套函數

    

import time
def outer(func):
    def inner(*args,**kwargs):
        start = time.time()
        ret = func(*args,**kwargs)
        print(time.time()-start)
        return ret
    return inner
裝飾器代碼

28、什么是進程,線程,協程?說一說python對他們的支持?

  答:進程:每個進程之間數據獨立耗費內存空間比較大   multiprocessing模塊實現

    線程:每一個進程之間可以開多個線程,線程之間數據共享,占用內存較小   threading模塊支持

    協程:協程是通過單線程內I/O阻塞實現, yield  或 greenlet包實現

29:def f(a,b=[])這種寫法中有什么陷阱

  答:b 默認值是指向一個列表對象,程序開始的時候這個列表對象是空。而不是每次調用函數的時候新建一個空列表。

30、哪些情況下,y!=x-(x-y)會成立

  答:x,y是兩個不相等的非空集合

x = set([2,3])
y = set([2,4])

31、用python實現九九乘法表(兩種方法)

  

for i in range(1,10):
    for j in range(1,i+1):
        print('%s * %s = %s' % (i,j,i*j),end=' ')
    print()
方法一
print('\n'.join([ ' '.join([ "%d*%d=%2s" %(y,x,x*y) for y in range(1,x+1)]) for x in range(1,10)]))
方法二

32、算法是指

  A、數學的計算公式      B、程序設計語言的語句語序   C、對問題的精確描述  D、解決問題的精確步驟

33、type(1+2L*3.14)的結果是

  A、<type 'int'>   B、<type 'long'>   C、<type 'float'>   D、<type 'str'>

34、若k為整形,下述while循環執行次數為

  k=1000

  while k>1:

    print k

    k = k/2

  A、9  B、10  C、11 D、100

35、以下誰是不合法的布爾表達式

  A、x in range(6)B、3=aC、e>5 and 4==fD、(x-6)>5

36、下列表達式值為True的是

  A、5+4j>2-3jB、3>2>2C、(3,2)<('a','b')比較ASCII碼值D、'abc'>'xyz'

37、python不支持的數據類型

  A、charB、intC、floatD、list

38、關於python中的復數,下列說法錯誤的是

  A、表示復數的語法是real+image J    B、實部和虛部都是浮點數

  C、虛部必須后綴j,且必須是小寫      D、方法conjugate返回復數的共軛復數

39、關於字符串,下列說法錯誤的是

  A、字符應該視為長度為1的字符串                  B、字符串以\0標志字符串結束

  C、即可用單引號,也可用雙引號創建字符串  D、在三引號字符串中可以包含換行回車等特殊字符

40、以下不能創建一個字典的語句是

  A、dict1={}    B、dict2={3:5}     C、dict3={[1,2,3]:'uestc'}    D、dict4={(1,2,3):'uestc'}

41、下列python語句正確的是

  A、min=x if x<y else y      B、max=x>y?x:y      C、if(x>y) print x    D、while True:pass


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM