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

python之字符串相关知识

  • python之字符串相关知识
    • 1、字符串
      • 1.1 字符串的格式
      • 1.2 字符串的输出
      • 1.3 字符串的输入
    • 2、下标和切片
      • 2.1 字符串中下标的使用
      • 2.2 切片
    • 3、字符串常见的操作方法
      • 3.1 find( ) 方法
      • 3.2 index( ) 方法
      • 3.3 count( ) 方法
      • 3.4 replace( ) 方法
      • 3.5 split( ) 方法
      • 3.6 capitalize( ) 方法
      • 3.7 title( ) 方法
      • 3.8 startswith( ) 方法
      • 3.9 endswith( ) 方法
      • 3.10 lower( ) 方法
      • 3.11 upper( ) 方法
      • 3.12 lstrip( ) 方法
      • 3.13 rstrip( ) 方法
      • 3.14 strip( ) 方法
      • 3.15 isdigit( ) 方法
      • 3.16 join( ) 方法

python之字符串相关知识

1、字符串

1.1 字符串的格式

如下面定义的变量a,存储的是数字类型的值
在这里插入图片描述

如下面定义的变量b,存储的是字符串类型的值
python之字符串及操作相关知识_第1张图片

总结
单引号或者双引号或者三单引号或者三双引号中的数据,就是字符串

1.2 字符串的输出

就是前面讲过的字符串格式化输出的几种方式

  • 格式化操作符%s的方式

示例

name = "Cindy"
address = "四川省成都市"
print("大家好,我叫%s,我的老家在%s" %(name, address))

运行结果:
请添加图片描述

  • .formart( ) 的方式

示例

name = "Cindy"
address = "四川省成都市"
print("大家好,我叫{},我的老家在{}".format(name, address))

运行结果:
请添加图片描述

  • f-strings的方式

示例

age = 11
name = "Cindy"
score = 85.5
string1 = f"我的名字叫{name},今年{age}岁,数学成绩是{score}分"
string2 = f'我的名字叫{name},今年{age}岁,数学成绩是{score}分'
string3 = f"""我的名字叫{name},今年{age}岁,数学成绩是{score}分"""
string4 = f'''我的名字叫{name},今年{age}岁,数学成绩是{score}分'''
print(string1)
print(string2)
print(string3)
print(string4)

a = 1
b = 2
print(f"a+b={a+b}")

运行结果:
python之字符串及操作相关知识_第2张图片

1.3 字符串的输入

输入也是使用在之前python基础知识中讲过的 input函数,通过它能够完成从键盘获取数据,然后保存到指定的变量中,再次提醒:input 获取的数据,都以字符串的方式进行保存,即使输入的是数字也是以字符串的方式保存
示例

studentId = input("请输入你的学号:")
print("你的学号是%s" % studentId)

运行结果:
请添加图片描述

2、下标和切片

2.1 字符串中下标的使用

字符串实际上就是字符的数组,所以它同列表和元组一样也支持下标索引
如有字符串 userName = “Cindy” ,其在内存中的实际存储如下图所示:
python之字符串及操作相关知识_第3张图片
若想取出部分字符,就可以通过下标的方法(注意:下标从0开始;下标为负数时,Python是从后向前进行定位提取的,即若下标为负值,则表示反向检索,从后往前开始计数;取值超出范围会报错)
示例1

userName = "Cindy"
print(userName[0])
print(userName[3])

运行结果:
请添加图片描述

示例2

# -1为倒数第一个,-2为倒数第二个...
userName = "Cindy"
print(userName[-1])
print(userName[-3])

运行结果:
请添加图片描述

2.2 切片

切片是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作。
切片的语法:[起始 : 结束 : 步长]
注意:选取的区间从“起始”位开始,到“结束”位的前一位结束(不包含结束位本身),即选取区间为左闭右开,步长表示选取间隔。

示例1

userName = "Cindy"
print(userName[0:6:2])

运行结果:
请添加图片描述

示例2

# 切片不写步长默认的步长为1
userName = "Cindy"
print(userName[0:3])  # 取出下标为0~2的字符

运行结果:
请添加图片描述

示例3

# 结束的位置不写值,取出的就是开始位置后面全部的值
userName = "Cindy"
print(userName[2:])  # 取下标为2开始到最后的字符

运行结果:
请添加图片描述

示例4

# 开始的位置不写值,取出的就是结束位置前面全部的值
userName = "Cindy"
print(userName[:3])  # 取下标为2及之前的字符

运行结果:
请添加图片描述

示例5

userName = "Cindy"
print(userName[1:-1])  # 取下标为1开始到倒数第二个之间的字符

运行结果:
请添加图片描述

示例6

# 步长为负数,表示从后往前取值,所以开始位置的值要大于结束位置的值
userName = "Cindy"
print(userName[5:0:-1])

运行结果:
请添加图片描述

示例7

# 步长为负,其它的地方不写,就是集合的逆序操作
userName = "Cindy"
print(userName[::-1])

运行结果:
请添加图片描述

3、字符串常见的操作方法

3.1 find( ) 方法

find() 方法用于检测字符串中是否包含指定值,如果指定 start(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1。

语法如下:

string.find(value, start, end)

参数含义:
value:必选参数。指定要检索的字符串
start:可选参数。开始的索引,默认为0
end:可选参数。结束的索引,默认为字符串的长度

注意:find()函数在查找时,start处的字符将会被检查,而end是结束检索的索引,所以end索引处的字符不会参与检查

示例

text = "Hello,my name is Cindy"
print(text.find("my"))       # 找到返回开始的索引
print(text.find("m",3,12))   # 搜索位置 3 到 11,字母 "m" 在字符串中首次出现的位置
print(text.find("m",7))      # 指定开始索引的位置为7
print(text.find("p"))        # 没有找到返回-1

运行结果:
python之字符串及操作相关知识_第4张图片

3.2 index( ) 方法

跟find( )方法几乎相同,区别在于如果找不到该值,index() 方法会报异常

语法如下:

string.index(value, start, end)

参数含义:
value:必选参数。指定要检索的字符串
start:可选参数。开始的索引,默认为0
end:可选参数。结束的索引,默认为字符串的长度

注意:index()函数在查找时,start处的字符将会被检查,而end是结束检索的索引,所以end索引处的字符不会参与检查

示例

text = "Hello,my name is Cindy"
print(text.index("my"))       # 找到返回开始的索引
print(text.index("m",3,12))   # 搜索位置 3 到 11,字母 "m" 在字符串中首次出现的位置
print(text.index("m",7))      # 指定开始索引的位置为7
print(text.index("p"))        # 没有找到会引发异常

运行结果:
python之字符串及操作相关知识_第5张图片

3.3 count( ) 方法

返回指定值在字符串中出现的次数
语法如下:

string.count(value, start, end)

参数含义:
value:必选参数。指定要检索的字符串
start:可选参数。开始的索引,默认为0
end:可选参数。结束的索引,默认为字符串的长度

注意:start处的字符将会被检查,而end是结束检索的索引,所以end索引处的字符不会参与检查

示例

text = "I don't want to learn English,but I have to learn it"
print(text.count("learn"))         # 返回 "learn" 在字符串中出现的次数
print(text.count("learn",30,48))   # 从位置 30 到 47 进行检索

运行结果:
请添加图片描述

3.4 replace( ) 方法

返回字符串,用一个指定的值替换另一个指定的值
语法如下:

string.replace(oldvalue, newvalue, count)

参数含义:
oldvalue:必选参数。要检索的字符串
newvalue :必选参数。替换旧值的字符串
count:可选参数。指定要替换的旧值出现次数。默认为替换所有出现的旧值。

示例

text = "row row row your boat,gently down the stream"
print(text.replace("row","line"))   # 用 "line" 替换所有出现的单词 "row"
print(text.replace("row","line",2)) # 用 "line" 替换前两次出现的单词 "row"

运行结果:
请添加图片描述

3.5 split( ) 方法

在指定的分隔符处拆分字符串,并返回列表。可以指定分隔符,默认分隔符是任何空白字符。若指定 max,列表将包含指定数量加一的元素
语法如下:

string.split(separator, max)

参数含义:
separator:可选参数。规定分割字符串时要使用的分隔符。默认值为空白字符。
max:可选参数。规定要执行的拆分数。默认值为 -1,即“所有出现次数”

示例

text1 = "Nice to meet you"
print(text1.split())         # 将字符串拆分成一个列表,其中每个单词都是一个列表项

text2 = "Hello,my name is Cindy,nice to meet you"
print(text2.split(","))      # 使用逗号作为分隔符,分割字符串

text3 = "Bob、Alice、Cindy、David、Lisa"
print(text3.split("、",1))   # 将字符串拆分为最多2个项目的列表(仅分割1个字符串)

运行结果:
请添加图片描述

3.6 capitalize( ) 方法

将字符串第一个字符大写,返回一个字符串
语法如下:

string.capitalize()

无参数

示例

text = "row row row your boat,gently down the stream"
print(text.capitalize())

运行结果:
请添加图片描述

3.7 title( ) 方法

把字符串的每个单词首字母大写,返回一个字符串,如果单词包含数字或符号,则其后的第一个字母将转换为大写字母
语法如下:

string.title()

无参数

示例

text1 = "nice to meet you"
print(text1.title())    # 将每个单词的首字母大写

text2 = "can you see 2dd and 5p3g"
print(text2.title())    # 非字母之后的第一个字母将转换为大写字母

运行结果:
请添加图片描述

3.8 startswith( ) 方法

如果字符串以指定的值开头,则 startswith( ) 方法返回 True,否则返回 False
语法如下:

string.startswith(value, start, end)

参数含义:
value:必选参数。检查字符串是否以其开头的值
start:可选参数。开始检索的位置
end:可选参数。结束检索的位置

注意:start处的字符将会被检查,而end是结束检索的索引,所以end索引处的字符不会参与检查

示例

text = "Nice to meet you"
print(text.startswith("Nic"))       # 检查字符串是否以 "Nic" 开头
print(text.startswith("mee",5,15))  # 检查位置 5 到 14 是否以字符 "mee" 开头

运行结果:
请添加图片描述

3.9 endswith( ) 方法

如果字符串以指定值结尾,则 endswith() 方法返回 True,否则返回 False
语法如下:

string.endswith(value, start, end)

参数含义:
value:必选参数。检查字符串是否以其结尾的值
start:可选参数。开始检索的位置
end:可选参数。结束检索的位置

注意:start处的字符将会被检查,而end是结束检索的索引,所以end索引处的字符不会参与检查

示例

text = "Nice to meet you."
print(text.endswith("meet you."))       # 检查字符串是否以短语 "meet you." 结尾
print(text.endswith("meet you.",5,16))  # 检查位置 5 至 15 是否以短语 "meet you." 结尾

运行结果:
请添加图片描述

3.10 lower( ) 方法

lower() 方法返回一个字符串,将字符串全部转换为小写。符号和数字将被忽略
语法如下:

string.lower()

无参数

示例

text = "Hello,My NAME IS Cindy"
print(text.lower())   # 将字符小写

运行结果:
请添加图片描述

3.11 upper( ) 方法

upper() 方法返回一个字符串,将字符串全部转换为大写。符号和数字将被忽略
语法如下:

string.upper()

无参数

示例

text = "nice to meet you"
print(text.upper())   # 将字符大写

运行结果:
请添加图片描述

3.12 lstrip( ) 方法

lstrip() 方法删除所有前导字符,空格是要删除的默认前导字符
语法如下:

string.lstrip(characters)

参数含义:
characters:可选参数。一组作为前导字符要删除的字符

示例

text1 = "       hello          "
print("say",text1.lstrip(),"Cindy")   # 删除字符串左侧的空格

text2 = "...,,app?.s..hello"
print(text2.lstrip(".,?aps"))         # 删除前导字符

运行结果:
请添加图片描述

3.13 rstrip( ) 方法

rstrip() 方法删除所有结尾字符(字符串末尾的字符),空格是要删除的默认结尾字符
语法如下:

string.rstrip(characters)

参数含义:
characters:可选参数。一组作为结尾字符要删除的字符。

示例

text1 = "       hello          "
print("say",text1.rstrip(),"Cindy")   # 删除字符串右侧的空格

text2 = "hello...,,app?.s.."
print(text2.rstrip(".,?aps"))         # 删除结尾字符

运行结果:
请添加图片描述

3.14 strip( ) 方法

删除任何前导和结尾的字符,空格是要删除字符串两端的空格
语法如下:

string.strip(characters)

参数含义:
characters:可选参数。一组字符,要删除的前导/尾随字符

示例

text1 = "       hello          "
print("say",text1.strip(),"Cindy")   # # 删除字符串开头和结尾两端的空格

text2 = "..ss.hello...,,app?.s.."
print(text2.strip(".,?aps"))         # 删除前导和尾随字符

运行结果:
请添加图片描述

3.15 isdigit( ) 方法

如果字符串中的所有字符都是数字,返回 True,否则返回 False
语法如下:

string.isdigit()

无参数

示例

text1 = "123456"
print(text1.isdigit())  # 检查字符串中所有字符是否都是数字

text2 = "hello123456"
print(text2.isdigit())

运行结果:
请添加图片描述

3.16 join( ) 方法

把可迭代对象的元素连接到字符串的末尾,必须将字符串指定为分隔符
语法如下:

string.join(iterable)

参数含义:
iterable:必选参数。所有返回值均为字符串的任何可迭代对象。

示例

text = "abcdef"
print(",".join(text))   # 使用 ,作为分隔符

运行结果:
请添加图片描述

你可能感兴趣的:(Python语言,python,开发语言)