导航:首页 > 编程语言 > 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函数相关的资料

热点内容
php时间差年 浏览:106
三门峡云缇服务器 浏览:895
新童话原创编译 浏览:735
jvm如何编译机器语言 浏览:692
加密号码快递怎样取 浏览:497
苦逼的程序员到中年不如狗 浏览:228
bin编译生成o 浏览:192
服务器不识别是什么原因 浏览:365
怎么改csgo个人服务器的tick 浏览:717
桥梁钢筋接头加密区 浏览:151
entrysetjava 浏览:48
加密狗被人偷了怎么办 浏览:673
java判断一个对象是否为空 浏览:403
如何来缓解压力呢英语 浏览:633
折弯最简单算法方法 浏览:495
编译安卓软件买固态可以用多久 浏览:626
c会被重新编译 浏览:853
优盘插上电脑加密狗不好使 浏览:473
pythonunichr函数 浏览:103
深圳黑马程序员地址 浏览:405