日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python爬虫面试问题及答案_关于Python爬虫面试50道题

發布時間:2023/12/14 python 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python爬虫面试问题及答案_关于Python爬虫面试50道题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

語言特性

1.談談對 Python 和其他語言的區別

答:Python屬于比較“自由”的語言,首先變量使用前不需要聲明類型,其次語句結束不需要使用分號作為結尾,同時不需要大括號進行代碼塊的標注,使用縮進對大括號進行代替。

2.簡述解釋型和編譯型編程語言

答:編譯型語言是將代碼編譯成機器碼,然后執行,通過編譯可以使得程序直接以機器碼的形式進行工作。通俗一點就是將整個程序一次性編譯后再執行。解釋型語言則是編譯一句執行一句,編譯到哪里執行到哪里,每次執行前都要逐句編譯。通常情況下編譯型語言執行速度比解釋型快,但是現在的解釋器經常會針對語言進行優化,所以有時候解釋型語言速度反而比編譯型快。

3.Python 的解釋器種類以及相關特點?

答:CPython,官方使用的解釋器,用C語言編寫。IPython,基于CPython開發,增強了交互性。JPython,將Python編譯成Java字節碼。IronPython,將Python編譯為.Net的字節碼。

4.說說你知道的Python3 和 Python2 之間的區別?

答:1、print由關鍵字變為了函數。2、Python3默認使用utf-8,解決了Python2中使用ACSII導致的中文亂碼問題。3、將xrange與range進行合并,在Python3中只存在range一種寫法,本質上是xrange。

5.Python3 和 Python2 中 int 和 long 區別?

答:Python2中,int型能表示的數字長度取決于系統位數,32位系統長度為32位,64位系統長度為64位,long型則不受長度限制。在Python3中,所有的整型都為長整型。

6.xrange 和 range 的區別?

答:兩關鍵字都是用于生成指定范圍的列表,在Python3中已經合并為range了。在Python2中,xrange生成結果為迭代器,占用空間小,range生成結果為列表,占據空間較大。

編碼規范

7.什么是 PEP8?

答:PEP8是Python編程的一種格式要求,為了提高程序的可讀性和規范性,在程序員之間互相約定好的一種代碼格式

8.了解 Python 之禪么?

答:在Python的交互模式下輸入 import this 就能看到Python之禪的內容了。

9.了解 dosctring 么?

答:Python推崇代碼即文檔,通常在函數中第一個語句即表明了函數的用法及接受的參數,可以通過functiong.__doc__屬性來獲得。

10.了解類型注解么?

答:類型注解是Python3中引入的新特性,通過def(x:int, y:int) -> int: 這樣的方式,標記參數及返回值的類型,這里要注意,即使添加了了類型注解也不會對代碼產生影響,它的作用更像是注釋,只是方便其他程序員了解參數及返回值類型。

11.例舉你知道 Python 對象的命名規范,例如方法或者類等

答:駝峰命名法

12.Python 中的注釋有幾種?

答:2種,單行的使用#的注釋方式,跨行的使用使用三個雙引號或三個單引號的的注釋方式。

13.如何優雅的給一個函數加注釋?

答:函數注釋通常在 def 語句下方,第一行表示函數用法,接下來對函數接受的參數進行解釋,最后對函數的返回值進行注釋,方便他人理解函數的用法。

14.如何給變量加注釋?

15.Python 代碼縮進中是否支持 Tab 鍵和空格混用。

答:不支持,同時盡量使用4個空格代替Tab縮進。

16.是否可以在一句 import 中導入多個庫?

答:可以,但不建議。

17.在給 Py 文件命名的時候需要注意什么?

答:使用全小寫或者下劃線進行命名。

18.例舉幾個規范 Python 代碼風格的工具

答:YAPF,谷歌開發的代碼規范工具。Black,依賴Python3.6+的第三方庫,可以直接將原代碼變為符合PEP8標準的代碼

數據類型

字符串

19.列舉 Python 中的基本數據類型?

答:字符串string、數字number、字典dictionary、列表list、元組tuple、集合set。

20.如何區別可變數據類型和不可變數據類型

答:可變的數據類型有 列表、字典、集合,不可變的有字符串、數字、元組。

21.將"hello world"轉換為首字母大寫"Hello World"

答:string.title()將每個單詞首字母大寫。

22.如何檢測字符串中只含有數字?

答:Python的語法糖,字符串類型自帶函數isdigit(),當字符串中只存在數字返回True,反之返回False。

23.將字符串"ilovechina"進行反轉

答:“ilovechina”[::-1]

24.Python 中的字符串格式化方式你知道哪些?

答:format()

25.有一個字符串開頭和末尾都有空格,比如“ adabdw ”,要求寫一個函數把這個字符串的前后空格都去掉。

答:string.replace(’ ’ ,’’)

26.獲取字符串”123456“最后的兩個字符。

答:“123456”[4:6:]或“123456"[-2::]

27.一個編碼為 GBK 的字符串 S,要將其轉成 UTF-8 編碼的字符串,應如何操作?

答:先編碼為Unicode,再解碼為 UTF-8,具體操作為 string.decode(),str.encode(encoding=‘utf-8’)該條存疑,有待驗證

28.s=“info:xiaoZhang 33 shandong”,用正則切分字符串輸出[‘info’, ‘xiaoZhang’, ‘33’, ‘shandong’]

答:re.split(r’[: ]’, s)

27.怎樣將字符串轉換為小寫?

答:string.lower()

28.單引號、雙引號、三引號的區別?

答:單引號表示的字符串中不能帶有雙引號。雙引號表示的字符串中可以存在單引號。三引號中可以存在單引號和雙引號,并且可以跨行表示字符串,而單雙引號皆不能跨行。

29.a = "你好 中國 ",去除多余空格只留一個空格。

答:re.sub(’ +’,’ ', a)

列表

30.已知 AList = [1,2,3,1,2],對 AList 列表元素去重,寫出具體過程。

答:list(set(AList)) 可以利用集合中不能存在相同元素的特性,利用類型轉換進行去重。也可使用循環遍歷進行判斷。

31.如何實現 “1,2,3” 變成 [“1”,“2”,“3”]

答:“1,2,3”.split(’,’)

32.給定兩個 list,A 和 B,找出相同元素和不同元素

答:如果列表內不存在重復元素的話,可以轉化為集合,利用集合的 “&&” 找出相同元素,再利用 “a-b","a^b"找出不同元素。若列表內存在重復元素,暫時只能想到兩個for循環進行查找。

33.[[1,2],[3,4],[5,6]]一行代碼展開該列表,得出[1,2,3,4,5,6]

答:sum([[1,2],[3,4],[5,6]], [])

34.合并列表[1,5,7,9]和[2,2,6,8]

答:這題沒理解,字面上合并相加就好了吧。。。。難道暗示要排序?

35.如何打亂一個列表的元素?

答:使用random庫中的random.shuffle(list)函數,該函數無返回值,會將傳入的參數列表隨機排序。

字典

36.字典操作中 del 和 pop 有什么區別

答:pop()函數會返回刪除的值,而del()函數直接刪除元素,沒有返回值。

37.按照字典的內的年齡排序

d1 = [

{‘name’:‘alice’, ‘age’:38},

{‘name’:‘bob’, ‘age’:18},

{‘name’:‘Carl’, ‘age’:28},

]

答:d1.sort(key=lambda x: x[‘age’])

38.請合并下面兩個字典 a = {“A”:1,“B”:2},b = {“C”:3,“D”:4}

答:a.update(b)。

39.如何使用生成式的方式生成一個字典,寫一段功能代碼。

答:這道題不能理解題目意思,暫時不答。

40.如何把元組(“a”,“b”)和元組(1,2),變為字典{“a”:1,“b”:2}

答:zip((“a”,“b”),(1,2))

綜合

41.Python 常用的數據結構的類型及其特性?

A:{1:0,2:0,3:0}

B:{“a”:0, “b”:0, “c”:0}

C: {(1,2):0, (2,3):0}

D: {[1,2]:0, [2,3]:0}

答:A為字典類型,無序key值不可重復,通過key值來取對應的value值。B也是字典類型,key值為string類型,也是通過dict[‘key’]的方式來取值。C也為字典類型,但key為元組

42.如何將元組(“A”,“B”)和元組(1,2),合并成字典{“A”:1,“B”:2}

答:dict(zip((“A”,“B”), (1,2)))即可。

43.Python 里面如何實現 tuple 和 list 的轉換?

答:使用tuple()和list()函數實現轉換

44.我們知道對于列表可以使用切片操作進行部分元素的選擇,那么如何對生成器類型的對象實現相同的功能呢?

答:使用自帶的itertools庫進行實現,具體實現方式 itertools.islice(生成器對象,起始位置,結束位置),即可實現切片功能。

45.請將[i for i in range(3)]改成生成器

答: iter(range(3))

46.a="hello"和 b="你好"編碼成 bytes 類型

答:a.encode()

47.下面的代碼輸出結果是什么?

a = (1,2,3,[4,5,6,7],8)

a[2] = 2

答:報錯,元組元素不支持修改。

48.下面的代碼輸出的結果是什么?

a = (1,2,3,[4,5,6,7],8)

a[5] = 2

答:報錯,列表看作是一個元素,5已經下標越界。

操作類題目

49.Python 交換兩個變量的值

答:語法糖 a, b = b, a。

50.在讀文件操作的時候會使用 read、readline 或者 readlines,簡述它們各自的作用

答:read將整個文本都讀取為一個字符串,占用內存大,readline讀取為一個生成器,支持遍歷和迭代,占用空間小。readlines將文本讀取為列表,占用空間大。

總結

以上是生活随笔為你收集整理的python爬虫面试问题及答案_关于Python爬虫面试50道题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。