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

发布时间:2022-11-19

本文目录一览:

  1. Python的中文字符串遍历问题
  2. Python判断字符串中是否有中文字符
  3. python中文字符串怎么定位啊,比如‘我爱中国’,,那么如果‘我爱中国’[2:3]不是“中国”两个字啊
  4. python 中文字符串怎么使用count
  5. 用Python从键盘输入一个有中文和英文的字符串,编程分别输出中文和英文,并统?
  6. [Python 3.5 如何对中文字符串进行处理](#Python 3.5 如何对中文字符串进行处理)

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编码格式的字符串。 判断一个字符串中是否含有中文字符: 有了以上知识,就可以很容易的解决这个问题了。这是代码:

# -*- coding:utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding('utf8')
def check_contain_chinese(check_str):
    for ch in check_str.decode('utf-8'):
        if u'\u4e00' <= ch <= u'\u9fff':
            return True
    return False
if __name__ == "__main__":
    print check_contain_chinese('中国')
    print check_contain_chinese('xxx')
    print check_contain_chinese('xx中国')

结果:

True
False
True

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

中文字符在不同编码规则里所占用的长度是不同的,这个你可以去查询相应的编码规则,具体到python中,可以从以下的小例子中看出: 也就是说如果你使用的unicode编码在python中的长度为1,gbk编码在python中的长度为2。对于utf-8编码来说,字符长度是可变的(这个可以从上图的str4str5看出),不同的字符所占用的字节数是不同的,例如数字和字母占用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] 表示除小写字母外的任意一个字符