字符串特征
一对引号字符串
name1 = ‘test’
name2 = ‘test2’
三引号字符串,支持回车换行
name3 = ''' test3'''
name4 = """test4 """
name1 = 'test'
print(name1)
print(type(name1))
name2 = "test2"
print(name2)
print(name2)
print(type(name2))
# 三引号
name3 = ''' test3
sdf '''
print(type(name3))
name4 = """ test4 """
print(type(name4))
字符串下标
str = 'tester'
print(str[2])
切片
切片是指对操作的对象截取其中一部分的操作,字符串、元组、列表都支持切片操作
先切片,然后取切片里的步长,语法:
序列[开始位置下标: 结束位置下标:步长]
注意:不包含结束位置下标对应的数据,正负整数均可
步长是选取间隔,正负整数均可,默认步长为1
# 序列名[开始位置的下标:结束位置的下标:步长]
# 左闭,右开
str1 = '0123456789'
print(str1[2:8:2])
2345678 ,步长是2,最后展示的就是246.
如果不写步长,默认步长是1
# 序列名[开始位置的下标:结束位置的下标:步长]
# 左闭,右开
str1 = '0123456789'
print(str1[2:8])
输出是234567
如不写开始下标,默认是从0开始
# 序列名[开始位置的下标:结束位置的下标:步长]
# 左闭,右开
str1 = '0123456789'
print(str1[:3])
输出是012
如果结束下标不写,默认以最后下标结束
如果开始和结束下标都不写,默认已最初坐标开始,最后坐标结束
如果步长为负数,就倒序排列展示
字符串常用操作方法
查找、修改、判断
1、查找
查找子串在字符串中的位置或出现的次数
find():检测某个子串是否包含在这个字符串中,如果存在返回这个子串开始的位置下标,否则返回返回-1。
语法
字符串序列.find(子串,开始位置下标,结束位置下标)
注意的是开始和结束位置下标可以省略,表示在整个字符串序列中查找。
index() :检测某个子串是否包含在这个字符串中,如果在返回这个子串开始的位置下标,否则报异常
语法
字符串序列.index(子串,开始位置下标,结束位置下标)
注意的是开始和结束位置下标可以省略,表示在整个字符串序列中查找。
count():返回某个子串在字符串中出现的次数,查找子串找不到的时候,返回0
rfind() 和find() 功能相同,但是查找方向为右侧开始查找,查找从右侧开始查找,但是下标要从左侧开始计算
rindex() 和index()功能相同,但是查找方向为右侧开始查找,查找从右侧开始查找,但是下标要从左侧开始计算
str1 = 'hello world and python and python and python'
# print(str1.find('and')) # 在整个字符串中查找and,找到后返回第一个下标,找不到返回 -1
# print(str1.find('and', 1, 28)) # 在下标1-28 查找and ,如果找到就返回第一个and的下标
# print(str1.find('ddd'))
print(str1.index('and'))
# print(str1.index('and', 1, 28))
# print(str1.index('dddd'))
# print(str1.count('and', 1, 28)) # 在整个字符串中查找and 子串的个数
#
# print(str1.count('ddddd')) # 查找子串是ddddd,找不到的时候返回的是0
print(str1.rfind('and'))
print(str1.rindex('and'))
2、修改
通过函数的形式修改字符串中的数据
replace() 替换
语法
字符串序列.replace(旧子串,新子串,替换次数)
注意,替换次数如果不写,就代表全部替换
原有字符串调用replace()方法,原有字符串的值不变,生成了一个新的字符串,说明我们的字符串是不可变数据类型。
数据类型可以分为两个大的类型,可变类型和不可变类型,列表、字典内部数据是可变的。字符串数据是不可变类型
如果,替换的次数超出了,子串串的次数,它会替换所有子串。
# 1、replace()
str1 = 'hello world and python and python and python'
# 替换次数超出子串的次数,会替换所有子串
# new_str = str1.replace('and', 'he', 10)
# print(new_str)
# print(str1)
split() 按照指定字符分割字符串,返回的是一个列表list,会丢失我们的分割字符,如果字符被分割了num次,那么返回的数据应该是num+1个
语法
字符串序列.split(分割字符,num)
注意,num表示的是分割字符出现的次数,即将来返回数据个数为num+1个
# 2、split() 分割字符会被丢失,num是被分割是部分,最后返回的数据个数为num+1
print(str1.split('and', 2))
# 输出 ['hello world ', ' python ', ' python ', ' python']
# 输出 ['hello world ', ' python ', ' python and python']
jion(),合并列表里面的字符串为一个大的字符串
语法
字符或子串.jion(多字符串组成的序列)
# 3、jion()
mylist = ['aaaa', 'bbbb', 'cccc']
new_str = '...'.join(mylist)
print(new_str)
# 输出 aaaa...bbbb...cccc
不常用
大小写转化
capitalize()将字符串第一个字符转换成大写
# capitalize()
mystr = 'hello world and python and python'
str = mystr.capitalize()
print(str)
# 输出 Hello world and python and python
title() 将字符串每个单词首字母转成大写
mystr = 'hello world and python and python'
str1 = mystr.title()
print(str1)
# Hello World And Python And Python
lower(): 将字符串中大写转小写
mystr = 'hello World and python and python'
str2 = mystr.lower()
print(str2)
upper():将字符串中小写转大写
mystr = 'hello World and python and python'
str3 = mystr.upper()
print(str3)
lstrip():删除字符串左侧空白字符
mystr = ' hello World and python and python '
str4 = mystr.lstrip()
print(str4)
rstrip():删除字符串右侧空白字符
mystr = ' hello World and python and python '
str5 = mystr.rstrip()
print(str5)
strip():删除字符串两侧空白字符
mystr = ' hello World and python and python '
str6 = mystr.strip()
print(str6)
ljust():返回一个原字符串左对齐,并使用指定字符(默认空格)填充至对应长度的新字符串
字符串序列.ljust(长度,填充字符)
rjust():返回一个原字符串右对齐,并使用指定字符(默认空格)填充至对应长度的新字符串
字符串序列.rjust(长度,填充字符)
center():返回一个原字符串居中对齐,并使用指定字符(默认空格)填充至对应长度的新字符串,
字符串序列.center(长度,'填充字符')
3、判断
startswith(): 检查字符串是否是以指定子串开头,是则返回True,否则返回False,如果设置开始和结束位置下标,则在指定范围内检查
语法:
字符串序列.startswith(子串,开始位置下标,结束位置下标)
mystr = 'hello world'
print(mystr.startswith('hel', 0, 20))
endswith():检查字符串是否以指定子串结尾,是则返回True,否则返回False,如果设置开始和结束位置下标,则在指定范围内检查
语法:
字符串序列.endswith(子串,开始位置下标,结束位置下标)
# 检查字符串是否以指定子串开头
mystr = 'hello world'
print(mystr.endswith('rld', 0, 50))
isalpha():如果字符串中至少有一个字符并且所有字符都是字母则返回True,否则返回False,注意空格也是字符
mystr1 = 'hello1'
print(mystr1.isalpha())
isdigit():如果字符串只包含数字则返回True,否则返回False
mystr1 = '3242341'
print(mystr1.isdigit())
isalnum():如果字符串至少有一个字符并且所有字符都是字母、数字、字母和数字组合,则返回True,否则返回False
mystr2 = '1233sad'
print(mystr2.isalnum())
isspace():过字符串中只包含空格,则返回True,否则返回False
mystr3 = ' '
print(mystr3.isspace())
4、总结
下标:为数据序列每个元素分配的从0开始的编号
切片:序列名[开始位置下标:结束位置下标:步长]
常用操作方法:
find()
index()