您的位置:

python中中文字符串,python中中文字符串比较相等

本文目录一览:

Python的中文字符串遍历问题

首先一个,你这个'a'是什么编码?可能不是你所想的gbk

a='测试'

a

这样试试看,如果出来是6个字(word),说明是utf-8,如果是4个字,说明是gbk。

另外,不管是utf-8还是gbk,都不能这样遍历,因为这里它会

一个字

一个字拿出来。

虚拟机

把a当成一个

长度

为len(a)的

字符串

了。

接下来是遍历问题。

linux的shell大都默认是utf-8,所以一个

中文

字符是

三个字

,所以要三个三个地读,你可以试下:

a[:3]

出来就是个测字

windows的command的默认是cp936,也就是gbk,一个中文字符是

两个字

,所以两个字两个字地读。

还有另一种遍历的方法,把字符串转换成unicode,这样中文

英文

都是一个字,就可以用你的for

i

in

a的方法遍历了。这个的好处是中文英文字符都是一个字,而utf-8和gbk里,

英文字母

只占一个字。

Python判断字符串中是否有中文字符

首先,在Python中字符串的表示是 用unicode编码。所以在做编码转换时,通常要以unicode作为中间编码。

decode的作用是将其他编码的字符串转换成unicode编码,比如 a.decode('utf-8'),表示将utf-8编码的字符串转换成unicode编码

encode的作用是将unicode编码的字符串转换成其他编码格式的字符串,比如b.encode('utf-8'),表示将unicode编码格式转换成utf-8编码格式的字符串

判断一个字符串中是否含有中文字符:

好了,有了以上知识,就可以很容易的解决这个问题了。这是代码

1 #-*- coding:utf-8 -*-

2

3 import sys

4 reload(sys)

5 sys.setdefaultencoding('utf8')

6

7 def check_contain_chinese(check_str):

8 for ch in check_str.decode('utf-8'):

9 if u'\u4e00' = ch = u'\u9fff':

10 return True

11 return False

12

13 if __name__ == "__main__":

14 print check_contain_chinese('中国')

15 print check_contain_chinese('xxx')

16 print check_contain_chinese('xx中国')

17

18 结果:

19 True

20 False

21 True

python中文字符串怎么定位啊,比如‘我爱中国’,,那么如果‘我爱中国’[2:3]不是“中国”两个字啊

中文字符在不同编码规则里所占用的长度是不同的,这个你可以去查询相应的编码规则,具体到python中,可以从以下的小例子中看出:

也就是说如果你使用的unicode编码在python中的长度为1,gbk编码在python中的长度为2。对于utf-8编码来书,字符长度是可变的(这个可以从上图的str4和str5看出),不同的字符所占用的字节数是不同的,例如数字和字母占用1个字节,汉字、日文、韩文等占用2个字节或以上,长度不定。

所以还需要具体情况具体分析,

具体到你的问题,根据python的切片规则,[2:3]仅仅取了第三个个字节,并不包括第三个,想要取两个的话可以用[2:4]。想要解决你的问题按照不同的编码对应即可

python 中文字符串怎么使用count

与英文没区别啊(要注意你用的字符集)

#

-*-

coding:

utf-8

-*-

s="Python

count()

方法用于统计字符串里某个字符出现的次数。可选参数为在字符串搜索的开始与结束位置"

print

(

s.count("字"))

结果为

3

用Python从键盘输入一个有中文和英文的字符串,编程分别输出中文和英文,并统?

from string import ascii_letters

x=input("输入字符串:")

hz=[]

zm=[]

for xx in x:

if xx in ([chr(j) for j in range(19968,40867)]):

hz.append(xx)

print(f"汉字:{xx}")

elif xx in ascii_letters:

zm.append(xx)

print(f"字母:{xx}")

print([hz,zm])

Python 3.5 如何对中文字符串进行处理

在Python的string前面加上‘r’, 是为了告诉编译器这个string是个raw string,不要转意backslash '\' 。 例如,\n 在raw string中,是两个字符,\和n, 而不会转意为换行符。由于正则表达式和 \ 会有冲突,因此,当一个字符串使用了正则表达式后,最好在前面加上'r'。

在[]中

-长用来指定一个字符集,在这个字符集中的一个可以拿来匹配:[abc] [a-z]

-元字符在在字符集中不起作用

-在[]内用^表示补集,用来匹配不在区间范围内的字符

s=r'aba' 匹配abc

s=r't[io]p' 匹配tip或者top

s=r't[a-z0-9A-Z]'匹配t+0-9或者a-z或者A-Z

[abc]表示“a”或“b”或“c”

[0-9]表示0~9中任意一个数字,等价于[0123456789]

[\u4e00-\u9fa5]表示任意一个汉字

[^a1]表示除“a”、“1”、“”外的其它任意一个字符

[^a-z]表示除小写字母外的任意一个字符