python中你可以使用list模擬棧數(shù)據(jù)結(jié)構(gòu),list自帶pop函數(shù),默認(rèn)為獲取最后一個(gè)元素,但是可以通過指定索引值pop(i),獲取指定位置的元素。
10年積累的成都做網(wǎng)站、網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先做網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有原州免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
如果元素索引錯(cuò)誤,拋出IndexError異常。
“原因”是無從考究的,我們只能列出其區(qū)別和聯(lián)系:
聯(lián)系:都能刪除索引為1的個(gè)元素
區(qū)別:pop函數(shù)是list類的成員函數(shù),并且有返回值,就是刪除掉的這個(gè)元素;del是全局函數(shù),沒有返回值。
如果題主忘了什么叫返回值,可以看下面這個(gè)例子:
a?=?[1,?2,?3,?4]
b?=?a.pop(1)?#?得到pop函數(shù)的返回值:b=1
a.pop(1)?#?這樣也是可以的,我們可以選擇忽略pop函數(shù)的返回值
del(a[1])?#?這時(shí)a里只剩下一個(gè)元素
而這樣則是非法的:
a?=?[1,?2,?3]
b?=?del(a[1])??#?因?yàn)閐el函數(shù)不能有返回值
所以,如果忽略掉可否有返回值這一點(diǎn),這兩個(gè)用法是等效的。
由上篇文章我們已經(jīng)得知郵件從發(fā)送到接收的過程:
發(fā)件人-MUA-MTA-若干MTA-MDA-MUA-收件人
本節(jié)接收郵件主要就是編寫一個(gè) MUA 客戶端,從 MDA 將郵件取回本地。
收取郵件最常用的是 POP協(xié)議 ,目前版本是第三版,也稱 POP3 。python內(nèi)置了 poplib 模塊,支持POP3協(xié)議。
回想上一節(jié) SMTP ,我們對(duì)要發(fā)送的郵件內(nèi)容進(jìn)行了各種編碼,包括添加MIME header,編碼之后再進(jìn)行發(fā)送。
因此,我們通過POP3協(xié)議接收的也不是原內(nèi)容,而是經(jīng)過一系列編碼等處理的文本。
所以,要想把POP3收取的文本變?yōu)榭砷喿x的郵件對(duì)象,就需要利用 email 模塊對(duì)原始郵件進(jìn)行解析。
所以,郵件收取的流程就是:
由上一篇 文章 最后總結(jié)部分可知。郵件由字符到發(fā)送到網(wǎng)絡(luò)經(jīng)歷了如下的格式轉(zhuǎn)化:
純文本:
str-bytes-base64-str-bytes
二進(jìn)制文件:
binary code-base64-str-bytes
我們解析郵件也是按這個(gè)思路,逆序解析出內(nèi)容。
這里的 decode('utf-8') 先把字節(jié)流轉(zhuǎn)化為字符串,再將字符串轉(zhuǎn)化為 message 結(jié)構(gòu)的對(duì)象。這步與發(fā)送郵件的 as_string 函數(shù)相反。
先從上一節(jié)結(jié)構(gòu)化的 msg 中取出信件頭,打印出來。
如果是 multipart 結(jié)構(gòu), get_payload 函數(shù)會(huì)返回一個(gè)包含不同part的list,然后對(duì)每一part遞歸調(diào)用 print_info ,打印子信件頭和子信件內(nèi)容。
不是 multipart 時(shí),之后再依據(jù) Content-Type 作不同處理:
如果是 text :
利用 get_payload(decode = Ture) 取出子信件的內(nèi)容, decode 為True,則按照 Content-Transfer-Type 將 base64 或 QP 解碼為 bytes 。
再 guess_charset 猜出編碼方式,之后將其解碼為字符顯示。
如果不是 Text 對(duì)象,則為附件:
打印出附件的 Content-Type 。
a = [1, 2, 3, 4]
b = a.pop(1) # 得到pop函數(shù)的返回值:b=1
a.pop(1) # 這樣也是可以的,我們可以選擇忽略pop函數(shù)的返回值
del(a[1]) # 這時(shí)a里只剩下一個(gè)元素
而這樣則是非法的:
1
2
a = [1, 2, 3]
b = del(a[1]) # 因?yàn)閐el函數(shù)不能有返回值
所以,如果忽略掉可否有返回值這一點(diǎn),這兩個(gè)用法是等效的。
標(biāo)題名稱:python函數(shù)pop Python函數(shù)powerm,n用于計(jì)算整數(shù)m的n次方
文章路徑:http://m.kartarina.com/article48/hgpohp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、做網(wǎng)站、網(wǎng)站營銷、品牌網(wǎng)站制作、Google、網(wǎng)站導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)