python網絡爬蟲面試題,搞定這套Python爬蟲面試題(面試會so easy)

搞定這套Python爬蟲面試題(面試會so easy)

來源:中文源碼網????瀏覽: 次????日期:2019年11月5日

【下載文檔:??搞定這套Python爬蟲面試題(面試會so easy).txt?】

(友情提示:右鍵點上行txt文檔名->目標另存為)

搞定這套Python爬蟲面試題(面試會so easy)先來一份完整的爬蟲工程師面試考點:一、 Python 基本功

1、簡述Python 的特點和優點

Python 是一門開源的解釋性語言,相比 Java C++ 等語言,Python 具有動態特性,非常靈活。

2、Python 有哪些數據類型?

Python 有 6 種內置的數據類型,其中不可變數據類型是Number(數字), String(字符串), Tuple(元組),可變數據類型是 List(列表),Dict(字典),Set(集合)。

3、列表和元組的區別

列表和元組都是可迭代對象,能夠對其進行循環、切片等,但元組 tuple 是不可變的。元組不可變的特性,使得它可以成為字典 Dict 中的鍵。

4、Python 是如何運行的

CPython:

Python 程序運行時,會先進行編譯,將 .py 文件中的代碼編譯成字節碼(byte code),編譯結果儲存在內存的 PyCodeObject 中,然后由 Python 虛擬機解釋運行。當程序運行結束后,Python 解釋器會將 PyCodeObject 保存到 pyc 文件中。每一次運行時 Python 都會先尋找與文件同名的 pyc 文件,如果 pyc 存在則比對修改記錄,根據修改記錄決定直接運行或再次編譯后運行,最后生成 pyc 文件 。

5、Python 運行速度慢的原因

a). Python 不是強類型的語言,所以解釋器運行時遇到變量以及數據類型轉換、比較操作、引用變量時都需要檢查其數據類型。

b). Python 的編譯器啟動速度比 JAVA 快,但幾乎每次都要啟動編譯。

c). Python 的對象模型會導致訪問內存效率變低。Numpy 的指針指向緩存區數據的值,而 Python 的指針指向緩存對象,再通過緩存對象指向數據:6、面對 Python 慢的問題,有什么解決辦法

a). 可以使用其他的解釋器,比如 PyPy 和 Jython 等。

b). 如果對性能要求較高且靜態類型變量較多的應用程序,可以使用 CPython。

c). 對于 IO 操作多的應用程序,Python 提供 asyncio 模塊提高異步能力。

7、描述一下全局解釋器鎖 GIL

每個線程在執行時候都需要先獲取 GIL,保證同一時刻只有一個線程可以執行代碼,即同一時刻只有一個線程使用 CPU,也就是說多線程并不是真正意義上的同時執行。但是在 IO 操作時,是可以釋放鎖的(這也是 Python 能夠異步的原因)。而且如果想要利用多核 CPU,那么可以使用多進程。

8、深拷貝 淺拷貝

深拷貝是將對象本身復制給另一個對象,淺拷貝則是將對象的引用復制給另一個對象。所以當復制后的對象改變時,深拷貝的原對象值不會改變,而淺拷貝原對象的值會被改變。

9、is 和 == 的區別

is 表示的是對象標示符(object identity),而 == 表示的是相等(equality)。

is 的作用是用來檢查對象的標示符是否一致,也就是比較兩個對象在內存中的地址是否一樣,而 == 是用來檢查兩個對象是否相等。但是為了提高系統性能,對于較小的字符串 Python 會保留其值的一個副本,當創建新的字符串的時候直接指向該副本即可。如:

a = 8

b = 8

a is b

10、文件讀寫

簡述文件讀取時 read 、readline、readlines 的區別和作用

他們的區別除了讀取內容范圍不同外,返回的內容類型也不同。

read()會讀取整個文件,將讀取到底的文件內容放到一個字符串變量,返回 str 類型。

readline()讀取一行內容,放到一個字符串變量,返回 str 類型。

readlines() 讀取文件所有內容,按行為單位放到一個列表中,返回 list 類型。

11、請用一行代碼實現

請分別使用匿名函數和推導式這兩種方式將 [0, 1, 2, 3, 4, 5] 中的元素求乘積,并打印輸出元組。

print(tuple(map(lambda x: x * x, [0, 1, 2, 3, 4, 5])))

print(tuple(i*i for i in [0, 1, 2, 3, 4, 5]))12、請用一行代碼實現

用 reduce 計算 n 的階乘(n!=1×2×3×...×n)

print(reduce(lambda x, y: x*y, range(1, n)))13、請用一行代碼實現

篩選并打印輸出 100 以內能被 3 整除的數的集合

print(set(filter(lambda n: n % 3 == 0, range(1, 100))))14、請用一行代碼實現

text = 'Obj{"Name": "pic", "data": [{"name": "async", "number": 9, "price": "$3500"}, {"name": "Wade", "number": 3, "price": "$5500"}], "Team": "Hot"'打印文本中的球員身價元組,如 ( 5500)

print(tuple(i.get("price") for i in json.loads(re.search(r'[(.*)]', text).group(0))))15、請寫出遞歸的基本骨架

def recursions(n):

if n == 1:

# 退出條件

return 1

# 繼續遞歸

return n * recursions(n - 1)16、切片

請寫出下方輸出結果

tpl = [0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95]

print(tpl[3:])

print(tpl[:3])

print(tpl[::5])

print(tpl[-3])

print(tpl[3])

print(tpl[::-5])

print(tpl[:])

del tpl[3:]

print(tpl)

print(tpl.pop())

tpl.insert(3, 3)

print(tpl)

[15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95]

[0, 5, 10]

[0, 25, 50, 75]

85

15

[95, 70, 45, 20]

[0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95]

[0, 5, 10]

10

[0, 5, 3]17、文件路徑

打印輸出當前文件所在目錄路徑

import os

print(os.path.dirname(os.path.abspath(__file__)))打印輸出當前文件路徑

import os

print(os.path.abspath(__file__))打印輸出當前文件上兩層文件目錄路徑

import os

print(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))18、請寫出運行結果,并回答問題

tpl = (1, 2, 3, 4, 5)

apl = (6, 7, 8, 9)

print(tpl.__add__(apl))問題:tpl 的值發生變化了嗎?

運行結果如下:

(1, 2, 3, 4, 5, 6, 7, 8, 9)

答:元組是不可變的,它是生成新的對象

19、請寫出運行結果,并回答問題

name = ('James', 'Wade', 'Kobe')

team = ['A', 'B', 'C']

tpl = {name: team}

print(tpl)

apl = {team: name}

print(apl)問題:這段代碼能運行完畢嗎?為什么?它的運行結果是?

答:這段代碼不能完整運行,它會在 apl 處拋出異常,因為字典的鍵只能是不可變對象,而 list 是可變的,所以不能作為字典的鍵。運行結果是:

{('James', 'Wade', 'Kobe'): ['A', 'B', 'C']}

TypeError20、裝飾器

請寫出裝飾器代碼骨架

def log(func):

def wrapper(*args, **kw):

print('call %s():' % func.__name__)

return func(*args, **kw)

return wrapper簡述裝飾器在 Python 中的作用:

在不改動原函數代碼的情況下,為其增加新的功能。

21、多進程 多線程

多進程更穩定還是多線程更穩定?為什么?

多進程更穩定,它們是獨立運行的,不會因為一個崩潰而影響其他進程。

多線程的致命缺點是什么?

因為所有線程共享進程的內存,所以任何一個線程掛掉都可能直接造成整個進程崩潰。

進程間通信有哪些方式?

共享變量、隊列、管道。

好了,本文就給大家介紹到這里,祝大家面試so easy!

親,試試微信掃碼分享本頁!?*^_^*

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/454734.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/454734.shtml
英文地址,請注明出處:http://en.pswp.cn/news/454734.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

fastjson與spring mvc整合的配置

fastjson 是阿里巴巴開發的開源json解析組件&#xff0c;方便于通過java來生成和解析json格式的字符串和對象。 fastjson可以對Spring的返回數據進行json轉換&#xff08;SpringMVC的ResponseBody注釋&#xff09; 以下附上與spring mvc整合的xml配置&#xff1a; <mvc:anno…

Python 框架 之 Scrapy 爬蟲(一)

在編寫爬蟲時&#xff0c;性能的消耗主要在IO請求中&#xff0c;當單進程單線程模式下請求URL時必然會引起等待&#xff0c;從而使得請求整體變慢。 1、同步執行 import requestsdef fetch_async(url):response requests.get(url)return responseurl_list [http://www.gith…

編程新手導論(轉載)

第二部分 導論&#xff0c;這一部分主要是關于編程的導論&#xff0c; (要懂得一點思想具備一點常識)《設計&#xff0c;編碼&#xff0c;&#xff0c;與軟工》&#xff08;編程與思想&#xff09;這一章解釋了三種思想&#xff0c;原語&#xff0c;抽象&#xff0c;組合&#…

如何讓電腦成為看圖說話的高手?計算機視覺頂會ICCV論文解讀

ICCV&#xff0c;被譽為計算機視覺領域三大頂級會議之一。作為計算機視覺領域最高級別的會議之一&#xff0c;其論文集代表了計算機視覺領域最新的發展方向和水平。阿里巴巴在今年的大會上有多篇論文入選&#xff0c;本篇所解讀的論文是阿里iDST與多家機構合作的入選論文之一&a…

canvas繪制線條1像素的問題

http://jo2.org/html5-canvas%E7%94%BB%E5%9B%BE3%EF%BC%9A1px%E7%BA%BF%E6%9D%A1%E6%A8%A1%E7%B3%8A%E9%97%AE%E9%A2%98/轉載于:https://www.cnblogs.com/XIE7654/p/7493315.html

php汽車找車位,遭遇到車多車位少 教你如何快速找到停車位

[摘要]車主們大多時間會穿梭在市區&#xff0c;到了目的地后那就先找停車位&#xff0c;現在市區寸土寸金&#xff0c;一個停車位面積要占幾平米呢&#xff0c;所以停車位基本是不夠用的。下面和大家聊聊怎么找合適的停車位。車主們大多時間會穿梭在市區&#xff0c;去商場購物…

Python 框架 之 Scrapy 爬蟲(二)

Scrapy是一個為了爬取網站數據&#xff0c;提取結構性數據而編寫的應用框架。 其可以應用在數據挖掘&#xff0c;信息處理或存儲歷史數據等一系列的程序中。其最初是為了頁面抓取 (更確切來說, 網絡抓取)所設計的&#xff0c; 也可以應用在獲取API所返回的數據(例如 Amazon Ass…

十六進制透明度參照表

00%FF&#xff08;不透明&#xff09; 5%F2 10%E5 15%D8 20%CC 25%BF 30%B2 35%A5 40%99 45%8c 50%7F 55%72 60%66 65%59 70%4c 75%3F 80%33 85%21 90%19 95%0c 100%00&#xff08;全透明&#xff09;轉載于:http…

lamp和php,[LAMP]Apache和PHP的結合

在LAMP架構中&#xff0c;Apache通過PHP模塊與Mysql建立連接&#xff0c;讀寫數據。那么配置Apache和PHP結合的步驟是怎么操作的呢&#xff1f;1、修改http.conf文件[rootjuispan ~]# cat /usr/local/apache2.4/conf/httpd.conf......#ServerName......AllowOverride noneRequi…

Day-5: Python高級特性

python的理念是&#xff1a;簡單、優雅。所以&#xff0c;在Python中集成了許多經常要使用的高級特性&#xff0c;以此來簡化代碼。 切片&#xff1a;對于一個list或者tuple&#xff0c;取其中一段的元素&#xff0c;稱為切片&#xff08;Slice&#xff09;。 L[start:end]表示…

前端之 XMLHttpRequest

XMLHttpRequest 和AJAX的愛恨情仇 AJAX 是 asynchronous javascript and XML 的簡寫&#xff0c;中文翻譯是異步的 javascript 和 XML&#xff0c;這一技術能夠向服務器請求額外的數據而無須卸載頁面&#xff0c;會帶來更好的用戶體驗。雖然名字中包含 XML &#xff0c;但 AJAX…

makefile——小試牛刀

//a.h,包含頭文件stdio.h,并且定義一個函數print #include<stdio.h> void print();//b.c&#xff0c;包含頭文件a.h&#xff0c;然后就可以寫print函數的內容了 #include"a.h" void print(){ printf("who are you\n"); }//c.c&#xff0c;包含頭文件…

云電腦是什么_云電腦和我們現在平時用的電腦有什么區別?

&#x1f340;溫馨提示&#x1f340;公眾號推送改版&#xff0c;為了不讓您錯過【掌中IT發燒友圈】每天的精彩推送&#xff0c;切記將本號設置星標哦&#xff01;~01云電腦&#xff0c;是5G云服務時代的電腦新概念&#xff0c;是電腦的新的一種形態。從具體操作使用上來講&…

PHP如何用while實現循環,PHP 循環 -

PHP 循環 - While 循環循環執行代碼塊指定的次數&#xff0c;或者當指定的條件為真時循環執行代碼塊。PHP 循環在您編寫代碼時&#xff0c;您經常需要讓相同的代碼塊一次又一次地重復運行。我們可以在代碼中使用循環語句來完成這個任務。在 PHP 中&#xff0c;提供了下列循環語…

比較全的C語言面試題

1. static有什么用途&#xff1f;&#xff08;請至少說明兩種&#xff09; 1).限制變量的作用域 2).設置變量的存儲域 2. 引用與指針有什么區別&#xff1f; 1) 引用必須被初始化&#xff0c;指針不必。 2) 引用初始化以后不能被改變&#xff0c;指針可以改變所指的對象…

PHP爬取歷史天氣

PHP爬取歷史天氣 PHP作為宇宙第一語言&#xff0c;爬蟲也是非常方便&#xff0c;這里爬取的是從天氣網獲得中國城市歷史天氣統計結果。 程序架構 main.php <?phpinclude_once("./parser.php");include_once("./storer.php");#解析器和存儲器見下文$par…

Python 第三方庫之docx

日常上官網 https://python-docx.readthedocs.io/en/latest/ 一、安裝 pip install python-docx 二、寫入word word 中主要有兩種用文本格式等級&#xff1a;塊等級&#xff08;block-level&#xff09;和內聯等級&#xff08;inline-level&#xff09;word 中大部分內容都…

Unity AI副總裁Danny Lange:如何用AI助推游戲行業?

本文講的是Unity AI副總裁Danny Lange&#xff1a;如何用AI助推游戲行業&#xff1f; &#xff0c;10月26日&#xff0c;在加州山景城舉辦的ACMMM 2017大會進入正會第三天。在會上&#xff0c;Unity Technology負責AI與機器學習的副總裁Danny Longe進行了題為《Bringing Gaming…

SPI 讀取不同長度 寄存器_SPI協議,MCP2515裸機驅動詳解

SPI概述Serial Peripheral interface 通用串行外圍設備接口是Motorola首先在其MC68HCXX系列處理器上定義的。SPI接口主要應用在 EEPROM&#xff0c;FLASH&#xff0c;實時時鐘&#xff0c;AD轉換器&#xff0c;還有數字信號處理器和數字信號解碼器之間。SPI&#xff0c;是一種高…

oracle并發執行max,跪求大量并發執行insert into select語句的方案

現在有數十萬張表要從A庫通過insert into tablename select * from tablenamedblink的方式導入到B庫中。B機上80個cpu&#xff0c;160G內存。希望能夠大量并發執行。怎么寫腳本呢&#xff1f;誰有這方面的經驗&#xff0c;麻煩指點一下。謝謝。下面是我的腳本&#xff1a;#!/us…