python零基础入门:字符串使用详解(常用方法及使用案例)(代码片段)

士别三日wyx 士别三日wyx     2023-01-21     399

关键词:

「作者主页」:士别三日wyx
  此文章已录入专栏《Python零基础入门》
  人生苦短,我用 Python —— Life is short,you need Python



字符串是Python中 「最常用」的一种数据类型,用来保存一段 「文本」信息,英文用 String 表示。

1、字符串的定义

Python中字符串有「两种」定义方式:

  1. 单引号字符串
  2. 双引号字符串

需要注意的是,单引号和双引号只是字符串支持的两种定义方式,两者定义的内容「没有区别」

1)单引号字符串

        「单引号字符串」顾名思义,就是使用单引号包裹的字符串;定义单引号字符串时需要使用单引号将文本「内容」包裹起来。

案例1:定义一个单引号字符串

# 定义单引号字符串
str1 = '单引号字符串'

# 打印字符串内容
print(str1)

执行结果:

2)双引号字符串

        「双引号字符串」顾名思义,就是使用双引号包裹的字符串;定义双引号字符串时需要使用双引号将文本「内容」包裹起来。

案例2:定义一个双引号字符串

# 定义双引号字符串
str2 = "双引号字符串"

# 打印字符串内容
print(str2)

执行结果:

3)多行字符串

        「多行字符串」顾名思义,就是包含多行文本内容的「一个」字符串;定义多行字符串时,需要使用「三个双引号」或者「三个单引号」将多行文本内容包裹起来。多行字符串可以保留文本的换行、缩进等格式,常用来定义「特殊格式」的文本内容,比如一首诗、一段歌词。

案例3:打印一首诗

# 定义单引号多行字符串
str1 = '''
    昨夜吴中雪,子猷佳兴发。万里浮云卷碧山,
青天中道流孤月。孤月沧浪河汉清,北斗错落长庚明。
怀余对酒夜霜白,玉床金井水峥嵘。人生飘忽百年内,
且须酣畅万古情。

——李白《答王十二寒夜独酌有怀》
'''

# 打印字符串内容
print(str1)

执行结果:

案例四:打印一段歌词

# 定义双引号多行字符串
str2 = """
    《咸鱼》
    我没有任何天分
    我却有梦的天真
    我是傻不是蠢
    我将会证明用我的一生
    我如果有梦有没有错
    错过才会更加明白明白坚持是什么
    
    我不好也不坏不特别出众我只是敢不同
    我的人生就是一错再错错完了再从头
"""

# 打印字符串内容
print(str2)

执行结果:

4)打印字符串

        Python中的变量可以直接使用 print()「打印」 出来,而不是必须先定义变量「赋值」才能使用;

案例5:打印文本内容

# 直接打印文本内容
print('hello word')
print("hello word")

执行结果:

2、字符串拼接

        多个字符串之间可以使用 + 运算符「拼接」 成一个字符串;需要注意的是,参与拼接的「源字符串」 本身不会改变,拼接后会生成一个新的字符串。

案例6:将变量 a 和变量 b 拼接成变量 c

a = 'hello'
b = 'world'
c = a + b
print(c)

执行结果:

案例7:在变量 a、变量 b 之间添加一个空格

a = 'hello'
b = 'world'
c = a + ' ' + b
print(c)

执行结果:

案例8:字符串和数字拼接

a = 'hello'
b = 1  # 数字型变量
c = a + b
print(c)

执行结果:

需要注意的是,字符串只能和字符串进行拼接,和「其他类型」的变量拼接时,会报错。

3、检查字符串

        如果需要「检查」字符串中是否存在特定内容或字符,我们可以使用 innot in 关键字。其中 in 关键字用来检测是否包含指定内容,如果包含则返回 True ,不包含则返回 False ;not in 则相反,如果不包含则返回 True ,包含则返回 False

案例9:检查一段文字中是否包含指定内容

str1 = 'hello world'
result = 'world' in str1
print(result)

执行结果:

案例10:检查一段文字中是否不包含指定内容

str1 = 'hello world'
result = 'world' not in str1
print(result)

执行结果:

4、字符串是数组

        严格意义上来说,Python中并没有字符数据类型,「单个字符」就是就是长度为 1 的字符串,包含「多个字符」的“字符串”是一个字节数组,平时为了方便,我们还是将其叫做字符串类型变量。
        什么意思呢?就比如a = 's' ,这个变量 a 只有一个字符,这是真正意义上的「字符串」;而 b = 'sss',这个变量 b 实际上是一个包含了多个字符串的「字符数组」

1)访问字符串的元素

        字符数组中的每一个字符串被称为一个「元素」,即 字符 = 元素;比如 a = 'abc',这个变量 a,字符a是一个元素,字符b是一个元素,字符c也是一个元素。
        使用「方括号」访问字符串的元素,方括号中填写需要访问的元素的「索引」,索引可以简单理解为元素在数组中的「位置」,从左到右依次是0,1,2…,需要注意的是,索引是从 0 开始的。

案例11:获取第一个位置的元素

str1 = 'hello world'
s = str1[0]
print(s)

执行结果:

2)截取字符串的元素

        可以同时访问多个元素,而不是一次只能访问一个元素,准确的说是「访问」一个指定「范围」内的元素,需要指定「开始」索引和「结束」索引,中间使用冒号分隔,可以简单理解为截取字符串中的元素,截取的范围包含开始索引,但不包含结束索引,即 [ 开始索引 :结束索引 )

案例12:截取位置1到位置4的元素

str1 = 'hello world'
s = str1[1:4]
print(s)

执行结果:

负的索引

需要注意的是,访问指定范围的元素时,可以指定「负数」索引,负的索引从字符数组最右边开始依次是1,2,3…,也就是从「末尾」开始截取。

案例13:截取倒数第6个位置至倒数第2个位置的元素

str1 = 'hello world'
s = str1[-6: -2]
print(s)

执行结果:

5、常用方法

字符串的所有方法都会返回一个「新值」,原来的字符串则不会被「改变」

len() 获取字符串长度

用来获取字符串的「长度」,需要传递一个「变量」参数,返回字符串的长度(int 类型)

案例14:名字有几个字符

name = 'zhangsan'
le = len(name)
print(le)

执行结果:

strip() 删除开头和结尾的空格

用来「删除」开头和结尾的「空白」字符,返回一个删除后的字符串类型的变量。

案例15:删除两侧的空格

text = ' Hello Python  '
t = text.strip()
print(t)

执行结果:

lower() 全部小写

用来将字符串转换为「小写」,返回一个全部小写的字符串类型的变量。

案例16:将姓名全部小写

name = 'ZhangSan'
s = name.lower()
print(s)

执行结果:

upper() 全部大写

用来将字符串转换为「大写」,返回一个全部大写的字符串类型的变量。

案例17:将名字全部大写

name = 'China'
s = name.upper()
print(s)

执行结果:

replace() 替换字符串

用来「替换」字符串

  • 参数1:需要被替换的内容(字符串类型)
  • 参数2:替换后的内容(字符串类型)
  • 返回值:替换后的字符串(字符串类型)

案例18:将“姓名”替换为“张三”

name = '我叫姓名'
s = name.replace('姓名', '张三')
print(s)

执行结果:

split() 按照分隔符转换数组

将字符串按照指定「分隔符」转换为「数组」

  • 参数1:分隔符(字符串类型)
  • 返回值:转换后的数组

案例19:按照逗号分隔成数组

names = 'ZhangSan,liSi,WangWu,ZhaoLiu'
arr = names.split(',')
print(arr)

执行结果:

format() 格式化

用来「格式化」变量,并放在占位符所在的字符串中。前面我们提到过字符串和其他类型的变量不能使用加号拼接,而format()可以实现字符串和其他数据类型的拼接。

案例20:字符串拼接数字

age = 18
text = '我今年岁'
t = text.format(age)
print(t)

执行结果:

多个参数

format() 可以接收多个参数,并将每个参数按照「顺序」顺序拼接到「对应」的占位符中;简单来说就是传递多个参数,同时提供多个占位符,参数和占位符按照从左到右的顺序一一对应。

案例21:成员名单

names = ['张三', '李四', '王五', '赵六']
text = '本期获奖名单是:,,,'
t = text.format(names[0], names[1], names[2], names[3])
print(t)

执行结果:

占位符索引

format() 在拼接多个变量时,默认按照从左到右的顺序拼接,如果想「自定义」自定义拼接的顺序(位置),可以使用占位符的索引1来确保参数拼接到正确的位置。

案例22:个人信息

name = '张三'
age = 18
money = 100.0
text = '我叫1,今年0岁,工资是2元'
t = text.format(age, name, money)
print(t)

执行结果:

capitalize() 首字母大写

将字符串的「首字母」转换为大写,并返回修改后的字符串。

案例23:姓首字母大写

name = 'zhang'
s = name.capitalize()
print(s)

执行结果:

count() 出现次数

用来获取指定内容在字符串中出现的「次数」

  • 参数1:必需,字符串,需要检查的内容
  • 参数2:可选,整数,开始的位置,默认是0
  • 参数3:可选,整数,结束的位置,默认是结尾
  • 返回值:整数,出现的次数

案例24:统计大爷出现的次数

text = '大爷带着二大爷到三大爷家说四大爷别五大爷骗到六大爷家偷七大爷放在八大爷柜子里九大爷给十大爷的一千元'
n = text.count('大爷')
print(n)

执行结果:

find() 首次出现的位置

用来在字符串中「查找」指定内容,如果找到则返回指定内容在字符串中「首次」出现的位置,找不到则返回 -1

案例25:大爷首次出现的位置

text = '大爷带着二大爷到三大爷家说四大爷别五大爷骗到六大爷家偷七大爷放在八大爷柜子里九大爷给十大爷的一千元'
n = text.find('大爷')
print(n)

执行结果:

isalnum() 纯字母数字

检查指定字符串中是否只包含「数字」「字母」,即字母(a-z)和数字(0-9),如果是纯字母数字则返回 True,否则返回 False。

案例26:检查文本中是否只包含数字和字母

text = 'abc123'
print(text.isalnum())

执行结果:

isalpha() 纯字母

检查指定字符串中是否只包含「字母」,即字母(a-z),如果是纯字母则返回 True,否则返回 False。

案例27:检查文本是否是纯字母

text = 'abc'
print(text.isalpha())

执行结果:

isdigit() 纯数字

检查指定字符串中是否只包含「数字」,即数字(0-9),如果是纯数字则返回 True,否则返回 False。需要注意的是,指数也算作数字。

案例28:检查文本是否是纯数字

text = '123'
print(text.isdigit())

执行结果:

islower() 是否全部小写

检查指定字符串中的「字母」是否全部都是「小写」,如果全部小写则返回 True,否则返回 False。需要注意的是,islower()「不检查」数字、符号和空格,仅检查字母字符。

案例29:检查文本是否全部小写

text1 = ' Hello World! '
text2 = ' hello world! '
print(text1.islower())
print(text2.islower())

执行结果:

isupper() 是否全部大写

检查指定字符串的「字母」是否全部都是「大写」,如果全部大写则返回 True,否则返回 False。需要注意的是,isupper()「不检查」数字、符号和空格,仅检查字母字符。

案例30:检查文本是否全部大写

text1 = ' HELLO 123! '
text2 = ' hello 123! '
print(text1.isupper())
print(text2.isupper())

执行结果:

join() 数组转字符串

将可迭代对象中所「元素」有按照指定「分隔符」拼接为一个「字符串」,可迭代对象指的是列表、元组、字典等。需要注意的是,转换「字典」时拼接的是「键」而不是值。

案例31:将列表中的元素按照逗号拼接成字符串

arr = ['张三', '李四', '王五', '赵六']
print(','.join(arr))

执行结果:

案例32:将字典中的元素按照 - 拼接成字符串

di = 'name': '张三', 'age': 18
print('-'.join(di))

执行结果:

rfind() 最后一次出现的位置

查找指定内容在字符串中「最后」一次出现的位置。

  • 参数1:必需。指定检查的内容
  • 参数2:可选。开始检查的位置。默认是0
  • 参数3:可选。结束检查的位置。默认是末尾
  • 返回值:整数。最后一次出现的索引位置

案例33:大爷最后一次出现的位置

text = '大爷带着二大爷到三大爷家说四大爷别五大爷骗到六大爷家偷七大爷放在八大爷柜子里九大爷给十大爷的一千元'
print(text.rfind('大爷'))

执行结果:

startswith() 是否以指定字符开头

检查字符串是否以指定字符「开头」,如果以指定字符开头则返回 True,否则返回 False。

案例34:是否以大爷开头

text = '大爷带着二大爷到三大爷家说四大爷别五大爷骗到六大爷家偷七大爷放在八大爷柜子里九大爷给十大爷的一千元'
print(text.startswith('大爷'))

执行结果:

零基础入门必看,python与python解释器详解

系列文章目录🍑Python语言基础—注释的作用及分类🍑Python语言基础—常用运算符总结🍑Python语言基础—定义变量与数据类型🍑Python语言基础—if判断和循环总结🍑Python语言基础—理解面向对象🍑Python语... 查看详情

python基础|函数及面向过程编程详解

第五章函数⭐本专栏旨在对Python的基础语法进行详解,精炼地总结语法中的重点,详解难点,面向零基础及入门的学习者,通过专栏的学习可以熟练掌握python编程,同时为后续的数据分析,机器学习及深度学习的代码能力打下坚... 查看详情

《c#零基础入门之百识百例》(八十三)系统类arraylist数组列表详解--代码示例

C#零基础入门泛型和系统类--ArrayList数组列表--代码示例前言一,集合概述二,ArrayList2.1概念定义2.2常用属性三,常用方法3.1添加元素3.2删除元素3.3查找元素3.4插入元素3.5其他方法总结前言本文属于C#零基础入门之百识百例系列文... 查看详情

java基础|常用api与stringbuilder详解

⭐本专栏旨在对JAVA的基础语法及知识点进行全面且详细的讲解,完成从0到1的java学习,面向零基础及入门的学习者,通过专栏的学习可以熟练掌握JAVA编程,同时为后续的框架学习,进阶开发的代码能力打下坚实的基础。 查看详情

python基础教程python字符串及文本模式方法详解

...多python教程请到:菜鸟教程https://www.piaodoo.com/一、你想在字符串中搜索和匹配指定的文本模式遗漏点:re模块其实也是帮助我们进行字符串处理的重要工具,我之前总是想着用内建的函数来处理,其实如果是复杂的文本和数据结... 查看详情

零基础入门python3-数据类型详解

...只是超出一定范围后,就直接表示为inf(无限大)。3、字符串字符串有两种表示方法,第一种为‘’(单引号)即‘abc’,第二种为“”(双引号)即“abc”。比如定义变量a=‘abc‘ ,b="abc",print(a,b)输出a和b之后,值都为ab... 查看详情

python基础|timerandomcollectionsitertools标准库详解

⭐本专栏旨在对Python的基础语法进行详解,精炼地总结语法中的重点,详解难点,面向零基础及入门的学习者,通过专栏的学习可以熟练掌握python编程,同时为后续的数据分析,机器学习及深度学习的代码能力打下坚实的基础。 查看详情

python基础|文件异常以及模块详解

⭐本专栏旨在对Python的基础语法进行详解,精炼地总结语法中的重点,详解难点,面向零基础及入门的学习者,通过专栏的学习可以熟练掌握python编程,同时为后续的数据分析,机器学习及深度学习的代码能力打下坚实的基础。 查看详情

《c#零基础入门之百识百例》(三十八)常用方法--math类

C#零基础入门函数--Math类常用方法前言一,基础数值二,三种取整三,指数对数平方根四,三角函数前言本文属于C#零基础入门之百识百例系列文章。此系列文章旨在为学习C#语言的童鞋提供一套系统的学习路径。此系列文章都会... 查看详情

不硬啃,不生背《最常用python操作总结》零基础快速入门(代码片段)

...1、python操作linux2、网络爬虫:requests3、发送邮件4、字符串正则匹配5、操作数据库:MySQLdb6、操作execl:pandas7、数据分析:numpy8、数据画图分析 查看详情

python基础|程序控制结构

第四章程序控制结构⭐本专栏旨在对Python的基础语法进行详解,精炼地总结语法中的重点,详解难点,面向零基础及入门的学习者,通过专栏的学习可以熟练掌握python编程,同时为后续的数据分析,机器学习及深度学习的代码能... 查看详情

零基础入门python3-函数详解

我们通过一种运算方法,把一个数字运算成另一个数字,每次需要运算的数字都是不同的,但是运算方法都是一致的。如果每次运算都需要定义和编写相同代码,那我们的工作量简直太大了。函数就是对应的解决办法,输入对象... 查看详情

零基础入门python3-列表list详解

...时候就是名字清单—>2号,那么2号对应的就是wangwu。在python中,list列表和这个名字清单的性质是一样的。 一、创建list列表#方法1:直接用list()函数创建 列表的名称=list()          ... 查看详情

python零基础到入门python基础语法篇——python常用基础语法速览(代码片段)

...语句🏳️‍🌈数字(Number)类型🏳️‍🌈字符串(String)🏳️‍🌈空行🏳️‍🌈等待用户输入🏳️‍🌈同一行显示多条语句🏳️‍🌈多个语句构成代码组🏳️‍🌈print输出... 查看详情

python零基础到入门python基础语法篇——python常用基础语法速览(代码片段)

...语句🏳️‍🌈数字(Number)类型🏳️‍🌈字符串(String)🏳️‍🌈空行🏳️‍🌈等待用户输入🏳️‍🌈同一行显示多条语句🏳️‍🌈多个语句构成代码组🏳️‍🌈print输出... 查看详情

python基础|numpy详细教程

第十一章Numpy库⭐本专栏旨在对Python的基础语法进行详解,精炼地总结语法中的重点,详解难点,面向零基础及入门的学习者,通过专栏的学习可以熟练掌握python编程,同时为后续的数据分析,机器学习及深度学习的代码能力打... 查看详情

python基础|深浅拷贝生成器迭代器以及装饰器详解

⭐本专栏旨在对Python的基础语法进行详解,精炼地总结语法中的重点,详解难点,面向零基础及入门的学习者,通过专栏的学习可以熟练掌握python编程,同时为后续的数据分析,机器学习及深度学习的代码能力打下坚实的基础。 查看详情

《c#零基础入门之百识百例》(八十六)系统类queue队列解析--回文字符串

C#零基础入门泛型和系统类--Queue队列解析--回文字符串前言一,Queue1.1概念定义二,方法属性2.1常用属性2.2常用方法三,实例练习--回文字符串3.1题目描述3.2问题分析3.3参考代码前言本文属于C#零基础入门之百识百例系列文章。此... 查看详情