Python字符串常见操作

  • 字符串的拼接
  • 计算字符串的长度
  • 截取字符串
  • 分隔字符串
  • 字符串的替换
  • 字符串的检索
  • 字符串大小写转换
  • 去掉字符串中的空格和特殊字符
  • 格式化字符串

字符串的拼接

字符串不允许直接与其他类型的数据拼接,拼接前需利用 str() 函数将其他类型的数据转为字符串。

str1 = '今天我一共走了'
num = 12089
str2 = '步'
print(str1 + str(num) + str2) # 不使用 str() 函数程序会报错

运行结果:今天我一共走了12089步

计算字符串的长度

在 Python 中,数字、英文、小数点、下划线和空格占一个字节;
一个汉字占2~4个字节,汉字占几个字节取决于采用的编码

默认情况下,通过 len() 函数计算字符串的长度时,不区分英文、数字和汉字,所有字符都认为是一个

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

运行结果:14

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

计算 UTF-8 编码的字符串长度:

str1 = '人生苦短,我用Python!'
length = len(str1.encode()) # 计算UTF-8编码的字符串长度
print(length)

运行结果:28

计算 gbk 编码的字符串长度:

str1 = '人生苦短,我用Python!'
length = len(str1.encode("gbk")) # 计算gbk编码的字符串长度
print(length)

运行结果:21


截取字符串

字符串也属于序列,所以截取字符串,可以采用切片方法实现。

str1 = '人生苦短,我用Python!'
substr1 = str1[1]                # 截取第2个字符
substr2 = str1[5:]               # 从第6个字符截取
substr3 = str1[:5]               # 从左边开始截取5个字符
substr4 = str1[2:5]              # 截取第3个到第5个字符(3个字符)
print('原字符串:', str1)
print(substr1 + '\n' + substr2 + "\n" + substr3 + '\n' + substr4)

运行结果:

原字符串: 人生苦短,我用Python!
生
我用Python!
人生苦短,
苦短,

可以利用切片逆置字符串

str1 = '人生苦短,我用Python!'
print(str1[::-1])

运行结果:

!nohtyP用我,短苦生人

注:截取字符串时,如果指定的索引不存在,会抛出异常

分隔字符串

str1 = '我 想 知 道 你 的 名 字! >>> I want to know your name!'
print("原字符串:", str1)
list1 = str1.split() # 默认采用空白符进行分割
list2 = str1.split('>>>') # 采用多个字符">>>"进行分割
list3 = str1.split('!') # 采用单个字符"!"进行分割
list4 = str1.split(' ', 4) # 采用空格进行分割,并且只分割前4个
list5 = str1.split('>') # 采用">"进行分割
print(str(list1) +'\n'+ str(list2) +'\n'+ str(list3) +'\n'+ str(list4) +'\n'+ str(list5))

运行结果:

原字符串: 我 想 知 道 你 的 名 字! >>> I want to know your name!
['我', '想', '知', '道', '你', '的', '名', '字!', '>>>', 'I', 'want', 'to', 'know', 'your', 'name!']
['我 想 知 道 你 的 名 字! ', ' I want to know your name!']
['我 想 知 道 你 的 名 字', ' >>> I want to know your name', '']
['我', '想', '知', '道', '你 的 名 字! >>> I want to know your name!']
['我 想 知 道 你 的 名 字! ', '', '', ' I want to know your name!']

字符串的替换

replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。

str.replace(old, new, max)

该方法返回替换后的新字符串,使用方法如下:

str = "this is string example....wow!!! this is really string";
print str.replace("is", "was");
print str.replace("is", "was", 3);

运行结果:

thwas was string example....wow!!! thwas was really string
thwas was string example....wow!!! thwas is really string

字符串的检索

count(str): 检索字符串str出现次数
find(str): 返回第一个包含字符串str的索引,不包含则返回-1
index(str) :与 find(str) 类似,区别是不包含则抛出异常
startwith(str): 判断是否以字符串str开头
endwith(str) :判断是否以字符串str结尾

str1 = "go out or go home!"
print(str1.count("go")) # count(str) 检索字符串str出现次数
print(str1.find("go")) # find(str) 返回第一个包含字符串str的索引,不包含则返回-1
print(str1.index("go")) # index(str) 与 find(str) 类似,区别是不包含则抛出异常
print(str1.startswith("go")) # startwith(str) 判断是否以字符串str开头
print(str1.endswith("home!")) # endwith(str) 判断是否以字符串str结尾

运行结果:

2
0
0
True
True

字符串大小写转换

str.lower():将字符串中的大写字母转为小写
str.upper():将字符串中的小写字母转为大写

str1 = "Hello World"
print(str1.lower())
print(str1.upper()

运行结果:

hello world
HELLO WORLD

去掉字符串中的空格和特殊字符

str.strip([chars]):去掉字符串左、右两侧的空格和特殊字符
str.lstrip([chars]):去掉字符串左侧的空格和特殊字符
str.rstrip([chars]):去掉字符串右侧的空格和特殊字符

str1 = "   ~~~i am the king~~~"
print(str1.strip()) # 去掉两边的空格
print(str1.rstrip("~")) # 去掉右边的"~"
print(str1.lstrip()) # 去掉左边的空格

运行结果:

~~~i am the king~~~~~~i am the king
~~~i am the king~~~

格式化字符串

使用%是python早期提供的方法,自从 Python2.6 版本开始,字符串对象提供了 format() 方法,建议重点学习 format() 方法

print("{0}:计算机{1}的CPU占用率为{2}%".format("2019-8-15", "C", 10)) # {}内下标可指定也可省略
print("{0:=^20}".format("PYTHON")) # "PYTHON" 居中对齐,且用"="填满20字符
print("{0:*>20}".format("BIT")) # "BIT" 右对齐,且用"*"填满20字符
print("{0:*<10}".format("BIT")) # "BIT" 左对齐,且用"*"填满10字符
print("{0:b},{0:c},{0:d},{0:o},{0:x},{0:X}".format(425))
print("{0:e},{0:E},{0:f},{0:%}".format(3.14)) # e表示用科学计数法,%表示用百分号形式

运行结果:

2019-8-15:计算机C的CPU占用率为10%
=======PYTHON=======
*****************BIT
BIT*******
110101001,Ʃ,425,651,1a9,1A9
3.140000e+00,3.140000E+00,3.140000,314.000000%

【Python笔记】字符串常见操作相关推荐

  1. Python中字符串常见操作总结

    Python中字符串常见操作总结: Num01–>find 检测 str 是否包含在 mystr中,如果是,返回开始的索引值:否则返回-1.也可以指定在一定的范围内.mystr.find(str ...

  2. python基础实例-Python基础之字符串常见操作经典实例详解

    本文实例讲述了Python基础之字符串常见操作.分享给大家供大家参考,具体如下: 字符串基本操作 切片 # str[beg:end] # (下标从 0 开始)从下标为beg开始算起,切取到下标为 en ...

  3. python字符串常见操作

    字符串常见操作 如有字符串mystr = 'hello world itcast and itcastcpp',以下是常见的操作 <1>find 检测 str 是否包含在 mystr中,如 ...

  4. 2021-05-05 数组、 元组、字典、字符串常见操作

    1 数组的应用 1.1元素的互换 a = input("请输入a:") b = input("请输入b:")print("a = %s;b = %s& ...

  5. C#字符串常见操作总结详解

    C#字符串常见操作总结详解 本篇文章是对C#中字符串的常见操作进行了详细的总结介绍,需要的朋友参考下 (1)取字符串长度       <string>.Length; (2)字符串转为比特 ...

  6. python之字符串及操作相关知识

    python之字符串相关知识 python之字符串相关知识 1.字符串 1.1 字符串的格式 1.2 字符串的输出 1.3 字符串的输入 2.下标和切片 2.1 字符串中下标的使用 2.2 切片 3. ...

  7. 【python】字符串的操作与方法、元组的定义与操作

    1. 字符串的操作与方法 1.1 字符串取值 根据索引取值(下标)语法格式:字符串名[索引值]使用场景:取单个字符时使用 # 案例:分别获取字符串runoob的第一个字符和最后一个字符 # 正序最大的 ...

  8. python的字符串切片操作

    回文是一种无论从左还是从右读都一样的字符序列.比如 "madam".在这个例子中,我们检查用户输入的字符串是否是回文,并输出结果. 一:取字符串中第几个字符 print " ...

  9. Python中字符串的操作(图文详情)

    以下操作均在pycharm pycharm官方下载地址: https://www.jetbrains.com/pycharm/download/#section=windows 目录 python中字 ...

最新文章

  1. 2020年10月GitHub上最热门的开源项目
  2. Python 从入门到精通:一个月就够了!
  3. c转义字符以及常见问题和解决方法||c中的注释
  4. 【iOS XMPP】使用XMPPFramewok(五):好友列表
  5. php伪协议实现命令执行的七种姿势
  6. Android之应用程序如何调用支付宝接口
  7. php 读取三级分类,php excel 导入 导入三级分类 表格应该怎么设计才能得到想要的数据格式?汗血宝马...
  8. Linux下部署Hadoop伪分布模式
  9. share——Alpha版(内部测试版)发布
  10. Mybatis DAO接口为什么不需要实现类
  11. Pig 变飞机?AI 为什么这么蠢!
  12. 实战Vue:基于Vue的移动端购物车单界面实现
  13. 用户要进行远程登录 必须在自己的计算机上,大学计算机基础上机考试题库3
  14. IE浏览器版本测试方法
  15. 北京住房公积金转杭州相关信息的整理,个人整理
  16. CAN详解--CAN与com口介绍
  17. 去除 csv 文件中的重复行
  18. Y7000 2018版(I7-8650H 1050T)黑苹果安装攻略附带工具安装包
  19. 153分钟学会Rpdf 百度云盘
  20. 与化学相关的计算机应用情况,计算机化学的发展、应用与展望

热门文章

  1. git上传代码和下拉
  2. [leetcode]328. Odd Even Linked List
  3. SQL Server 2016完整数据库备份的演练
  4. sql limit 子句_SQL Server TOP子句概述和示例
  5. 路飞学成-Python爬虫实战密训-第3章
  6. USBKiller (U盘病毒专杀工具)绿色特别版V2.3 b0825
  7. structs中国际化小结
  8. 高阶台式计算机零组件,2010年电脑旺季!零组件缺DDR3封测紧
  9. 自拍会不会被大数据_不会搭建大数据平台,我被老板优化了...
  10. 服创大赛第二次讨论_2019-01-19