python 计算字符串长度(含中文)

本文介绍了一种计算字符串中中文字符数量的方法,并探讨了不同编码方式(如utf-8和gbk)下中文字符所占字节数的区别。
部署运行你感兴趣的模型镜像
    txt = '名字12' 
    lenTxt = len(txt) 
    lenTxt_utf8 = len(txt.encode('utf-8')) 
    size = int((lenTxt_utf8 - lenTxt)/2 + lenTxt)

    print("size = " , size ," ,urf8 = ",lenTxt_utf8," ,len = " ,lenTxt)

一个中文算两个字符,先转换成utf8,然后通过计算utf8的长度和len函数取得的长度,进行对比即可知道字符串内中文字符的数量,自然就可以计算出字符串的长度

 

print(len('中文'.encode('utf-8')))  #输出几个字节
执行结果:
6

print(len('中文'.encode('gbk')))
执行结果:
4

print(len(',。'.encode('gbk')))
执行结果:
4

2.总结

utf-8编码:一个中文包含繁体字等于三个字节,一个英文字符等于一个字节。
gbk编码:一个中文包含繁体字等于二个字节,一个英文字符等于一个字节。

 

参考:https://blog.youkuaiyun.com/thinbug/article/details/85167202

https://blog.youkuaiyun.com/rzlongg/article/details/89502762

您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

Python 中,计算字符串长度的主要方法是使用内置函数 `len()`。此函数接受一个字符串作为参数,并返回该字符串长度,结果为一个整数类型[^1]。 ### 使用 `len()` 函数计算字符串长度 以下是一个简单的示例,展示如何使用 `len()` 函数来获取字符串长度: ```python # 定义字符串变量 str1 = "Hello, World!" # 使用 len() 函数计算字符串长度 length = len(str1) # 打印字符串长度 print(f"The length of the string is: {length}") ``` 运行上述代码后,输出将是字符串 `"Hello, World!"` 的长度,即 13[^1]。 ### 计算中文字符字符串长度 对于包中文字符字符串,`len()` 函数同样可以正确计算长度。每个中文字符被视为一个单独的字符,因此也会被计入总长度中: ```python # 包中文字符字符串 str2 = "你好,世界!" # 使用 len() 函数计算字符串长度 length = len(str2) # 打印字符串长度 print(f"The length of the string is: {length}") ``` 如果运行上述代码,输出将是字符串 `"你好,世界!"` 的长度,即 7[^1]。 ### 使用其他方法计算字符串长度 除了 `len()` 函数外,还可以通过编码方式(如 UTF-8)计算字符串的字节长度。例如,以下代码展示了如何计算字符串的 UTF-8 编码长度并调整为字符长度: ```python value = u'脚本12' utf8_length = len(value.encode('utf-8')) # 获取 UTF-8 编码后的字节长度 char_length = (utf8_length - len(value)) / 2 + len(value) # 调整为字符长度 print(f"The adjusted length of the string is: {char_length}") ``` 这种方法适用于需要区分字符和字节长度的场景[^3]。 ### 注意事项 虽然可以使用字符串的 `join()` 和 `count()` 方法间接计算字符串长度,但这种方式通常不如直接使用 `len()` 函数高效或直观[^2]。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值