導航:首頁 > 編程語言 > pythonunichr函數

pythonunichr函數

發布時間:2024-10-17 11:37:24

python怎麼判斷中文字元編碼

#!/usr/bin/env python
# -*- coding:GBK -*-

"""漢字處理的工具:
判斷unicode是否是漢字,數字,英文,或者其他字元。
全形符號轉半形符號。"""

__author__="internetsweeper <[email protected]>"
__date__="2007-08-04"

def is_chinese(uchar):
"""判斷一個unicode是否是漢字"""
if uchar >= u'\u4e00' and uchar<=u'\u9fa5':
return True
else:
return False

def is_number(uchar):
"""判斷一個unicode是否是數字"""
if uchar >= u'\u0030' and uchar<=u'\u0039':
return True
else:
return False

def is_alphabet(uchar):
"""判斷一個unicode是否是英文字母"""
if (uchar >= u'\u0041' and uchar<=u'\u005a') or (uchar >= u'\u0061' and uchar<=u'\u007a'):
return True
else:
return False

def is_other(uchar):
"""判斷是否非漢字,數字和英文字元"""
if not (is_chinese(uchar) or is_number(uchar) or is_alphabet(uchar)):
return True
else:
return False

def B2Q(uchar):
"""半形轉全形"""
inside_code=ord(uchar)
if inside_code<0x0020 or inside_code>0x7e: #不是半形字元就返回原來的字元
return uchar
if inside_code==0x0020: #除了空格其他的全形半形的公式為:半形=全形-0xfee0
inside_code=0x3000
else:
inside_code+=0xfee0
return unichr(inside_code)

def Q2B(uchar):
"""全形轉半形"""
inside_code=ord(uchar)
if inside_code==0x3000:
inside_code=0x0020
else:
inside_code-=0xfee0
if inside_code<0x0020 or inside_code>0x7e: #轉完之後不是半形字元返回原來的字元
return uchar
return unichr(inside_code)

def stringQ2B(ustring):
"""把字元串全形轉半形"""
return "".join([Q2B(uchar) for uchar in ustring])

def uniform(ustring):
"""格式化字元串,完成全形轉半形,大寫轉小寫的工作"""
return stringQ2B(ustring).lower()

def string2List(ustring):
"""將ustring按照中文,字母,數字分開"""
retList=[]
utmp=[]
for uchar in ustring:
if is_other(uchar):
if len(utmp)==0:
continue
else:
retList.append("".join(utmp))
utmp=[]
else:
utmp.append(uchar)
if len(utmp)!=0:
retList.append("".join(utmp))
return retList

if __name__=="__main__":
#test Q2B and B2Q
for i in range(0x0020,0x007F):
print Q2B(B2Q(unichr(i))),B2Q(unichr(i))

#test uniform
ustring=u'中國 人名a高頻A'
ustring=uniform(ustring)
ret=string2List(ustring)
print ret

以上轉自http://hi..com/fenghua1893/item/d1a71d5ac47ffdcfd3e10cd1

這個問題是做 MkIV 預處理程序時搞定的,就是把一個混合了中英文混合字串分離為英文與中文的子字串,譬如,將 」我的 English 學的不好「 分離為 「我的"、" English 」 與 "學的不好" 三個子字串。
1. 中英文混合字串的統一編碼表示中英文混合字串處理最省力的辦法就是把它們的編碼都轉成 Unicode,讓一個漢字與一個英文字母的內存位寬都是相等的。這個工作用 Python 來做,比較合適,因為 Python 內碼採用的是 Unicode,並且為了支持 Unicode 字串的操作,Python 做了一個 Unicode 內建模塊,把 string 對象的全部方法重新實現了一遍,另外提供了 Codecs 對象,解決各種編碼類型的字元串解碼與編碼問題。
譬如下面的 Python 代碼,可實現 UTF-8 編碼的中英文混合字串向 Unicode 編碼的轉換:# -*-
coding:utf-8 -*-
a = "我的 English 學的不好"
print type(a),len (a), a
b = unicode (a, "utf-8")
print type(b), len (b), b字元串 a 是 utf-8 編碼,使用 python 的內建對象 unicode 可將其轉換為 Unicode 編碼的字元串 b。上述代碼執行後的輸出結果如下所示,比較字串 a 與字串 b 的長度,顯然 len (b) 的輸出結果是合理的。<type 'str'> 27 我的 English 學的不好
<type 'unicode'> 15 我的 English 學的不好要注意的一個問題是 Unicode 雖然號稱是「統一碼」,不過也是存在著兩種形式,即:
UCS-2:為 16 位碼,具有 2^16 = 65536 個碼位; UCS-4:為 32 位碼,目前的規定是其首位元組的首位為 0,因此具有 2^31 = 2147483648 個碼位,不過現在的只使用了 0x00000000 - 0x0010FFFF 之間的碼位,共 1114112 個。
使用Python sys 模塊提供的一個變數 maxunicode 的值可以判斷當前 Python 所使用的 Unicode 類型是 UCS-2 的還是 UCS-4 的。import sys
print sys.maxunicode若 sys.maxunicode 的值為 1114111,即為 UCS-4;若為 65535,則為 UCS-2。

2. 中英文混合字串的分離一旦中英文字串的編碼獲得統一,那麼對它們進行分裂就是很簡單的事情了。首先要為中文字串與英文字串分別准備一個收集器,使用兩個空的字串對象即可,譬如 zh_gather 與 en_gather;然後要准備一個列表對象,負責按分離次序存儲 zh_gather 與 en_gather 的值。下面這個 Python 函數接受一個中英文混合的 Unicode 字串,並返回存儲中英文子字串的列表。def split_zh_en (zh_en_str):

zh_en_group = []
zh_gather = ""
en_gather = ""
zh_status = False

for c in zh_en_str:
if not zh_status and is_zh (c):
zh_status = True
if en_gather != "":
zh_en_group.append ([mark["en"],en_gather])
en_gather = ""
elif not is_zh (c) and zh_status:
zh_status = False
if zh_gather != "":
zh_en_group.append ([mark["zh"], zh_gather])
if zh_status:
zh_gather += c
else:
en_gather += c
zh_gather = ""

if en_gather != "":
zh_en_group.append ([mark["en"],en_gather])
elif zh_gather != "":
zh_en_group.append ([mark["zh"],zh_gather])

return zh_en_group上述代碼所實現的功能細節是:對中英文混合字串 zh_en_str 的遍歷過程中進行逐字識別,若當前字元為中文,則將其添加到 zh_gather 中;若當前字元為英文,則將其添加到 en_gather 中。zh_status 表示中英文字元的切換狀態,當 zh_status 的值發生突變時,就將所收集的中文子字串或英文子字串添加到 zh_en_group 中去。
判斷字串 zh_en_str 中是否包含中文字元的條件語句中出現了一個 is_zh () 函數,它的實現如下:def is_zh (c):
x = ord (c)
# Punct & Radicals
if x >= 0x2e80 and x <= 0x33ff:
return True

# Fullwidth Latin Characters
elif x >= 0xff00 and x <= 0xffef:
return True

# CJK Unified Ideographs &
# CJK Unified Ideographs Extension A
elif x >= 0x4e00 and x <= 0x9fbb:
return True
# CJK Compatibility Ideographs
elif x >= 0xf900 and x <= 0xfad9:
return True

# CJK Unified Ideographs Extension B
elif x >= 0x20000 and x <= 0x2a6d6:
return True

# CJK Compatibility Supplement
elif x >= 0x2f800 and x <= 0x2fa1d:
return True

else:
return False這段代碼來自 jjgod 寫的 XeTeX 預處理程序。
對於分離出來的中文子字串與英文子字串,為了使用方便,在將它們存入 zh_en_group 列表時,我對它們分別做了標記,即 mark["zh"] 與 mark["en"]。mark 是一個 dict 對象,其定義如下:mark = {"en":1, "zh":2}如果要對 zh_en_group 中的英文字串或中文字串進行處理時,標記的意義在於快速判定字串是中文的,還是英文的,譬如:for str in zh_en_group:
if str[0] = mark["en"]:
do somthing
else:
do somthing

㈡ Python中的常用內置函數有哪些呢

abs() divmod() input() open() staticmethod()
all() enumerate() int() ord() str()
any() eval() isinstance() pow() sum()
basestring() execfile() issubclass() print() super()
bin() file() iter() property() tuple()
bool() filter() len() range() type()
bytearray() float() list() raw_input() unichr()
callable() format() locals() rece() unicode()
chr() frozenset() long() reload() vars()
classmethod() getattr() map() repr() xrange()
cmp() globals() max() reverse() zip()
compile() hasattr() memoryview() round() __import__()
complex() hash() min() set()
delattr() help() next() setattr()
dict() hex() object() slice()
dir() id() oct() sorted()

㈢ 什麼是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 怎樣隨機生成中文字元

python3

importrandom
print(chr(random.randint(0x4e00,0x9fa5)))

python2

#-*-coding:utf-8-*-
importrandom
foriinrange(100):
print(unichr(random.randint(0x4e00,0x9fa5)))

㈤ python有多少內置函數(2023年最新整理)

導讀:本篇文章首席CTO筆記來給大家介紹有關python有多少內置函數的相關內容,希望對大家有所幫助,一起來看看吧。

二級Python----Python的內置函數及標准庫(DAY8)

python的內置函數(68個)

Python考核31個內置函數,

python內置了很多內置函數、類方法屬性及各種模塊。當我們想要當我們想要了解某種類型有哪些屬性方法以及每種方法該怎麼使用時,我們可以使用dir()函數和help()函數在pythonidle互動式模式下獲得我們想要的信息。

?dir()函數獲得對象中可用屬性的列表

Python中的關鍵詞有哪些?

dir(__builtins__):查看python內置函數

help(『keywords『):查看python關鍵詞

如微分積分方程的求解程序、訪問互聯網、獲取日期和時間、機器學習演算法等。這些程序往往被收入程序庫中,構成程序庫。

只有經過嚴格檢驗的程序才能放在程序庫里。檢驗,就是對程序作充分的測試。通常進行的有正確性測試、精度測試、速度測試、邊界條件和出錯狀態的測試。經過檢驗的程序不但能保證計算結果的正確性,而且對錯誤調用也能作出反應。程序庫中的程序都是規范化的。所謂規范化有三重含義:①同一庫里所有程序的格式是統一的;②對這些程序的調用方法是相同的;③每個程序所需參數的數目、順序和類型都是嚴格規定好的。

Python的庫包含標准庫和第三方庫

標准庫:程序語言自身擁有的庫,可以直接使用。help('moles')

第三方庫:第三方者使用該語言提供的程序庫。

標准庫:turtle庫(必選)、random庫(必選)、time庫(可選)。

?turtle庫:圖形繪制庫

原理如同控制一隻海龜,以不同的方向和速度進行位移而得到其運動軌跡。

使用模塊的幫助時,需要先將模塊導入。

例如:在IDLE中輸入importturtle

dir(turtle)

help(turtle.**)

1.畫布

畫布就是turtle為我們展開用於繪圖區域,我們可以設置它的大小和初始位置。

setup()方法用於初始化畫布窗口大小和位置,參數包括畫布窗口寬、畫布窗口高、窗口在屏幕的水平起始位置和窗口在屏幕的垂直起始位置。

參數:width,height:輸入寬和高為整數時,表示像素;為小數時,表示占據電腦屏幕的比例。(startx,starty):這一坐標表示

矩形窗口左上角頂點的位置,如果為空,則窗口位於屏幕中心:

例如:setup(640,480,300,300)表示在桌面屏幕(300,300)位置開始創建640×480大小的畫布窗體。

2、畫筆

?color()用於設置或返回畫筆顏色和填充顏色。

例如:color(『red』)將顏色設為紅色,也可用fillcolor()方法設置或返回填充顏色,或用pencolor()方法設置或返回筆觸顏色。

python內置函數有哪些

python常見的內置函數有:

1.abs()函數返回數字的絕對值。

2.all()函數用於判斷給定的參數中的所有元素是否都為TRUE,如果是返回True,否則返回False。元素除了是0、空、None、False外都算True;空元組、空列表返回值為True。

3.any()函數用於判斷給定的參數是否全部為False,是則返回False,如果有一個為True,則返回True。元素除了是0、空、False外都算TRUE。

4.bin()函數返回一個整數int或者長整數longint的二進製表示。

5.bool()函數用於將給定參數轉換為布爾類型,如果參數不為空或不為0,返回True;參數為0或沒有參數,返回False。

6.bytearray()方法返回一個新位元組數組。這個數組里的元素是可變的,並且每個元素的值范圍:0=x256(即0-255)。即bytearray()是可修改的二進制位元組格式。

7.callable()函數用於檢查一個對象是否可調用的。對於函數、方法、lambda函式、類以及實現了__call__方法的類實例,它都返回True。(可以加括弧的都可以調用)

8.chr()函數用一個范圍在range(256)內(即0~255)的整數作參數,返回一個對應的ASCII數值。

9.dict()函數用來將元組/列表轉換為字典格式。

10.dir()函數不帶參數時,返回當前范圍內的變數、方法和定義的類型列表;帶參數時,返回參數的屬性、方法列表。

(5)pythonunichr函數擴展閱讀:

如何查看python3.6的內置函數?

1、首先先打開python自帶的集成開發環境IDLE;

2、然後我們直接輸入"dir(__builtins__)",需要注意的是builtins左右的下劃線都是兩個;

3、回車之後我們就可以看到python所有的內置函數;

4、接下來我們學習第二種查看python內置函數的方法,我們直接在IDLE中輸入"importbuiltins",然後輸入"dir(builtins)";

5、然後回車,同樣的這個方法也可以得到所有的python內置的函數;

6、這里我們可以使用python內置函數len()來查看python內置函數的個數,這里我們直接輸入"len(dir(builtins))";

7、回車之後我們可以看到系統返回值153,說明我們現在這個版本中有153個內置函數;

8、最後我們介紹一個比較有用的內置函數"help",python內置函數有一百多個,我們當然不能記住所有的函數,這里python提供了一個"help"函數,我們來看一個例子一起來體會一下help函數的用法,這里我們直接輸入"help(len)",然後回車,會看到系統給我們對於內置函數"len"的解釋,當然對於其他函數可能會有更加詳細的解釋以及用法提示。

Python中的常用內置函數有哪些呢?

abs()divmod()input()open()staticmethod()

all()enumerate()int()ord()str()

any()eval()isinstance()pow()sum()

basestring()execfile()issubclass()print()super()

bin()file()iter()property()tuple()

bool()filter()len()range()type()

bytearray()float()list()raw_input()unichr()

callable()format()locals()rece()unicode()

chr()frozenset()long()reload()vars()

classmethod()getattr()map()repr()xrange()

cmp()globals()max()reverse()zip()

compile()hasattr()memoryview()round()__import__()

complex()hash()min()set()

delattr()help()next()setattr()

dict()hex()object()slice()

dir()id()oct()sorted()

python裡面有哪些自帶函數?

python系統提供了下面常用的函數:

1.數學庫模塊(math)提供了很多數學運算函數;

2.復數模塊(cmath)提供了用於復數運算的函數;

3.隨機數模塊(random)提供了用來生成隨機數的函數;

4.時間(time)和日歷(calendar)模塊提供了能處理日期和時間的函數。

注意:在調用系統函數之前,先要使用import語句導入相應的模塊

該語句將模塊中定義的函數代碼復制到自己的程序中,然後就可以訪問模塊中的任何函數,其方法是在函數名前面加上「模塊名.」。

希望能幫到你。

結語:以上就是首席CTO筆記為大家整理的關於python有多少內置函數的全部內容了,感謝您花時間閱讀本站內容,希望對您有所幫助,更多關於python有多少內置函數的相關內容別忘了在本站進行查找喔。

㈥ python基礎教程-數據類型詳解

python提供了多種的數據類型,用來存放數據。其中數據類型中又包括:字元串,布爾類型,整數,浮點數,數字,列表,元組,字典,日期。
1、字元串
a='this is string'print aa="this is string"print aa='''this is stringthis is stringthis is string'''print a
布爾類型
常見的用於循環判斷中
整數
a=int(80.9741)print a
浮點數
a= float(80.974)print a
字元類型的轉換
int(x [,base]) 將x轉換為一個整數
float(x ) 將x轉換到一個浮點數
complex(real [,imag]) 創建一個復數
str(x) 將對象x轉換為字元串
repr(x) 將對象x轉換為表達式字元串
eval(str) 用來計算在字元串中的有效Python表達式,並返回一個對象
tuple(s) 將序列s轉換為一個元組
list(s) 將序列s轉換為一個列表
chr(x) 將一個整數轉換為一個字元
unichr(x) 將一個整數轉換為Unicode字元
ord(x) 將一個字元轉換為它的整數值
hex(x) 將一個整數轉換為一個十六進制字元串
oct(x) 將一個整數轉換為一個八進制字元串
列表
L1 = [1,2,3]print L1L2 = ['abc']print L2L3 = ["a","b","c"]print L3L = list("Python")print Lprint L[0]print L[3]print L[-1]
Python的元組與列表類似,不同之處在於元組的元素不能修改;元組使用小括弧(),列表使用方括弧[];元組創建很簡單,只需要在括弧中添加元素,並使用逗號(,)隔開即可,例如:
tup1 = ('physics', 'chemistry', 1997, 2000);
tup2 = (1, 2, 3, 4, 5 );
tup3 = "a", "b", "c", "d";
字典(dictionary)是除列表之外python中最靈活的內置數據結構類型。列表是有序的對象結合,字典是無序的對象集合。兩者之間的區別在於:字典當中的元素是通過鍵來存取的,而不是通過偏移存取。
字典由鍵和對應的值組成。字典也被稱作關聯數組或哈希表。基本語法如下:
dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'};
時間日期
import time, datetime;localtime = time.localtime(time.time())today = datetime.date.today()print "Local current time :", today

閱讀全文

與pythonunichr函數相關的資料

熱點內容
新童話原創編譯 瀏覽:735
jvm如何編譯機器語言 瀏覽:692
加密號碼快遞怎樣取 瀏覽:497
苦逼的程序員到中年不如狗 瀏覽:228
bin編譯生成o 瀏覽:192
伺服器不識別是什麼原因 瀏覽:365
怎麼改csgo個人伺服器的tick 瀏覽:717
橋梁鋼筋接頭加密區 瀏覽:151
entrysetjava 瀏覽:48
加密狗被人偷了怎麼辦 瀏覽:673
java判斷一個對象是否為空 瀏覽:403
如何來緩解壓力呢英語 瀏覽:633
折彎最簡單演算法方法 瀏覽:493
編譯安卓軟體買固態可以用多久 瀏覽:625
c會被重新編譯 瀏覽:851
優盤插上電腦加密狗不好使 瀏覽:471
pythonunichr函數 瀏覽:102
深圳黑馬程序員地址 瀏覽:404
編譯內核必要驅動 瀏覽:744
androidstudio仿qq 瀏覽:217