欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python中的字符串操作和編碼Unicode詳解

 更新時間:2017年01月18日 11:14:52   作者:jessonsh  
其實字符串也是一種數(shù)據(jù)類型,但是,字符串比較特殊的是還有一個編碼問題。下面這篇文章主要給大家介紹了Python中的字符串操作和編碼Unicode詳解的相關資料,需要的朋友可以參考借鑒,下面來一起看看吧。

本文主要給大家介紹了關于 Python中的字符串操作和編碼Unicode的一些知識,下面話不多說,需要的朋友們下面來一起學習吧。

字符串類型

str:Unicode字符串。采用''或者r''構造的字符串均為str,單引號可以用雙引號或者三引號來代替。無論用哪種方式進行制定,在Python內部存儲時沒有區(qū)別。

bytes:二進制字符串。由于jpg等其他格式的文件不能用str進行顯示,所以才用bytes來表示,bytes的每個字節(jié)為一個0-255的數(shù)字。如果打印的時候,Python會把能夠用ASCII表示的部分顯示為ASCII,這樣方便閱讀。bytes幾乎支持除了格式化以外的所有str的方法,甚至包括了re模塊

bytearray() :二進制可原地變動的字符串。

utf-8編碼范圍

范圍 字節(jié)數(shù) 存儲格式
0x0000~0x007F (0 ~ 127) 1字節(jié) 0xxxxxxx
0x0080~0x07FF(128 ~ 2047) 2字節(jié) 110xxxxx 10xxxxxx
0x0800~FFFF(2048 ~ 65535)  3字節(jié) 1110xxxx 10xxxxxx 10xxxxxx
0x10000~1FFFFFF(65536 ~ 2097152) 4字節(jié) 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
0x2000000~0x3FFFFFF 5字節(jié) 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
0x4000000~0x7FFFFFFF)  6字節(jié) 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx

字節(jié)順序標記BOM

BOM是byte order marker的縮寫,

指定編碼寫入時的規(guī)則

Python在使用'utf-8'編碼寫入文件時不會寫入BOM頭,但是如果指定編碼'utf-8-sig'則會迫使Python寫入一個BOM頭。

使用'utf-16-be'不會寫入一個BOM頭,但是采用'utf-16'則會寫入一個BOM頭。

>>> open('h.txt','w',encoding='utf-8-sig').write('aaa')
3
>>> open('h.txt','rb').read()
b'\xef\xbb\xbfaaa'
>>> open('h.txt','w',encoding='utf-16').write('bbb')
3
>>> open('h.txt','rb').read()
b'\xff\xfeb\x00b\x00b\x00'
>>> open('hh.txt','w',encoding='utf-16-be').write('ccc')
3
>>> open('hh.txt','rb').read()
b'\x00c\x00c\x00c'
>>> open('h.txt','w',encoding='utf-8').write('ddd')
3
>>> open('h.txt','rb').read()
b'ddd'

讀取時的規(guī)則

如果指定了正確的編碼,那么BOM會忽略,否則BOM會顯示為亂碼或者返回異常。

>>> open('h.txt','r').read()
'锘縟dd'
>>> open('h.txt','r',encoding='utf-8-sig').read()
'ddd'

編碼與解碼

  • chr和ord
>>> ord('中') #20013
>>> chr(20013) #'中'
  • 把Unicode硬編碼進字符串中。

       '\xhh':用2位十六進制來表示一個字符

       '\uhhhh':用4位十六進制來表示一個字符:

       '\Uhhhhhhhh':用8位十六進制來表示一個字符

       >>> s = 'py\x74h\u4e2don' #'pyth中on'

str和bytes, bytearray進行轉換

str.encode(encoding='utf-8')

bytes(s,encoding='utf-8')

bytes.decode(encoding='utf-8')

str(B, encoding='utf-8')

bytearray(string, encoding='utf-8')

bytearray(bytes)

文檔編碼聲明

Python默認使用utf-8編碼。

# -*- coding: latin-1 -*- :表示聲明文檔為latin-1編碼。

幫助函數(shù)

sys.platform  #'win32'
sys.getdefaultencoding() # 'utf-8'
sys.byteorder  #'little'
s.isalnum()  #s表示字符串
s.isalpha()
s.isdecimal
s.isdigit()
s.isnumeric()
s.isprintable()
s.isspace()
s.isidentifier() #如果字符串可以用作變量名,那么返回True
s.islower()
s.isupper()
s.istitle()

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。

相關文章

  • Python GUI編程完整示例

    Python GUI編程完整示例

    這篇文章主要介紹了Python GUI編程,結合完整示例形式分析了Python基于tkinter模塊的GUI圖形界面編程相關實現(xiàn)技巧,需要的朋友可以參考下
    2019-04-04
  • 詳解python requests中的post請求的參數(shù)問題

    詳解python requests中的post請求的參數(shù)問題

    這篇文章主要介紹了詳解python requests中的post請求的參數(shù)問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • numpy中的log和ln函數(shù)解讀

    numpy中的log和ln函數(shù)解讀

    這篇文章主要介紹了numpy中的log和ln函數(shù)解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • Python實現(xiàn)多線程抓取妹子圖

    Python實現(xiàn)多線程抓取妹子圖

    本文給大家匯總了3款由Python制作的多線程批量抓取美圖的代碼,主要是將獲取圖片鏈接任務和下載圖片任務用線程分開來處理了,而且這次的爬蟲不僅僅可以爬第一頁的圖片鏈接的,有類似需求的小伙伴可以參考下。
    2015-08-08
  • Python的五個標準數(shù)據(jù)類型你認識幾個

    Python的五個標準數(shù)據(jù)類型你認識幾個

    這篇文章主要為大家詳細介紹了Python標準數(shù)據(jù)類型,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • 如何用Python實現(xiàn)八數(shù)碼問題

    如何用Python實現(xiàn)八數(shù)碼問題

    這篇文章主要給大家介紹了關于如何用Python實現(xiàn)八數(shù)碼問題的相關資料,八數(shù)碼問題是一種經(jīng)典的搜索問題,它的目標是將一個亂序的八數(shù)碼序列變成一個有序的八數(shù)碼序列,通常使用 A* 算法來解決,需要的朋友可以參考下
    2023-10-10
  • Python實現(xiàn)音頻提取的示例詳解

    Python實現(xiàn)音頻提取的示例詳解

    在日常生活中,有好聽的翻唱視頻或音樂視頻可以將其音頻分離保存到網(wǎng)易云或QQ音樂中隨時聽,然而大部分的音頻分離軟件需要下載和安裝,所以本文就來分享一種提取音頻的簡便方法吧
    2023-09-09
  • pytorch中的上采樣以及各種反操作,求逆操作詳解

    pytorch中的上采樣以及各種反操作,求逆操作詳解

    今天小編就為大家分享一篇pytorch中的上采樣以及各種反操作,求逆操作詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • Django框架驗證碼用法實例分析

    Django框架驗證碼用法實例分析

    這篇文章主要介紹了Django框架驗證碼用法,結合實例形式分析了Python Django框架驗證碼的功能、實現(xiàn)方法及相關操作技巧,需要的朋友可以參考下
    2019-05-05
  • 用Python獲取智慧校園每日課表并自動發(fā)送至郵箱

    用Python獲取智慧校園每日課表并自動發(fā)送至郵箱

    很多小伙伴們都在為查看智慧校園課表而煩惱,今天特地整理了這篇文章,不僅可以用Python獲取智慧校園每日課表,還會自動發(fā)至你郵箱,需要的朋友可以參考下
    2021-05-05

最新評論