這篇文章主要講解了“Python的高頻面試題有哪些”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Python的高頻面試題有哪些”吧!
創(chuàng)新互聯是一家專注于網站設計制作、網站設計與策劃設計,鎮(zhèn)雄網站建設哪家好?創(chuàng)新互聯做網站,專注于網站建設十載,網設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:鎮(zhèn)雄等地區(qū)。鎮(zhèn)雄做網站價格咨詢:028-86922220
一. 如何提高爬取效率?
爬蟲下載慢主要原因是阻塞等待發(fā)往網站的請求和網站返回
1,采用異步與多線程,擴大電腦的cpu利用率; 2,采用消息隊列模式 3,提高帶寬
二. 說說什么是爬蟲協議?
Robots協議(也稱為爬蟲協議、爬蟲規(guī)則、機器人協議等)也就是robots.txt,網站通過robots協議告訴搜索引擎哪些頁面可以抓取,哪些頁面不能抓取。
Robots協議是網站國際互聯網界通行的道德規(guī)范,其目的是保護網站數據和敏感信息、確保用戶個人信息和隱私不被侵犯。因其不是命令,故需要搜索引擎自覺遵守。
三. 如果對方網站反爬取,封IP了怎么辦?
放慢抓取熟速度,減小對目標網站造成的壓力,但是這樣會減少單位時間內的數據抓取量
使用代理IP(免費的可能不穩(wěn)定,收費的可能不劃算)
四. 有一個jsonline格式的文件file
def get_lines(): with open('file.txt','rb') as f: return f.readlines() if __name__ == '__main__': for e in get_lines(): process(e) # 處理每一行數據
現在要處理一個大小為10G的文件,但是內存只有4G,如果在只修改get_lines 函數而其他代碼保持不變的情況下,應該如何實現?需要考慮的問題都有那些?
def get_lines(): with open('file.txt','rb') as f: for i in f: yield i
Pandaaaa906提供的方法
from mmap import mmap def get_lines(fp): with open(fp,"r+") as f: m = mmap(f.fileno(), 0) tmp = 0 for i, char in enumerate(m): if char==b"\n": yield m[tmp:i+1].decode() tmp = i+1 if __name__=="__main__": for i in get_lines("fp_some_huge_file"): print(i)
要考慮的問題有:內存只有4G無法一次性讀入10G文件,需要分批讀入分批讀入數據要記錄每次讀入數據的位置。分批每次讀取數據的大小,太小會在讀取操作花費過多時間。
五. 補充缺失的代碼
def print_directory_contents(sPath): """ 這個函數接收文件夾的名稱作為輸入參數 返回該文件夾中文件的路徑 以及其包含文件夾中文件的路徑 """ import os for s_child in os.listdir(s_path): s_child_path = os.path.join(s_path, s_child) if os.path.isdir(s_child_path): print_directory_contents(s_child_path) else: print(s_child_path)
六. 輸入日期, 判斷這一天是這一年的第幾天?
import datetime def dayofyear(): year = input("請輸入年份: ") month = input("請輸入月份: ") day = input("請輸入天: ") date1 = datetime.date(year=int(year),month=int(month),day=int(day)) date2 = datetime.date(year=int(year),month=1,day=1) return (date1-date2).days+1
七. 打亂一個排好序的list對象alist?
import random alist = [1,2,3,4,5] random.shuffle(alist) print(alist)
八. 現有字典 d= {‘a’:24,‘g’:52,‘i’:12,‘k’:33}請按value值進行排序?
sorted(d.items(),key=lambda x:x[1])
九. 字典推導式
d = {key:value for (key,value) in iterable}
十. 請反轉字符串 “aStr”?
print("aStr"[::-1])
感謝各位的閱讀,以上就是“Python的高頻面試題有哪些”的內容了,經過本文的學習后,相信大家對Python的高頻面試題有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯,小編將為大家推送更多相關知識點的文章,歡迎關注!
當前題目:Python的高頻面試題有哪些
分享地址:http://jinyejixie.com/article46/gdjphg.html
成都網站建設公司_創(chuàng)新互聯,為您提供網站設計、微信小程序、關鍵詞優(yōu)化、定制網站、商城網站、網站排名
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯