python中Ox4e00是多少的简单介绍

如题所述

第1个回答  2024-09-05

本篇文章给大家谈谈python中Ox4e00是多少,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

1、python判断字符串中是否只有中文字符2、pythonunicode编码3、python怎么判断中文字符编码python判断字符串中是否只有中文字符

1.输入一个字符串,随机生成S,不知道这个随机是什么意思,莫非要加密。2.下面就简单了,把输入的字符串转换成列表,然后用in判断输入的X是不是在S列表中,在用列表方法remove移除就OK了这个不是特别难吧!

pythonunicode编码

pythonunicode编码:

下面的代码创建了一个Unicode字符串,用UTF-8编码器将它编码,然后写入到一个文件中去,接着把数据从文件中读回来,解码成Unicode字符串对象,最后,打印出Unicode字符串,用以确认程序正确地运行。

在Linux中编写,在VIM中输入如下代码,保存为uniFile.py

#?/home/xiaopeng/python/code/uniFile.py

'''

An?example?of?reading?and?writing?Unicode?strings:Writes

a?Unicode?string?to?a?file?in?utf-8?and?reads?it?back?in

'''

CODEC?=?'utf-8'?编码方式

FILE?=?'unicode.txt'?要存的文件名

hello_out?=?u"Hello?world\n"?创建了一个Unicode格式的字符串

bytes_out?=?hello_out.encode(CODEC)?用UTF-8编码

f?=?open(FILE,'w')

f.write(bytes_out)?写入指定文件中

f.close()

f?=?open(FILE,'r')

bytes_in?=?f.read()?读取

f.close()

hello_in?=?bytes_in.decode(CODEC)?解码

print?hello_in?打印

在终端中输入:pythonuniFile.py

结果打印出Helloworld

然后在python目录下会发现多了一个名为unicode.txt的文件,用cat命令查看一下,发现里面的内容和打印的结果一样.

把Unicode应用到实际中注意一下四点:

1?程序中出现字符串时一定要加一个前缀u

2?不要用str()函数,用Unicode()代替

3不要用过时的string模块。如果传给它非ASCII码,它会把一切搞砸。

4不到必须时不要在你的程序里编解码Unicode字符,只在你要写入文件或者数据库或者网络时,才调用encode()函数和decode()函数。

python怎么判断中文字符编码

#!/usr/bin/envpython

#-*-coding:GBK-*-

"""汉字处理的工具:

判断unicode是否是汉字,数字,英文,或者其他字符。

全角符号转半角符号。"""

__author__="[email protected]"

__date__="2007-08-04"

defis_chinese(uchar):

"""判断一个unicode是否是汉字"""

ifuchar=u'\u4e00'anduchar=u'\u9fa5':

returnTrue

else:

returnFalse

defis_number(uchar):

"""判断一个unicode是否是数字"""

ifuchar=u'\u0030'anduchar=u'\u0039':

returnTrue

else:

returnFalse

defis_alphabet(uchar):

"""判断一个unicode是否是英文字母"""

if(uchar=u'\u0041'anduchar=u'\u005a')or(uchar=u'\u0061'anduchar=u'\u007a'):

returnTrue

else:

returnFalse

defis_other(uchar):

"""判断是否非汉字,数字和英文字符"""

ifnot(is_chinese(uchar)oris_number(uchar)oris_alphabet(uchar)):

returnTrue

else:

returnFalse

defB2Q(uchar):

"""半角转全角"""

inside_code=ord(uchar)

ifinside_code0x0020orinside_code0x7e:#不是半角字符就返回原来的字符

returnuchar

ifinside_code==0x0020:#除了空格其他的全角半角的公式为:半角=全角-0xfee0

inside_code=0x3000

else:

inside_code+=0xfee0

returnunichr(inside_code)

defQ2B(uchar):

"""全角转半角"""

inside_code=ord(uchar)

ifinside_code==0x3000:

inside_code=0x0020

else:

inside_code-=0xfee0

ifinside_code0x0020orinside_code0x7e:#转完之后不是半角字符返回原来的字符

returnuchar

returnunichr(inside_code)

defstringQ2B(ustring):

"""把字符串全角转半角"""

return"".join([Q2B(uchar)forucharinustring])

defuniform(ustring):

"""格式化字符串,完成全角转半角,大写转小写的工作"""

returnstringQ2B(ustring).lower()

defstring2List(ustring):

"""将ustring按照中文,字母,数字分开"""

retList=[]

utmp=[]

forucharinustring:

ifis_other(uchar):

iflen(utmp)==0:

continue

else:

retList.append("".join(utmp))

utmp=[]

else:

utmp.append(uchar)

iflen(utmp)!=0:

retList.append("".join(utmp))

returnretList

if__name__=="__main__":

#testQ2BandB2Q

foriinrange(0x0020,0x007F):

printQ2B(B2Q(unichr(i))),B2Q(unichr(i))

#testuniform

ustring=u'中国人名a高频A'

ustring=uniform(ustring)

ret=string2List(ustring)

printret

以上转自

这个问题是做MkIV预处理程序时搞定的,就是把一个混合了中英文混合字串分离为英文与中文的子字串,譬如,将”我的English学的不好“分离为“我的"、"English”与"学的不好"三个子字串。

1.中英文混合字串的统一编码表示中英文混合字串处理最省力的办法就是把它们的编码都转成Unicode,让一个汉字与一个英文字母的内存位宽都是相等的。这个工作用Python来做,比较合适,因为Python内码采用的是Unicode,并且为了支持Unicode字串的操作,Python做了一个Unicode内建模块,把string对象的全部方法重新实现了一遍,另外提供了Codecs对象,解决各种编码类型的字符串解码与编码问题。

譬如下面的Python代码,可实现UTF-8编码的中英文混合字串向Unicode编码的转换:#-*-

coding:utf-8-*-

a="我的English学的不好"

printtype(a),len(a),a

b=unicode(a,"utf-8")

printtype(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个。

使用Pythonsys模块提供的一个变量maxunicode的值可以判断当前Python所使用的Unicode类型是UCS-2的还是UCS-4的。importsys

printsys.maxunicode若sys.maxunicode的值为1114111,即为UCS-4;若为65535,则为UCS-2。

2.中英文混合字串的分离一旦中英文字串的编码获得统一,那么对它们进行分裂就是很简单的事情了。首先要为中文字串与英文字串分别准备一个收集器,使用两个空的字串对象即可,譬如zh_gather与en_gather;然后要准备一个列表对象,负责按分离次序存储zh_gather与en_gather的值。下面这个Python函数接受一个中英文混合的Unicode字串,并返回存储中英文子字串的列表。defsplit_zh_en(zh_en_str):

zh_en_group=[]

zh_gather=""

en_gather=""

zh_status=False

forcinzh_en_str:

ifnotzh_statusandis_zh(c):

zh_status=True

ifen_gather!="":

zh_en_group.append([mark["en"],en_gather])

en_gather=""

elifnotis_zh(c)andzh_status:

zh_status=False

ifzh_gather!="":

zh_en_group.append([mark["zh"],zh_gather])

ifzh_status:

zh_gather+=c

else:

en_gather+=c

zh_gather=""

ifen_gather!="":

zh_en_group.append([mark["en"],en_gather])

elifzh_gather!="":

zh_en_group.append([mark["zh"],zh_gather])

returnzh_en_group上述代码所实现的功能细节是:对中英文混合字串zh_en_str的遍历过程中进行逐字识别,若当前字符为中文,则将其添加到zh_gather中;若当前字符为英文,则将其添加到en_gather中。zh_status表示中英文字符的切换状态,当zh_status的值发生突变时,就将所收集的中文子字串或英文子字串添加到zh_en_group中去。

判断字串zh_en_str中是否包含中文字符的条件语句中出现了一个is_zh()函数,它的实现如下:defis_zh(c):

x=ord(c)

#PunctRadicals

ifx=0x2e80andx=0x33ff:

returnTrue

#FullwidthLatinCharacters

elifx=0xff00andx=0xffef:

returnTrue

#CJKUnifiedIdeographs

#CJKUnifiedIdeographsExtensionA

elifx=0x4e00andx=0x9fbb:

returnTrue

#CJKCompatibilityIdeographs

elifx=0xf900andx=0xfad9:

returnTrue

#CJKUnifiedIdeographsExtensionB

elifx=0x20000andx=0x2a6d6:

returnTrue

#CJKCompatibilitySupplement

elifx=0x2f800andx=0x2fa1d:

returnTrue

else:

returnFalse这段代码来自jjgod写的XeTeX预处理程序。

对于分离出来的中文子字串与英文子字串,为了使用方便,在将它们存入zh_en_group列表时,我对它们分别做了标记,即mark["zh"]与mark["en"]。mark是一个dict对象,其定义如下:mark={"en":1,"zh":2}如果要对zh_en_group中的英文字串或中文字串进行处理时,标记的意义在于快速判定字串是中文的,还是英文的,譬如:forstrinzh_en_group:

ifstr[0]=mark["en"]:

dosomthing

else:

dosomthing

关于python中Ox4e00是多少和的介绍到此就结束了,不知道你从中找到你需要的信息了吗?如果你还想了解更多这方面的信息,记得收藏关注本站。

logo设计

创造品牌价值

¥500元起

APP开发

量身定制,源码交付

¥2000元起

商标注册

一个好品牌从商标开始

¥1480元起

公司注册

注册公司全程代办

¥0元起

    官方电话官方服务
      官方网站八戒财税知识产权八戒服务商企业需求数字市场
相似回答
大家正在搜