超详细!盘点Python中字符串的常用操作

多语言
• 阅读 1548

在Python中字符串的表达方式有四种

  • 一对单引号
  • 一对双引号
  • 一对三个单引号
  • 一对三个双引号
a = 'abc'
b= "abc"
c = '''abc'''
d = """abc"""
print(type(a)) # <class 'str'>
print(type(b)) # <class 'str'>
print(type(c)) # <class 'str'>
print(type(d)) # <class 'str'>

单双引号混合使用

a = "LiMing say 'nice to meet you'"

同样也可以通过转义的方式不用在里面写双引号

a = "LiMing say \"nice to meet you\""
print(a)

总结就是需要外面用了双引号,里面需要引用的语句可以用单引号括起来,反之亦然。

通常情况根据个人喜好,基本都是使用单引号或者双引号。有些特殊情况,比如需要表示多行时,可以选择三个单(双)引号,并且无序用\进行转移,可直接使用单引号和双引号。

a = '''
    My Name is 阿亮,
    Let's say 'Hello'
    '''
print(a)

字符串的下标和切换

下标:字符串是一个个字符拼接而成,下标可以理解为每个字符的编号,从0开始依次类推。

作用:通过下标去操作字符串中的元素

# H的下标为0, e的下标为1 ..依次类推
a = 'HelloWorld'

# 获取字符串a中下标为4的元素
print(a[4])  # o  下标为4的元素为o

修改字符串中的元素是不是可以直接赋值呢? 例如:

a = 'HelloWorld'

a[4] = 'k'
print(a)

上面的代码运行之后发现报错。

TypeError: 'str' object does not support item assignment

原因是因为: 字符串一旦创建之后,里面的元素是不可以修改的。

所以字符串是无法直接进行修改的。

字符串运算

字符串运算中用到了+*><!== 等逻辑运算符。

字符串的相加操作,也可以理解为拼接操作。例如:

a = 'Hello' + ' World'
print(a) # Hello World

# 也可以写成
a = 'Hello' ' World'
print(a) # Hello World

字符串的乘法操作, 可以理解为克隆操作,字符串只能与整数(n)想乘,代表克隆n个字符串。

a = 'a'
print(a * 2) # aa
b = '-'
print(b * 10) # ----------

切片

字符串的切片也称为字符串截取。 所有操作都是通过字符串的下标进行操作的。

用法:字符串[开始索引(start):结束索引(end):步长(step)(默认1)]

步长(step):每隔(step-1)个取一个元素,当step为负数时,代表从右向左取元素,

a = 'abcdefghijklmn'

# 从下标1开始 到4结束 进行切片  (包括1,不包括4,即左开又闭)
print(a[1:4]) # bcd
print(a[1:8]) # bcdefgh
print(a[1:8:2])# 步长为2, 结果:bdfh

# 当补偿为负数时,代表逆向截取。 初始从坐标8开始,每隔一个元素取一个值,到下标为1时结束
print(a[8:1:-2]) # igec

字符串的常用操作

这里以代码+注释的方式,展示几个常用的字符串操作。

a = ' Hello World '

# 获取字符串的长度
print(len(a)) # 13

# 删除字符串两边的空格
print(a.strip()) # Hello World

# 删除左边的空格
print(a.lstrip()) # Hello World (只删除左边的空格)

# 删除字符串右边的空格
print(a.rstrip()) #  Hello World

# 通过指定连接符 链接字符串
lst = ['LiMing', 'Tom']
print('***'.join(lst)) # LiMing***Tom

# 首字母大写
m = 'hello world'
print(m.capitalize()) # Hello world
# 返回标题化字符串,即每个单词首字母大写
print(m.title()) # Hello World

# 打印输出字符,将字符串放在中间,
# center(width, fillchar)   width: 字符串的总长度, fillchar:填充字符
print(a.center(20, '*')) # *** Hello World ****

# 是否以xxx开头
n = 'Hello'
print(n.startswith('H')) # True

# 是否以xxx结尾
print(n.endswith('o')) # True

# 字符串是全纯英文字符
print(a.isalpha()) # False , 因为字符串a中 ' Hello World ' 有空格,因此返回False
print('HelloWorld'.isalpha()) #True

# 判断字符串中是否全部为数字或者英文
print('Hello2World'.isalnum()) # True
print('123'.isalnum()) # True
print('abc&11'.isalnum()) # False

# 判断是否为整数
print('123'.isdigit()) # True
print('1.23'.isdigit()) # False

# 判断字符是否全为小写
print('abc'.islower()) # True

# 判断字符是否全为大写
print('Abc'.isupper()) # False
print('ABC'.isupper()) # True

# 字符串小写转大写
print('abc'.upper()) # ABC

# 字符串大写转小写
print('ABC'.lower()) # abc

# 字符串的替换
b = 'aabbcc'.replace('a', 'm')
print(b) # mmbbcc
#  1 代表替换的个数
b = 'aabbcc'.replace('a', 'm', 1)
print(b) # mabbcc

# split 字符串切割,默认空格切割
print('aa bb cc'.split()) # ['aa', 'bb', 'cc']
print('ab,cd,ef'.split(',')) # ['ab', 'cd', 'ef']

# 字符串换行分割
a = """
    My Name is 'Python极客专栏',
    欢迎关注
    """
print(a.splitlines()) # ['', "    My Name is 'Python极客专栏',", '    欢迎关注', '    ']

字符串的查找

字符串查找常用的方法用indexfind

两者功能相似,区别在于find查找不到元素时返回 -1, 不会影响程序运行,而index则会抛出异常。

a = 'abcdef'
# 查找到元素返回对应的下标
print(a.find('c')) # 2
print(a.find('h')) # -1

print(a.index('c')) # 2
print(a.index('h')) # 抛出异常,ValueError: substring not found
rfind: 类似于find()函数,不过是从右边开始查找;返回字符串最后一次出现的位置,如果没有匹配项则返回-1 。rindex 同理
a = 'acmncd'
# 从右边开始计算,返回第一个匹配到的下标
print(a.rfind('c')) # 4
print(a.rindex('c')) # 4

字符串的格式化

name = 'Python极客专栏'
# %s 用于输出字符串
print('我的公众号是: %s' % name)
age = 18
# %d 用于输出十进制数字
print('我的年龄是:%d' % age)
money = 1.23
# %f 浮点数,默认显示小数点后6位
print('我身上有:%f 元' % money )
# 指定小数点后的位数
print('我身上有:%.2f 元' % money )
format操作

除了使用 % 进行格式化,也可以使用format

print('{} {}'.format('Hello', 'World')) # Hello World
print('{0} {1}'.format('Hello', 'World')) # Hello World

print('公众号{name}, 分享{code} 技术'.format(name='Python极客专栏', code='Python')) # 公众号Python极客专栏, 分享Python 技术

print('{1}, {0}, {1}'.format('A', 'B')) #B, A, B

print('今年是 {}年.'.format(2020)) # 今年是 2020年.

文末福利,史上最全Python资料汇总(长期更新)。隔壁小孩都馋哭了 --- 点击领取

超详细!盘点Python中字符串的常用操作

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
3年前
java基础编程练习题
1、題目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?123456711235813这就是斐波那契数列(Fibonaccisequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Le
Stella981 Stella981
3年前
SpringBoot学习:整合shiro自动登录功能(rememberMe记住我功能)
首先在shiro配置类中注入rememberMe管理器!复制代码(https://oscimg.oschina.net/oscnet/675f5689159acfa2c39c91f4df40a00ce0f.gif)/cookie对象;rememberMeCookie()方法是设置Cookie的生成模
Stella981 Stella981
3年前
Linux云计算学习笔记day15
引号系列单引号    所见即所得                       echo'$LANG{1..5}'双引号 与单引号类似双引号里面的特殊符号会被解析(运行)                   
Stella981 Stella981
3年前
Python 学生管理
原文链接: Python学生管理(https://my.oschina.net/ahaoboy/blog/1526102)python3练手 codingutf8学生类classStu:三个字段id字符串,name字符串,score小数def__init__(sel
Easter79 Easter79
3年前
SpringBoot学习:整合shiro自动登录功能(rememberMe记住我功能)
首先在shiro配置类中注入rememberMe管理器!复制代码(https://oscimg.oschina.net/oscnet/675f5689159acfa2c39c91f4df40a00ce0f.gif)/cookie对象;rememberMeCookie()方法是设置Cookie的生成模
Stella981 Stella981
3年前
RedisTemplate操作命令
字符串操作redis储存的字符串都是以二进制的形式存在!字符串类型的内部编码有3种:int:8个字节的长整型。embstr:小于等于39个字节的字符串。raw:大于39个字节的字符串。Redis会根据当前值的类型和长度决定使用哪种内部编码实现。命令操作返回值set(K
Wesley13 Wesley13
3年前
PHP_50则
用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的“函数”(译注:PHP手册中说echo是语言结构,不是真正的函数,故把函数加上了双引号)。1、如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍。
Stella981 Stella981
3年前
Python基础(四)
1.字符串(1)定义可以使用单引号,双引号,三引号定义字符串.x'123'x"123"x'''123'''x'''123456'''三引号可以跨行使用.(2)特性python中的字符串是不可变
Wesley13 Wesley13
3年前
10条PHP编程习惯助你找工作
http://blog.csdn.net/yihan1029/article/details/417664131、使用单引号括起来的字符串当使用双引号来括字符串时,PHP(https://www.oschina.net/p/php)解释器会对其进行变量替换、转义等操作,如“\\n”。如果只想输出一个基本的字符串,用单引号会节
小万哥 小万哥
1年前
Python 中的字符串基础与应用
在Python中,字符串可以用单引号或双引号括起来。'hello'与"hello"是相同的。您可以使用print()函数显示字符串文字:示例:Pythonprint("Hello")print('Hello')将字符串分配给变量是通过变量名后跟等号和字符串
小万哥 小万哥
1年前
Kotlin 字符串教程:深入理解与使用技巧
Kotlin中的字符串用于存储文本,定义时使用双引号包围字符序列,如vargreeting&quot;Hello&quot;。Kotlin能自动推断变量类型,但在未初始化时需显式指定类型,如varname:String。可通过索引访问字符串元素,如txt0获取首字符。字符串作为对象,拥有属性和方法,如length获取长度,toUpperCase()转大写。可使用compareTo()比较字符串,indexOf()查找子串位置。字符串中嵌入单引号表示文本内的引号,如&quot;It&39;salright&quot;。使用或plus()