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

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

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

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

字符串類型

str:Unicode字符串。采用''或者r''構(gòu)造的字符串均為str,單引號可以用雙引號或者三引號來代替。無論用哪種方式進行制定,在Python內(nèi)部存儲時沒有區(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進行轉(zhuǎn)換

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()

總結(jié)

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

相關(guān)文章

  • Python K最近鄰從原理到實現(xiàn)的方法

    Python K最近鄰從原理到實現(xiàn)的方法

    這篇文章主要介紹了Python K最近鄰從原理到實現(xiàn)的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • 原來我一直安裝 Python 庫的姿勢都不對呀

    原來我一直安裝 Python 庫的姿勢都不對呀

    平常我都是直接執(zhí)行 pip install 安裝的第三方庫,很多教程也是這么介紹的,一直以來我都認為這是標準的、正確的安裝 Python 第三方庫的姿勢。下面小編給大家分享一篇教程,一起看看吧
    2019-11-11
  • 舉例詳解Python中threading模塊的幾個常用方法

    舉例詳解Python中threading模塊的幾個常用方法

    這篇文章主要介紹了舉例詳解Python中threading模塊的幾個常用方法,threading模塊用來創(chuàng)建和操作線程,是Python學(xué)習(xí)當(dāng)中的重要知識,需要的朋友可以參考下
    2015-06-06
  • Python生成器generator原理及用法解析

    Python生成器generator原理及用法解析

    這篇文章主要介紹了Python生成器generator原理及用法解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07
  • Python 中pandas索引切片讀取數(shù)據(jù)缺失數(shù)據(jù)處理問題

    Python 中pandas索引切片讀取數(shù)據(jù)缺失數(shù)據(jù)處理問題

    pandas是一個Python軟件包,提供快速,靈活和富于表現(xiàn)力的數(shù)據(jù)結(jié)構(gòu),旨在使使用“關(guān)系”或“標記”數(shù)據(jù)既簡單又直觀。這篇文章主要介紹了pandas索引切片讀取數(shù)據(jù)缺失數(shù)據(jù)處理,需要的朋友可以參考下
    2019-10-10
  • 在python中實現(xiàn)將一張圖片剪切成四份的方法

    在python中實現(xiàn)將一張圖片剪切成四份的方法

    今天小編就為大家分享一篇在python中實現(xiàn)將一張圖片剪切成四份的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • 基于Django?websocket實現(xiàn)視頻畫面的實時傳輸功能(最新推薦)

    基于Django?websocket實現(xiàn)視頻畫面的實時傳輸功能(最新推薦)

    Django?Channels?是一個用于在?Django框架中實現(xiàn)實時、異步通信的擴展庫,本文給大家介紹基于Django?websocket實現(xiàn)視頻畫面的實時傳輸案例,本案例是基于B/S架構(gòu)的視頻監(jiān)控畫面的實時傳輸,使用django作為服務(wù)端的開發(fā)框架,需要的朋友可以參考下
    2023-06-06
  • Python使用melt和pivot實現(xiàn)DataFrame格式轉(zhuǎn)換

    Python使用melt和pivot實現(xiàn)DataFrame格式轉(zhuǎn)換

    在數(shù)據(jù)處理與分析中,經(jīng)常遇到數(shù)據(jù)需要進行格式轉(zhuǎn)換的情況,例如將數(shù)據(jù)從寬表格式轉(zhuǎn)換為長表格式,或?qū)?shù)據(jù)重新分組匯總,Pandas提供了豐富的reshape操作,尤其是melt和pivot這兩個函數(shù),使得DataFrame可以在寬表與長表之間高效轉(zhuǎn)換,本文介紹的非常詳細,需要的朋友可以參考下
    2025-01-01
  • 一篇文章帶你學(xué)習(xí)Python3的高階函數(shù)

    一篇文章帶你學(xué)習(xí)Python3的高階函數(shù)

    這篇文章主要為大家詳細介紹了Python3的高階函數(shù),主要介紹什么是高階函數(shù),高階函數(shù)的用法以及幾個常見的內(nèi)置的高階函數(shù),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • 完全卸載Anaconda的最新教程

    完全卸載Anaconda的最新教程

    本文主要介紹了使用anaconda-clean依賴包來完全清除Anaconda的附帶文件,具有一定的參考價值,感興趣的可以了解一下
    2025-03-03

最新評論

河源市| 迁西县| 八宿县| 上林县| 宁阳县| 荥阳市| 竹溪县| 南乐县| 安化县| 曲周县| 河北省| 同江市| 翁源县| 怀宁县| 河池市| 隆德县| 韶关市| 遵义市| 周口市| 济宁市| 岳阳市| 阳泉市| 清徐县| 成安县| 辛集市| 德保县| 怀宁县| 澎湖县| 略阳县| 五河县| 大田县| 平武县| 保定市| 涪陵区| 鲁甸县| 乳山市| 永顺县| 多伦县| 呈贡县| 蒙城县| 镇赉县|