计算字符串的长度

news2024/11/23 23:29:33

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm=1001.2014.3001.5501

由于不同的字符所占字节数不同,所以要计算字符串的长度,需要先了解各字符所占的字节数。在Python中,数字、英文、小数点、下划线和空格占一个字节;一个汉字可能会占2~4个字节,占几个字节取决于采用的编码。汉字在GBK/GB2312编码中占2个字节,在UTF-8/unicode编码中一般占用3个字节(或4个字节)。下面以Python默认的UTF-8编码为例进行说明,即一个汉字占3个字节,如图3所示。

图3  汉字和英文所占字节个数

在Python中,提供了len()函数计算字符串的长度,语法格式如下:

len(string)

其中,string用于指定要进行长度统计的字符串。例如,定义一个字符串,内容为“人生苦短,我用Python!”,然后应用len()函数计算该字符串的长度,代码如下:

str1 = '人生苦短,我用Python!'          # 定义字符串

length = len(str1)                       # 计算字符串的长度

print(length)

上面的代码在执行后,将输出结果“14”。

从上面的结果中可以看出,在默认的情况下,通过len()函数计算字符串的长度时,不区分英文、数字和汉字,所有字符都按一个字符计算。

在实际开发时,有时需要获取字符串实际所占的字节数,即如果采用UTF-8编码,汉字占3个字节,采用GBK或者GB2312时,汉字占2个字节。这时,可以通过使用encode()方法进行编码后再进行获取。例如,如果要获取采用UTF-8编码的字符串的长度,可以使用下面的代码:

str1 = '人生苦短,我用Python!'          # 定义字符串

length = len(str1.encode())             # 计算UTF-8编码的字符串的长度

print(length)

上面的代码在执行后,将显示“28”。这是因为汉字加中文标点符号共7个,占21个字节,英文字母和英文的标点符号占7个字节,共28个字节。

如果要获取采用GBK编码的字符串的长度,可以使用下面的代码。

str1 = '人生苦短,我用Python!'                # 定义字符串

length = len(str1.encode('gbk'))             # 计算GBK编码的字符串的长度

print(length)

上面的代码在执行后,将显示“21”。这是因为汉字加中文标点符号共7个,占14个字节,英文字母和英文标点符号占7个字节,共21个字节。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1714699.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

万亿应急国债项目之通信指挥类应急装备多链路聚合通信设备在应急行业中的重要作用

万亿应急国债项目的推出,无疑是我国在应急领域的一次重大举措。在这一宏大蓝图中,通信指挥类应急装备的多链路聚合通信设备显得尤为重要,其在应急行业中所发挥的作用,堪称不可或缺的关键一环。 通信指挥是应急响应中的核心环节&a…

【开源项目】Excel数据表自动生成工具v1.0版

一、介绍 Excel数据表自动生成工具是Go语言编写的一款小型工具软件,用于将特定的Excel表格内容导出为多种编程语言的代码或可以直接读取的数据内容。 开源Github地址:https://github.com/SkyCreator/goproj 二、版本v1.0功能概览 1.编程语言支持 目前…

ch2应用层--计算机网络期末复习

2.1应用层协议原理 网络应用程序位于应用层 开发网络应用程序: 写出能够在不同的端系统上通过网络彼此通信的程序 2.1.1网络应用程序体系结构分类: 客户机/服务器结构 服务器: 总是打开(always-on)具有固定的、众所周知的IP地址 主机群集常被用于创建强大的虚拟服务器 客…

【漏洞复现】大华智能物联综合管理平台 fastjson远程代码执行漏洞

0x01 产品简介 大华ICC智能物联综合管理平台对技术组件进行模块化和松耦合,将解决方案分层分级,提高面向智慧物联的数据接入与生态合作能力。 0x02 漏洞概述 由于大华智能物联综合管理平台使用了存在漏洞的Fastson组件,未经身份验让的攻击者可利用 /e…

探索Codigger文件管理器(File Explorer)的创新与实用性

在数字时代,文件资源管理器作为桌面环境中不可或缺的一部分,承担着管理文件和文件夹的重要职责。Codigger文件管理器(File Explorer)以其独特的创新和实用性,为用户提供了高效、便捷的文件管理体验。 Codigger文件管理…

AVL树的模拟实现

我们上期提到了二叉搜索树,只是简单的讲了一下原理,那么今天我们就讲一下AVL树。 目录 AVL树的概念AVL树的实现AVL树的架构insert插入引用pair对象引进parent指针仅插入数据调节平衡因子情况1:插入在父亲的右边,父亲的平衡因子后…

一种最大重叠离散小波包特征提取和支持向量机的ECG心电信号分类方法(MATLAB 2018)

目前小波分析算法常采用Mallat快速算法。该算法由与滤波器卷积、隔点采样和隔点插零等三个环节组成。由于实际使用的滤波器并不具有理想频域特性,使得在标准二进小波算法中存在着频率混叠和小波系数失真等缺点,在标准二进小波包算法中还存在频带错乱现象…

docker制作高版本jdk17镜像踩坑

1、创建目录并下载jdk上传到服务器中 从jdk官网下载jdk17镜像,提示:下载到本地用xftp上传到服务器(速度会快点) jdk官网:https://www.oracle.com/java/technologies/downloads/#graalvmjava21 创建目录,将…

MATLAB分类与判别模型算法:基于Fisher算法的分类程序【含Matlab源码 MX_002期】

算法思路介绍: 费舍尔线性判别分析(Fishers Linear Discriminant Analysis,简称 LDA),用于将两个类别的数据点进行二分类。以下是代码的整体思路: 生成数据: 使用 randn 函数生成随机数&#x…

P10-P11【重载,模板,泛化和特化】【分配器的实现】

三类模板(类模板)(函数模板)(成员函数模板) 特化 偏特化:模板参数个数/模板范围 定义的分配器 以上分配器的性能和内存管理有很大不足(在分配内存时,会产生很大的内存开…

UE5中绘制饼状图

饼状图 使用UE绘制前提完整的创建过程123456678 附录代码.h代码.c代码 使用UE绘制前提 EPIC Game使用的版本是Unreal Engine 5.0.3。 没有使用其他额外的插件,使用的是C和Ui共同绘制。 C编译器使用的是VS2019。 完整的创建过程 1 首先在UE中随意一种项目的白色。…

博物馆三维实景vr展示

VR技术应用到地产行业的优势不言而喻,随着购房政策的进一步放宽,购房刚需者借助VR商铺样板间展示系统看房,远比之前跑楼盘更便捷高效。那么VR商铺全景展示具体有哪些好处呢? VR技术与商铺的结合,为客户带来了前所未有的购房体验。…

python基础知识总结(第一节)

一、python简介: Python是一种解释型,面向对象的高级语言。 Pyhton的语法和动态类型,以及解释性语言的本质,使它一跃成为多数平台上写脚本和快速开发应用的编程语言。 python语言百度百科介绍 二、Python基础语法:…

国产操作系统上apt命令详解 _ 统信 _ 麒麟 _ 中科方德

原文链接:国产操作系统上apt命令详解 | 统信 | 麒麟 | 中科方德 Hello,大家好啊!今天给大家带来一篇在国产操作系统上使用apt命令的详解文章。apt(Advanced Package Tool)是Debian及其衍生发行版(如统信UOS…

宁盾身份域管与天翼云电脑完成兼容互认证

近日,宁盾身份域管与天翼云电脑完成兼容互认证!这是继中兴、深信服、升腾威讯云桌面/云电脑后,宁盾对接的第4个国产云桌面品牌。企业在引入国产云桌面时,同时会考虑微软AD目录的替代方案。宁盾国产化身份域管对接天翼云电脑从终端…

521源码-免费手游下载-【烽火中原H5】深度体验:横版网页国战手游及WIN学习手工端

【烽火中原H5】深度体验:横版网页国战手游及WIN学习手工端全面解析,烽火中原H5】横板网页国战手游WIN学习手工端语音视频教程营运后台CDK授权后台, 喜欢国战手游的玩家们,你们期待已久的【烽火中原H5】现已上线!这款游戏以横版网页的形式呈现…

[LitCTF 2023]yafu (中级) (素数分解)

题目: from Crypto.Util.number import * from secret import flagm bytes_to_long(flag) n 1 for i in range(15):n *getPrime(32) e 65537 c pow(m,e,n) print(fn {n}) print(fc {c})n 152412082177688498871800101395902107678314310182046454156816957…

电商推荐系统+电影推荐系统【虚拟机镜像分享】

电商推荐系统电影推荐系统【虚拟机镜像分享】 所有组件部署好的镜像下载(在下面),仅供参考学习。(百度网盘,阿里云盘…) 博主通过学习尚硅谷电商推荐电影推荐项目,将部署好的虚拟机打包成ovf文…

横截面分位数回归

一、分位数回归简介 分位数回归(英语:Quantile regression)是回归分析的方法之一。最早由Roger Koenker和Gilbert Bassett于1978年提出。一般地,传统的回归分析研究自变量与因变量的条件期望之间的关系,相应得到的回归…

[vue3后台管理二]首页和登录测试

[vue3后台管理二]首页和登录测试 1 修改main.js import ./assets/main.cssimport { createApp } from vue import App from ./App.vue import router from ./router createApp(App).use(router).mount(#app)2 路由创建 import {createRouter, createWebHistory} from vue-ro…