python面試題(十)


  1. Python中基本數據結構的操作

 

元組

列表

字典

集合

定義

 

 

 

 

新增

 

 

 

 

更改

 

 

 

 

刪除

 

 

 

 

 

 

 

 

 

 

 

 

 

 2.請盡可能列舉python列表的成員方法,並給出一下列表操作的答案:

  (1)a=[1, 2, 3, 4, 5], a[::2]=?, a[-2:] = ?

(1)1 3 52)4 5
答案

 

  (2) 一行代碼實現對列表a中的偶數位置的元素進行加3后求和?

 

sums = sum(map(lambda x: x + 3, a[1::2]))
答案

 

 

  3.List = [-2, 1, 3, -6],如何實現以絕對值大小從小到大將 List 中內容排序。

sorted(list1,key = abs)
答案

    (1) 列表的sort方法和 sorted的區別是什么?

 

sort 是list的方法,改變list對象的順序,返回值為None
sorted是Python的內置方法,適用iterable對象,返回值是新列表,不影響原來的iterable的順序
答案

 

  4.有一篇英文文章保存在 a.txt 中,請用python實現統計這篇文章內每個單詞的出現頻率,並返回出現頻率最高的前10個單詞及其出現次數(只考慮空格,標點符號可忽略)

from collections import Counter
    c = Counter()
with open('a.txt','r',encoding='utf-8') as f:
    for line in f.readlines():
        words = line.split()
        c1 = Counter(words)
        c.update(c1)
答案

(1)追加需求:引號內元素需要算作一個單詞,如何實現?

"分割,轉換成列表,取其奇數分割,其偶數不做處理
思路

 

  5.Python函數中經常有 *args,**kwargs 這兩個參數,它們是什么意思,為什么要使用它們?

 

太簡單,就不寫啦,哈哈哈哈
答案

 

  6.Python中的變量作用域(變量查找順序)。

 

LEGB
local 局部變量--->enclosed 閉包作用域 ----> Global 全局---->built-in變量
答案

 

  7.下面這段代碼的輸出結果將是什么?請解釋。

 

# 1 1 1 繼承自父類的類屬性x,所以都一樣,指向同一塊內存地址
# 1 2 1 更改Child1,Child1的x指向了新的內存地址
# 3 2 3 更改Parent,Parent的x指向了新的內存地址
答案

 

  8.描述Python GIL的概念, 以及它對python多線程的影響?編寫一個多線程抓取網頁的程序,並闡明多線程抓取程序是否可比單線程性能有提升,並解釋原因。

 Guido的聲明:http://www.artima.com/forums/flat.jsp?forum=106&thread=214235

he language doesn't require the GIL -- it's only the CPython virtual machine that has historically been unable to shed it.
Python語言和GIL沒有半毛錢關系。僅僅是由於歷史原因在Cpython虛擬機(解釋器),難以移除GIL。
GIL:全局解釋器鎖。每個線程在執行的過程都需要先獲取GIL,保證同一時刻只有一個線程可以執行字節碼。
線程釋放GIL鎖的情況:
在IO操作等可能會引起阻塞的system call之前,可以暫時釋放GIL,但在執行完畢后,必須重新獲取GIL
Python 3.x使用計時器(執行時間達到閾值后,當前線程釋放GIL)或Python 2.x,tickets計數達到100

Python使用多進程是可以利用多核的CPU資源的。

多線程爬取比單線程性能有提升,因為遇到IO阻塞會自動釋放GIL鎖
答案

  9.Python中如何動態獲取和設置對象的屬性。

if hasattr(Parent,'x'):
    print(getattr(Parent,'x'))
    setattr(Parent,'x',3)
    print(getattr(Parent,'x'))
答案

  10.(前端基礎)

(1)    用CSS如何隱藏一個元素

dispaly:none
答案

(2)    一行CSS實現padding上下左右分別為 1px,2px,3px,4px

padding:1 4 2 3
答案

(3)    JavaScript(或jQuery)如何選擇一個id為main的容器

$('#main')
答案

(4)    JavaScript(或jQuery)如何選擇一個class為menu的容器

$('.menu')
答案

 


免責聲明!

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



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