Python零基础入门:字符串使用详解(常用方法及使用案例)

Posted 士别三日wyx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python零基础入门:字符串使用详解(常用方法及使用案例)相关的知识,希望对你有一定的参考价值。

「作者主页」:士别三日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零基础入门:字符串使用详解(常用方法及使用案例)的主要内容,如果未能解决你的问题,请参考以下文章

python3完全零基础入门视频

零基础入门Python3-函数详解

《C#零基础入门之百识百例》(八十三)ArrayList数组列表详解 -- 代码示例

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

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

Python零基础入门