亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

Python3 上 bytes 和 str

NotFound / 3350人閱讀

摘要:最近學(xué),在上上這門課,就順藤摸瓜地讀了這本書。中有和兩種類型,而已經(jīng)嚴(yán)格區(qū)分了和兩種數(shù)據(jù)類型,為原來(lái)的,代替了之前的。而使用類型,實(shí)質(zhì)上是告訴,不需要它幫你自動(dòng)地完成編碼和解碼的工作,而是用戶自己手動(dòng)進(jìn)行,并指定編碼格式。

最近學(xué) Python,在 coursera 上上 Programming for Everybody (Getting Started with Python) 這門課,就順藤摸瓜地讀了 python for informatics 這本書。書上用的 Python2 ,電腦裝的3,有些地方不一樣。例如 str 的 translate 方法在刪除特定字符時(shí)死活不對(duì)。

調(diào)出help查了一下。

>>> help(str.translate)
Help on method_descriptor:

translate(...)
    S.translate(table) -> str
    
    Return a copy of the string S in which each character has been mapped
    through the given translation table. The table must implement
    lookup/indexing via __getitem__, for instance a dictionary or list,
    mapping Unicode ordinals to Unicode ordinals, strings, or None. If
    this operation raises LookupError, the character is left untouched.
    Characters mapped to None are deleted.

沒(méi)有 deletechars 參數(shù),難怪會(huì)有報(bào)錯(cuò)
TypeError - Translate takes one argument.(2 given)
而另一個(gè)數(shù)據(jù)類型bytes是有的。

>>> help(bytes.translate)
Help on method_descriptor:

translate(...)
    translate(table, [deletechars])
    Return a copy with each character mapped by the given translation table.
    
      table
        Translation table, which must be a bytes object of length 256.
    
    All characters occurring in the optional argument deletechars are removed.
    The remaining characters are mapped through the given translation table.

Python2 中有 str 和 Unicode 兩種類型,而 Python3已經(jīng)嚴(yán)格區(qū)分了 bytes 和 str 兩種數(shù)據(jù)類型,str為原來(lái)的unicode,bytes代替了之前的str。

在將字符串存入磁盤和從磁盤讀取字符串的過(guò)程中,Python 自動(dòng)地幫你完成了編碼和解碼的工作,你不需要關(guān)心它的過(guò)程,例如你能把一個(gè)中文賦值給字符串。而使用 bytes 類型,實(shí)質(zhì)上是告訴 Python,不需要它幫你自動(dòng)地完成編碼和解碼的工作,而是用戶自己手動(dòng)進(jìn)行,并指定編碼格式。

現(xiàn)在你不能在需要 bytes 類型參數(shù)的時(shí)候使用 str 參數(shù),反之亦然。str.translate(...)就不適合使用deletechar,因?yàn)橐粋€(gè)Unicode字符經(jīng)過(guò)編碼后可能會(huì)和一些英文ACSII碼混淆,而bytes中對(duì)單個(gè)字節(jié)操作不會(huì)有這種問(wèn)題。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/44216.html

相關(guān)文章

  • 聊聊Python 3 的字符串:str bytes 的區(qū)別

    摘要:的字符串有兩種和,的字符串也有兩種和。不同字符的不同表現(xiàn),讓的和顯得撲朔迷離。在中,嚴(yán)格區(qū)分了和,不同類型之間操作就會(huì)拋出的異常。和之間的轉(zhuǎn)換一圖勝千言和的相互轉(zhuǎn)換指的是具體的編碼規(guī)則的名稱,對(duì)于中文來(lái)說(shuō),它可以是這些值等等。 Python2的字符串有兩種:str 和 unicode,Python3的字符串也有兩種:str 和 bytes。Python2 的 str 相當(dāng)于 Pytho...

    AWang 評(píng)論0 收藏0
  • unicodeutf8 —— 從一個(gè)遍歷文件名的腳本,談?wù)剬?duì)Python2Python3中字符編

    摘要:如果傳一個(gè)中文,下和下編碼分別是和,可以自己用打印看看文件中寫死,本來(lái)理解是跟這個(gè)文件本身編碼有關(guān),但文件編碼同樣是的情況下,下打印了的超集,下仍然是。 對(duì)編碼問(wèn)題一直一知半解,之前也是得過(guò)且過(guò),正好有個(gè)同事要我?guī)兔憘€(gè)腳本,涉及這方面的問(wèn)題,借這個(gè)契機(jī)研究了一下. 先貼幾篇比較好的: 1.阮老師的上古文章(07年…),雖然古老但對(duì)理解幫助很大,從最基礎(chǔ)講起,邏輯清晰易理解. (ps:...

    寵來(lái)也 評(píng)論0 收藏0
  • 詳解python2python3的區(qū)別

    摘要:認(rèn)為有極大的優(yōu)化空間,在字符串和整形操作上可以取得很好的優(yōu)化結(jié)果。的和方法返回迭代器,而之前的等函數(shù)都被廢棄。python有兩個(gè)主要的版本,python2 和 python3 ,但是python又不同于其他語(yǔ)言,向下兼容,python3是不向下兼容的,但是絕大多數(shù)組件和擴(kuò)展都是基于python2的,下面就來(lái)總結(jié)一下python2和python3的區(qū)別。 ? 1.性能? Py3.0運(yùn)...

    Sourcelink 評(píng)論0 收藏0
  • 詳解python2python3的區(qū)別

    摘要:認(rèn)為有極大的優(yōu)化空間,在字符串和整形操作上可以取得很好的優(yōu)化結(jié)果。的和方法返回迭代器,而之前的等函數(shù)都被廢棄。python有兩個(gè)主要的版本,python2 和 python3 ,但是python又不同于其他語(yǔ)言,向下兼容,python3是不向下兼容的,但是絕大多數(shù)組件和擴(kuò)展都是基于python2的,下面就來(lái)總結(jié)一下python2和python3的區(qū)別。 ? 1.性能? Py3.0運(yùn)...

    Martin91 評(píng)論0 收藏0
  • python3.5簡(jiǎn)單爬蟲實(shí)例---檢測(cè)路由器流量并寫入txt

    摘要:寫在前面本人的所有文章只適合善于使用百度的人,因?yàn)樗谢A(chǔ)知識(shí)個(gè)個(gè)博客復(fù)制粘貼了無(wú)數(shù)遍,我這里均不會(huì)詳細(xì)講述。 寫在前面 本人的所有文章只適合善于使用百度的人,因?yàn)樗谢A(chǔ)知識(shí)個(gè)個(gè)博客復(fù)制粘貼了無(wú)數(shù)遍,我這里均不會(huì)詳細(xì)講述。 在這里我表示所有不經(jīng)驗(yàn)證的轉(zhuǎn)載都是耍流氓,把一篇篇錯(cuò)誤的文章轉(zhuǎn)載的到處都是,不知道浪費(fèi)了多少人的時(shí)間精力去反復(fù)調(diào)試錯(cuò)誤的代碼,尤其是對(duì)初學(xué)者有極大的打擊性。 大家...

    FleyX 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<