一.认识字符串
字符串是python中常见的数据类型。我们一般用引号来创建字符串,用一个赋值号链接变量和引号所创建的字符串
例如:
name = 'yaoyuan'
age = '18'
二.字符串与引号
1.一对引号表示(单双都可)
love_animal = 'cat'
love_food = "Anhui Cuisine"
2.三引号表示(可换行)
love_thing = '''leaning'''
love_girl = """陈楠"""
love_centence = '''
The past is our definition. We may strive, with good reason, to escape it or what is bad in it.
but we will escape it only by adding things better to it.
'''
3.转义字符的使用
introduce = 'i\'m yaoyuan'
三.字符串的输入与输出
password = input('请输入您的密码')
print(f'您输入的密码是{password}')
四.索引
由于字符串的逻辑结构与物理结构一致,所以我们可以用下标来表示字符串中的单个字符
name = 'yaoyuan'
print(name[0]) # y
print(name[1]) # a
print(name[2]) # o
五.切片
语法:序列名[开始位置下标 : 终止位置下标(终止位置不输出) : 步长]
例子:
name = 'yaoyuan'
print(name[2:5:1]) # oyu
print(name[2:5]) # oyu
print(name[:5]) # yaoyu
print(name[1:]) # aoyuan
print(name[:]) # yaoyuan
print(name[::2]) # youn
print(name[:-1]) # yaoyua, 负1表示倒数第⼀个数据
print(name[-4:-1]) # yua
print(name[::-1]) # nauyoay
六.字符串的常规操作
1.查找类
①find()
:检测某个字串是否在原字符串中,如果在返回子串的首次开始的位置下标,如果不在返回-1
②rind()
:从右边开始检测……
语法:字符串序列.find(字串,开始的位置,结束的位置)
例子:
love_centence = 'However long the night, the dawn will break.'
print(love_centence.find('the')) # 13
print(love_centence.find('the', 10, 20)) # 13
print(love_centence.rfind('the', 10, 30)) # 24
print(love_centence.find('ands')) # -1
③index()
:检测某个字串是否在原字符串中,如果在返回子串的首次开始的位置下标,如果不在则报错
④rindex()
:从右边开始检测……
语法:字符串序列.index(字串,开始的位置,结束的位置)
例子:
love_centence = 'However long the night, the dawn will break.'
print(love_centence.index('the')) # 13
print(love_centence.index('the', 10, 20)) # 13
print(love_centence.rindex('the', 10, 30)) # 24
print(love_centence.index('ands')) # 报错
⑤count()
:返回某个字串在原字符串中出现的个数
语法:字符串序列.count(字串,开始的位置,结束的位置)
例子:
love_centence = 'However long the night, the dawn will break.'
print(love_centence.count('the')) # 2
print(love_centence.count('the', 10, 20)) # 1
print(love_centence.count('ands')) # o
2.修改类
①replace()
:替换
语法:字符串序列.replace(旧子串,新字串,替换次数)
例子:
love_centence = 'A good fame is better than a good face.'
print(love_centence.replace('good','bad')) #全部‘good’变为‘bad’
print(love_centence.replace('good','bad',1)) #一个‘good’变为‘bad’
print(love_centence.replace('good','bad',2)) #两个‘good’变为‘bad’
②split()
:按照指定字符分割字符串
语法:字符串序列.spilt(分割标志,num)
例子:
love_centence = 'A good fame is better than a good face '
print(love_centence.split('good')) #以‘good’作为分界点,将原字符串分开
print(love_centence.split('good',1)) #以第一个‘good’作为分界点,将原字符串分成2个子串
print(love_centence.split('good',2)) #以第一个和第二个‘good’作为分界点,将原字符串分成3个子串
③join()
:用一个字符或字串合并字符串,即使将多个字符串合并为一个新的字符串
语法:字符或字串.join(多字符串组成的序列)
例子:
love_centence = 'A good fame is better than a good face'
print('-'.join(love_centence)) #将‘-’加入原字符串中
print(love_centence.replace(' ','-'))
④capitalize
:将字符串第一个字符转换成大写,其余字符变为小写
⑤title
:将字符串每个首字母大写
⑥lower
:将字符串大写转小写
⑦upper
:将字符串小写转大写
例子:
love_centence = 'A Good fame is better than a good face'
print(love_centence.capitalize()) # A good fame is better than a good face
print(love_centence.title()) # A Good Fame Is Better Than A Good Face
print(love_centence.lower()) # a good fame is better than a good face
print(love_centence.upper()) # A GOOD FAME IS BETTER THAN A GOOD FACE
⑧lstrip
:删除字符串左侧空白字符
⑨rstrip
:删除字符串右侧空白字符
⑩strip
:删除字符串两侧空白字符
例子:
love_centence = ' A good fame is better than a good face '
print(love_centence.lstrip())
print(love_centence.rstrip())
print(love_centence.strip())
①①ljust
:返回一个字符串左对齐,并使用指定字符(默认空格)填充至相应长度 的新字符串
①②rjust
:返回一个字符串右对齐,并使用指定字符(默认空格)填充至相应长度 的新字符串
①③center
:返回一个字符串居中对齐,并使用指定字符(默认空格)填充至相应长度 的新字符串
语法:字符串序列.ljust(长度,填充字符)
例子:
love_centence = 'A good fame is better than a good face'
print(love_centence.ljust(50,'_'))
print(love_centence.rjust(50,'_'))
print(love_centence.center(50,'_'))
3.判断类
①startswich()
:检测字符串是否以指定子串开头,是返回true,否返回false。如果设置开始和结束的标志,那么只在指定范围内检查
②endswich()
:检测字符串是否以指定子串结尾,是返回true,否返回false。如果设置开始和结束的标志,那么只在指定范围内检查
语法:字符串序列.startswich(字串,开始的位置,结束的位置)
例子:
love_centence = 'A good fame is better than a good face'
print(love_centence.startswith('a'))
print(love_centence.startswith('A',2,10))
print(love_centence.endswith('face'))
print(love_centence.endswith('face',2,10))
②isalpha
:如果字符串至少有一个字符,且所有字符都是字母,返回true,否则返回false
③isdigit
:如果字符串只包含数字,返回true,否则返回false
④isalnum
:如果字符串至少有一个字符,且所有字符都是字母或数字,返回true,否则返回false
⑤isspace
:如果字符串只包含空格,返回true,否则返回false
语法:字符串序列.isalpha()
例子:我不想打了,吃点东西,饿死了