python3unichr
Ⅰ 如何理解python3的unicode,以及全形半形轉換
1. unicode是一個編碼的standard,表明了字元與數字之間的映射,是可變長的。
2. 映射後的數據如何編碼為位元組?這個就是具體的編碼規則:目前最主流的是UTF-8,同樣,它也是變字長的。
python3中的str都是unicode的:「The default encoding for Python source code is UTF-8」
python3中的encode:按照encode()括弧中的參數對字元串進行編碼,就是生成bytes。
所以:
In:'中文'.encode('utf-8')
Out:b'\xe4\xb8\xad\xe6\x96\x87'
這里的b就是Byte,\x表示這個x是被轉義的,意思就是0x。又如:
In: 'abc'.encode('utf-8')
Out: b'abc'
上面的b'a'其實表示的是數字97,b'a'的意思就是字元串'a'的binary數字:
[In]:'abc'.encode('utf-8')[0]
[Out]: 97
同時可以把b'\x'進行解碼,即:
In:b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
Out:'中文'
除了encode('utf-8')外,用ord可以獲得單個utf-8字元對應的數字:
In [60]: ord('a')
Out[60]: 97
In [61]: ord('a')#這個是全形的a
Out[61]: 65345
除了decode('utf-8')外,用chr可以獲得數字對應的utf-8字元:
In [62]: chr(97)
Out[62]: 'a'
除了unicode還有別的編碼標准嗎?有啊,比如我國的GBK,別名也叫cp936。
全形和半形之分,是指同樣一個意義的字元,顯示的大小不同.具體來說,全形和半形的編碼是兩個結果:
In [70]: "mn".encode('utf-8')
Out[70]: b'\xef\xbd\x8d\xef\xbd\x8e
[In]:"mn".encode('utf-8')
[Out]:b'mn'
它們有什麼對應關系呢?(引自這里)
轉換說明
全形半形轉換說明
有規律(不含空格):
全形字元unicode編碼從65281~65374 (十六進制 0xFF01 ~ 0xFF5E)
半形字元unicode編碼從33~126 (十六進制 0x21~ 0x7E)
特例:
空格比較特殊,全形為 12288(0x3000),半形為 32(0x20)
除空格外,全形/半形按unicode編碼排序在順序上是對應的(半形 + 0x7e= 全形),所以可以直接通過用+-法來處理非空格數據,對空格單獨處理。
代碼在此基礎上改動一下(將unichr改為chr即可,適應python3),即:
def strQ2B(ustring):
"""全形轉半形"""
rstring = ""
for uchar in ustring:
inside_code=ord(uchar)
if inside_code == 12288: #全形空格直接轉換
inside_code = 32
elif (inside_code >= 65281 and inside_code <= 65374): #全形字元(除空格)根據關系轉化
inside_code -= 65248
rstring += chr(inside_code)
return rstring
In [69]: strQ2B('你好python')
Out[69]: '你好python'
Ⅱ python里如何將一個值0x627為int轉換為值為\u0627的uncode
不是python3的話 unichr(0x627) 就行了
python3的直接用unicode編碼了 用 chr(0x627)
Ⅲ python unichr在哪個包中
chr()函數用一個范圍在range(256)內的(就是0~255)整數作參數,返回一個對應的字元。unichr()跟它一樣,只不過返回的是Unicode字元,這個從Python 2.0才加入的unichr()的參數范圍依賴於你的Python是如何被編譯的。如果是配置為USC2的Unicode,那麼它的允許范圍就是range(65536)或0x0000-0xFFFF;如果配置為UCS4,那麼這個值應該是range(1114112)或0x000000-0x110000。如果提供的參數不在允許的范圍內,則會報一個ValueError的異常。
ord()函數是chr()函數(對於8位的ASCII字元串)或unichr()函數(對於Unicode對象)的配對函數,它以一個字元(長度為1的字元串)作為參數,返回對應的ASCII數值,或者Unicode數值,如果所給的Unicode字元超出了你的Python定義范圍,則會引發一個TypeError的異常。
Ⅳ Python 怎麼做強制類型轉換
a=5
printstr(a)
Ⅳ Python mac上的Python launcher是什麼用來的 小白,只知道IDLE怎麼用 launcher不知道
Python launcher只能做替身,用替代辦法來使用。
Ⅵ 什麼是Python內置函數
所謂的內置函數,就是Python給你提供的,直接可以拿來使用的函數,比如說print、input等。常見的內置函數如下:
第一、help()函數
Help()函數的參數分為兩種:如果傳一個字元串做參數的話,它會自動搜索以這個字元串命名的模塊、方法等;如果傳入的是一個對象,就會顯示這個對象的類型的幫助。比如輸入help(『print』),它就會尋找以『print』為名的模塊、類等,找不到就會看到提示信息;而print在Python里是一個保留字,和pass、return同等,而非對象,所以help(print)也會報錯。
第二、dir()函數
dir()函數返回任意對象的屬性和方法列表,包含模塊對象、函數對象、字元串對象、列表對象、字典對象等。盡管查找和導入模塊相對容易,但是記住每個模塊包含什麼卻不是這么簡單,您並不希望總是必須查看源代碼來找出答案。Python提供了一種方法,可以使用內置的dir()函數來檢查模塊的內容,當你為dir()提供一個模塊名的時候,它返回模塊定義的屬性列表。dir()函數適用於所有對象的類型,包含字元串、整數、列表、元組、字典、函數、定製類、類實例和類方法。
第三、input與raw_input函數
都是用於讀取用戶輸入的,不同的是input()函數期望用戶輸入的是一個有效的表達式,而raw_input()函數是將用戶的輸入包裝成一個字元串。
第四、Print()函數
Print在Python3版本之間是作為Python語句使用的,在Python3里print是作為函數使用的。
第五、type()函數
Type()函數返回任意對象的數據類型。在types模塊中列出了可能的數據類型,這對於處理多種數據類型的函數非常有用,它通過返回類型對象來做到這一點,可以將這個類型對象與types模塊中定義類型相比較。
Ⅶ python 字元與數字如何轉換
一、python中字元串轉換成數字
(1)import string
t='555'
ts=string.atoi(tt)
ts即為tt轉換成的數字
轉換為浮點數 string.atof(tt)
(2)直接int
int(tt)即可。
二、數字轉換成字元串
tt=322
tem='%d' %tt
tem即為tt轉換成的字元串
(7)python3unichr擴展閱讀:
Python 是一門有條理的和強大的面向對象的程序設計語言,類似於Perl, Ruby, Scheme, Java.Python的設計目標之一是讓代碼具備高度的可閱讀性。它設計時盡量使用其它語言經常使用的標點符號和英文單字,讓代碼看起來整潔美觀。它不像其他的靜態語言如C、Pascal那樣需要重復書寫聲明語句,也不像它們的語法那樣經常有特殊情況和意外。
Ⅷ ubuntu如何運行python程序
打開LINUX UBUNTU操作系統。
找到左邊的TERMINAL,打開窗口。
相關推薦:《Python教程》
輸入python,如果沒有安裝,就會提示需要安裝。
如果已經安裝好python3,直接輸入,那麼就會進入。
exit()就可以退出python3的模式。
創建一個文件,注意要以py為後綴。
在文件裡面輸入代碼。
python3後面輸入文件名字就可以執行PYTHON文件了。