最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python2和python3在處理字符串上的區(qū)別詳解

 更新時(shí)間:2019年05月29日 15:20:27   作者:HF9  
這篇文章主要介紹了python2和python3在處理字符串上的區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

python2和python3對(duì)于字符串的處理有很大的區(qū)別

熟悉了python2的寫法用python3時(shí)真的會(huì)遇到很多問題啊……

區(qū)別

python2中有一種類型叫做unicode型,例

type(u"a") => str型
type("a".decode('utf8')) => unicode型

兩者返回的類型都是unicode型

而在python3中,所有的字符串都是unicode,所以就不存在單獨(dú)的unicode型,全部都是字符串型

type(u"a") => str型
type("a".decode('utf8')) => 報(bào)錯(cuò),python3不能這樣寫

但是python3中多處一種字符串

type(b'132') => byte型

而在python2中這樣寫就會(huì)報(bào)錯(cuò)

所以顯而易見,decode和encode的使用也會(huì)有很大的區(qū)別

python2中的decode是將str型轉(zhuǎn)換為unicode型

python3中的decode是將byte型轉(zhuǎn)換為str型

使用

在使用python3寫爬蟲時(shí),有時(shí)候會(huì)遇到這樣的錯(cuò)誤

'gbk' codec can't encode character '\u30fb' in position 0: illegal multibyte sequence

遇到這樣的錯(cuò)誤就和上面的編碼問題連系起來了

你會(huì)發(fā)現(xiàn),明明自己設(shè)置的編碼是utf8,怎么會(huì)報(bào)一個(gè)gbk的錯(cuò)誤??

這個(gè)問題可能會(huì)在兩個(gè)地方出現(xiàn)(輸出時(shí),寫入文件時(shí)),其實(shí)這里設(shè)置的編碼并沒有問題,問題出在python3的字符串中,像上面說的,python3默認(rèn)所有字符串都是unicode型,在面對(duì)字符串時(shí),會(huì)首先按照unicode解析,自然會(huì)報(bào)錯(cuò)

那么,我們來轉(zhuǎn)換一下編碼(假設(shè)a是一個(gè)gbk編碼的數(shù)據(jù)流)

"a".decode('gbk')

將字符串按照gbk規(guī)則解碼

會(huì)發(fā)現(xiàn)依舊報(bào)錯(cuò),明明已經(jīng)改為gbk了啊……不著急,再進(jìn)行一次

"a".decode('gbk').encode('utf8').decode('utf8')

為什么寫的這么長(zhǎng)……就像上面說的,decode是將byte型轉(zhuǎn)為str型,而encode是將str型轉(zhuǎn)換為byte型,所以再進(jìn)行一次encode,decode就能夠使得字符串轉(zhuǎn)換編碼格式

但是當(dāng)你輸出時(shí),你會(huì)發(fā)現(xiàn)還是有問題

解決

我們回到開始

不輸出我們想要的字符串,發(fā)現(xiàn)沒有問題……問題出在哪?

沒錯(cuò),是print(),print在輸出時(shí)會(huì)默認(rèn)其中的字符時(shí)unicode編碼的字符串,而我們輸入了一個(gè)gbk編碼的字符串,所以就會(huì)出錯(cuò),所以,解決方法就是,不使用print……

但是print的使用有時(shí)候是不可避免的,所以在decode時(shí)加上一個(gè)ignore

"a".decode('gbk',errors='ignore')

此外,在打開或?qū)懭胛募r(shí)遇到的話,就需要加上encoding參數(shù)

with open("1.txt",'r',encoding='utf8') as a:

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 基于Python實(shí)現(xiàn)m3u8視頻下載

    基于Python實(shí)現(xiàn)m3u8視頻下載

    m3u8?是一種基于文本的媒體播放列表文件格式,通常用于指定流媒體播放器播放在線媒體流,本文將利用Python實(shí)現(xiàn)m3u8視頻下載器,感興趣的可以了解一下
    2023-05-05
  • FP-growth算法發(fā)現(xiàn)頻繁項(xiàng)集——構(gòu)建FP樹

    FP-growth算法發(fā)現(xiàn)頻繁項(xiàng)集——構(gòu)建FP樹

    常見的挖掘頻繁項(xiàng)集算法有兩類,一類是Apriori算法,另一類是FP-growth。Apriori通過不斷的構(gòu)造候選集、篩選候選集挖掘出頻繁項(xiàng)集,需要多次掃描原始數(shù)據(jù),當(dāng)原始數(shù)據(jù)較大時(shí),磁盤I/O次數(shù)太多,效率比較低下
    2021-06-06
  • 使用Python實(shí)現(xiàn)批量訪問URL并解析XML響應(yīng)功能

    使用Python實(shí)現(xiàn)批量訪問URL并解析XML響應(yīng)功能

    在現(xiàn)代Web開發(fā)和數(shù)據(jù)抓取中,批量訪問URL并解析響應(yīng)內(nèi)容是一個(gè)常見的需求,本文將詳細(xì)介紹如何使用Python實(shí)現(xiàn)批量訪問URL并解析XML響應(yīng)功能,文中有詳細(xì)的代碼示例供大家參考,需要的朋友可以參考下
    2025-01-01
  • python數(shù)據(jù)解析BeautifulSoup爬取三國(guó)演義章節(jié)示例

    python數(shù)據(jù)解析BeautifulSoup爬取三國(guó)演義章節(jié)示例

    這篇文章主要介紹了python數(shù)據(jù)解析BeautifulSoup爬取三國(guó)演義章節(jié)示例,文中附含詳細(xì)示例代碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-09-09
  • Python基礎(chǔ)-特殊方法整理詳解

    Python基礎(chǔ)-特殊方法整理詳解

    python中特殊方法(魔術(shù)方法)是被python解釋器調(diào)用的,我們自己不需要調(diào)用它們,我們統(tǒng)一使用內(nèi)置函數(shù)來使用。本篇文章將對(duì)其詳細(xì)介紹,感興趣的小伙伴可以參考下面文章的具體內(nèi)容
    2021-09-09
  • Python numpy 模塊介紹

    Python numpy 模塊介紹

    這篇文章主要介紹了Python numpy 模塊,在motplotlib的學(xué)習(xí)過程中,我們使用最多的就是numpy模塊。下面我們將使用numpy進(jìn)行創(chuàng)建數(shù)組、切片、索引、廣播等功能實(shí)操,需要的朋友可以參考一下
    2022-01-01
  • Python基于win32ui模塊創(chuàng)建彈出式菜單示例

    Python基于win32ui模塊創(chuàng)建彈出式菜單示例

    這篇文章主要介紹了Python基于win32ui模塊創(chuàng)建彈出式菜單,結(jié)合實(shí)例形式分析了Python使用win32ui模塊創(chuàng)建彈出式菜單的具體步驟與相關(guān)操作技巧,并附帶說明了win32ui模塊的安裝命令,需要的朋友可以參考下
    2018-05-05
  • python csv實(shí)時(shí)一條一條插入且表頭不重復(fù)問題

    python csv實(shí)時(shí)一條一條插入且表頭不重復(fù)問題

    這篇文章主要介紹了python csv實(shí)時(shí)一條一條插入且表頭不重復(fù)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • 關(guān)于PyCharm安裝后修改路徑名稱使其可重新打開的問題

    關(guān)于PyCharm安裝后修改路徑名稱使其可重新打開的問題

    這篇文章主要介紹了關(guān)于PyCharm安裝后修改路徑名稱使其可重新打開的問題,本文通過圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10
  • Python腳本實(shí)現(xiàn)音頻和視頻格式轉(zhuǎn)換

    Python腳本實(shí)現(xiàn)音頻和視頻格式轉(zhuǎn)換

    這篇文章主要為大家詳細(xì)介紹了Python如何通過腳本實(shí)現(xiàn)音頻和視頻格式轉(zhuǎn)換,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-03-03

最新評(píng)論

武城县| 五台县| 鸡西市| 治多县| 海口市| 萝北县| 光山县| 高平市| 盖州市| 贞丰县| 湟源县| 肇源县| 宿松县| 琼结县| 富平县| 沂源县| 汝阳县| 清河县| 金乡县| 芒康县| 丹东市| 彰武县| 天峻县| 金阳县| 健康| 武平县| 康平县| 灯塔市| 英吉沙县| 铅山县| 大石桥市| 芦溪县| 大兴区| 丹凤县| 堆龙德庆县| 华坪县| 石嘴山市| 黎城县| 黄平县| 太仓市| 乌恰县|