1、计算字符串的长度

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

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

len(string)

其中,string用于指定要进行长度统计的字符串。在默认的情况下,通过len()函数计算字符串的长度时,不区分英文、数字和汉字,所有字符都按一个字符计算。

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

如果要获取采用UTF-8编码的字符串的长度,可以使用下面的代码:

str1 = '人生苦短,我用Python!'
length = len(str1.encode())
print(length)

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

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

str1 = '人生苦短,我用Python!'
length = len(str1.encode('gbk'))
print(length)

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

2、截取字符串

由于字符串也属于序列,所以要截取字符串,可以采取切片方法实现。通过切片方法截取字符串的语法格式如下:

string[start:end:step]

参数说明:

  • string:表示要截取的字符串;
  • start:表示要截取的死一个字符的索引,包括该字符,如果不指定,则默认是0;
  • end:表示要截取的最后一个字符的索引,不包括该字符,如果不指定则默认字符串的长度;
  • step:表示切片的长度,如果省略,则默认是1,当省略该步长时,最后一个冒号也可以省略。

3、分割、合并字符串

在Python中,字符串对象提供了分割和合并字符串的方法。分割字符串是把字符串分割为列表而和并字符串是把类标合并为字符串,分割字符串和合并字符串可以看做是互逆操作。

3.1 分割字符串

字符串对象的split()方法可以实现字符串分割,也就是把一个字符串按照指定的分隔符切分为字符串列表。该列表的元素中,不包括分割符。split()方法的语法格式如下:

str.split(sep,maxsplit)

参数说明:

  • str:表示要进行分割的字符串;
  • sep:用于指定分隔符,可以报刊多个字符,默认为None,即所有空字符(包括空格、换行符’\n’、制表符’\t’等);
  • maxsplit:可选参数,用于指定分割的次数,如果不指定或者为-1,则分割次数没有限制,否则返回结果列表的元素个数,个数最多为maxsplit+1;
  • 返回值:分隔后的字符串列表;
str = '明 日 学 院 官 网  >>>  www.mingrisoft.com'
print(str.split())
['明', '日', '学', '院', '官', '网', '>>>', 'www.mingrisoft.com']
print(str.split('>>>'))
['明 日 学 院 官 网 ', ' www.mingrisoft.com']
print(str.split('.'))
['明 日 学 院 官 网 >>> www', 'mingrisoft', 'com']
print(str.split(' ', 4))
['明', '日', '学', '院', '官 网 >>> www.mingrisoft.com']
print(str.split('>'))
['明 日 学 院 官 网 ', '', '', ' www.mingrisoft.com']

注意: 在使用split()方法时,如果不指定参数,默认采用空白符进行分割,这时无论有几个空格或者空白符都将作为一个分隔符进行分割。如果指定一个分隔符,那么当这个分隔符出现多个时,就会每个分隔一次,没有得到内容的,将产生一个空元素。

3.2 合并字符串

合并字符串与拼接字符串不用,它会将多个字符串采用固定的分隔符连接在一起。合并字符串可以使用字符串对象的join()方法实现,语法结构如下:

strnew = string.join(iterable)
  • strnew:表示合并后生成的新字符串;
  • string:字符串类型,用于指定合并时的分隔符;
  • iterable:可迭代对象,该迭代对象中的所有元素(字符串表示)将被合并为一个新的字符串。string作为边界点分割出来;
list_name = ['绮梦', '冷伊一', '香凝', '黛兰']
print('*'.join(list_name))
输出:绮梦*冷伊一*香凝*黛兰

4、去除字符串中的空格和特殊字符

4.1 strip()方法

strip()方法用于去掉字符串左、右两侧的空格和特殊字符,语法格式如下:

str.strip([chars])

参数说明:

  • str:为要去除空格的字符串
  • chars:为可选参数,用于指定要去除的字符,可以指定多个。如果设置chars为“@.”,则去除左右两则的包括“@”或者“.”。如果不指定chars参数,默认去除空格、制表符“\t”,回车符“\r”、换行符“\n”等。

5、格式化字符串

格式化字符串是指事先制定一个模板,在这个模板中预留几个空位,然后再根据需要填上相应的内容。这些空位需要通过指定的符号标记(也称为占位符),而这些符号还不会显示出来。在Python中,格式化字符串有以下两种方法:

5.1 使用%操作符

在Python中,要实现格式化字符串,可以使用%操作符,语法格式如下:

%[-][+][0][m][.n]格式化字符%exp

参数说明:

  • -:可选参数,用于指定左对齐,正数前方无符号,负数前方加负号;
  • +:可选参数,用于指定右对齐,正数前方加正号,负数前方加负号;
  • 0:可选参数:表示右对齐,正数前方无符号,负数前方加负号,用0填充空白处(一般与参数一起使用);
  • m:可选参数,表示占有宽度;
  • .n:可选参数,表示小数点后保留的位数,一般与%f浮点数表示使用;
  • 格式化符号用于指定类型;例如“%+09.3f”表示前面加+/-号,中间补充九个0,保留小数点后三位的浮点数。可以是3.14156,表示为+0003.142;
  • exp:要转换的项。如果指定的项有多个,需要通过元组的形式进行指定,但不能使用列表;

5.2 使用字符串对象的format()方法

字符串对象提供了format()方法用于进行字符串格式化,语法格式如下:

 str.format(args)

参数说明:

  • str:用于指定字符串的显示样本(即模板);
  • args:用于指定要转换的项,如果有多项,则用逗号进行分隔;

说明: 当一个模板中,出现多个占位符时,指定索引位置的规范需要统一,即全部采用手动指定,或者全部采用自动。例如,定义“我是数值:{:d},我是字符串:{1:s}”模板是错误的,因为上面设置了一个自动指定,一个手动指定。

template = '编号:{:0>9s} \t 公司名称:{:s} \t官网: http://www.{:s}.com'
context = template.format('7', '百度', 'baidu')
print(context)
编号:000000007      公司名称:百度     官网: http://www.baidu.com

Python —— 字符串常用操作相关推荐

  1. 真香!精心整理了 100+Python 字符串常用操作

    来源丨萝卜大杂烩 作者丨周萝卜 字符串作为平时使用最多的数据类型,其常用的操作我们还是很有必要熟记于心的,本文整理了多种字符串的操作的案例,还是非常用心,记得点赞收藏~ 字符串切片操作 test = ...

  2. 精心整理了100+Python字符串常用操作,备用

    字符串作为平时使用最多的数据类型,其常用的操作我们还是很有必要熟记于心的,本文整理了多种字符串的操作的案例,还是非常用心,记得点赞收藏哦 文章很长,高低要忍一下,如果忍不了,那就收藏吧,总会用到的 萝 ...

  3. Python字符串常用操作

    1.字符串大小写转换 (1)S.lower(): 字母大写转换为小写 (2)S.upper(): 字母小写转换为大写 (3)S.swapcase(): 字母大小写互换 (4)S.title(): 将首 ...

  4. python对输入的字符串进行解析_python数据类型_字符串常用操作(详解)

    这次主要介绍字符串常用操作方法及例子 1.python字符串 在python中声明一个字符串,通常有三种方法:在它的两边加上单引号.双引号或者三引号,如下: name = 'hello' name1 ...

  5. python加密字符串小写字母循环后错两位_python数据类型_字符串常用操作(详解)

    这次主要介绍字符串常用操作方法及例子 1.python字符串 在python中声明一个字符串,通常有三种方法:在它的两边加上单引号.双引号或者三引号,如下: name = 'hello' name1 ...

  6. python列表常用操作函数_Python入门——列表常用操作

    Python列表常用操作 准备 控制台输入ipython parallels@parallels-vm:~$ ipythonPython 2.7.12 (default, Dec 4 2017, 14 ...

  7. Python字符串常规操作

    Python字符串常规操作 一.前言 二.拼接字符串 三.计算字符串的长度 四.截取字符串 五.分隔字符串 六.检索字符串 1.count()方法 2.find()方法 3.index()方法 4.s ...

  8. php字符串相关操作,PHP字符串常用操作

    常用操作有: PHP中有两个内建的函数:count() 和sizeof(),可以实现得到数组的长度 count($sttr);数组长度 字符串长度:strlen(string $a); 判断是否相同, ...

  9. python numpy常用操作、Numpy 多维数组、矩阵相乘、矩阵乘以向量

    python numpy常用操作 Numpy基本操作 # 导入numpy import numpy as np # 生成numpy数组 x = np.array([1.0, 2.0, 3.0]) pr ...

最新文章

  1. 指针空间的申请与释放
  2. EEMD算法的基本原理
  3. asp.net mvc 正常支持Fckeditor编辑器
  4. u盘启动蓝屏 索尼vaio_U盘重装系统出现蓝屏?不要急,这四个手段轻松帮你解决!...
  5. python设计模式13-责任链模式
  6. 【Elasticsearch】 elasticsearch中 rollover 的用法
  7. 深度学习笔记——生成模型
  8. 使用Wireshark抓包分析TCP协议
  9. 使用二维数组打印一个 10 行杨辉三角
  10. php怎么弄钓鱼,php 最新qq钓鱼空间php源码 需要修改数据库连接 WEB(ASP,PHP,...) 247万源代码下载- www.pudn.com...
  11. MSI Center局域网管理器开启导致电脑网络质量变差、网速低
  12. C. Mortal Kombat Tower(DP)
  13. 【好奇心驱动力】APP每日打卡自动化测试
  14. python目前版本强势英雄_王者荣耀:分析S10星耀局以上一些强势英雄及版本目前排位的形势...
  15. 3D游戏设计-天空盒
  16. 一年前,没有Android,我还是一个游戏开发者
  17. php css下划线,css如何添加文字下划线样式?(代码详解)
  18. php招生信息网代码,基于PHP招生管理信息系统
  19. 我的为人处事真的有问题吗?
  20. 【信号去噪】基于多种小波变换阙值+改进的阈值数字实现信号去噪附Matlab代码

热门文章

  1. 【提交PR】如何在 GitHub 提交第一个 pull request
  2. chrome91 后 SameSite by default cookies 不对外开放 解决方案
  3. 用js实现鼠标点击爱心特效
  4. C#设计模式之3-建造者模式
  5. 印度软件开发人员_我如何辍学并在19岁时在印度找到了一份开发人员的工作
  6. maven summer_我在Google Summer of Code的经历
  7. 软件测试测试 python_Python测试简介
  8. 浅层学习与深层学习_深层副本与浅层副本-以及如何在Swift中使用它们
  9. hacktoberfest_我刚刚得到了免费的Hacktoberfest衬衫。 这是获取您的商品的快速方法。
  10. 我从机器人先生那里了解到了有关InfoSec的全部信息