目录
一、字符串
1. 字符串特征
控制台显示结果为<class 'str'>,即数据类型为str(字符串)。
- 单引号字符串
name = '小明'
- 双引号字符串
name = "Cindy"
- 三引号字符串
支持换行
a = '''I am Tom,
nice to meet you!'''
b = """I am Rose,
nice to meet you!"""
2. 字符串输出
name = 'Tom'
print('我的名字是%s' % name)
print(f'我的名字是{name}')
3. 字符串输入
tel = input('请输入您的手机号:')
print(f'您输入的手机号是{password}')
注意:input()接收到的数据为str(字符串)类型
二、下标
“下标” 又叫 “索引”,就是编号。下标的作用是通过下标快速找到对应的数据。
注意:下标从0开始
简单案例:
# 需求:输出字符"W"
a = 'HelloWorld'
print(a[5])
---运行结果---
W
三、切片
切片是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作。
1. 语法
序列[开始位置下标:结束位置下标:步长]
注意:
① 如果不写步长,步长默认为1
② 如果不写开始位置下标,默认从0开始选取
③ 如果不写结束位置下标,表示选取到最后
④ 如果不写开始位置和结束位置下标,表示选取所有
⑤ 步长为负数,表示倒序选取(从右往左)
⑥ 开始位置和结束位置为负数,下标-1表示最后一个数据,依次向前类推
⑦ 如果选取方向(下标开始到结束的方向)和步长的方向冲突,则无法选取出数据
简单举例:
# 得到某一段数据 -- 切片 --左闭右开
print(a[2:5:1]) # cde
print(a[2:5:2]) # ce
# 如果不写步长,步长默认为1
print(a[2:5]) # cde
# 如果不写开始,默认从0开始选取
print(a[:5]) # abcde
# 如果不写结束,表示选取到最后
print(a[2:]) # cdefg
# 如果不写开始和结束,表示选取所有
print(a[:]) # abcdefg
# 步长为负数,表示倒序选取
print(a[::-1]) # gfedcba
# 开始和结束为负数,下标-1表示最后一个数据,依次向前类推
print(a[-4:-1]) # def
# 从-4开始到-1结束,选取方向为从左到右,但是-1步长是指从右向左选取
# 如果选取方向(下标开始到结束的方向)和步长的方向冲突,则无法选取出数据
print(a[-4:-1:-1]) # 无法选取出数据
四、字符串常用操作方法
字符串的常用操作方法有查找、修改、判断三大类。
1. 字符串查找
(1)find()
find() : 检测某个子串是否包含在这个字符串中,如果在,返回这个字串的开始位置下标,否则返回-1。
语法:
字符串序列.find(子串,开始位置下标,结束位置下标)
注意:开始和结束位置下标可以省略,表示在整个字符串序列中查找。
(2)index()
index() : 检测某个子串是否包含在这个字符串中,如果在,返回这个子串的开始位置下标,否则报异常。
语法:
字符串序列.index(子串,开始位置下标,结束位置下标)
注意:开始和结束位置下标可以省略,表示在整个字符串序列中查找。
(3)count()
count():检测子串在这个字符串中,出现的次数,如果在,返回次数,否则返回0
语法:
字符串序列.count(子串,开始位置下标,结束位置下标)
注意:开始和结束位置下标可以省略,表示在整个字符串序列中查找。
(4)rfind()
和find()功能相同,但查找方向为右侧开始。
(5)rindex()
和index()功能相同,但查找方向为右侧开始。
(6)简单举例
a = "java and html and python"
# 1.find()
print(a.find('and')) # 5 --子串存在,返回下标位置为5
print(a.find('and', 8, 20)) # 14 --子串存在,下标位置为14
print(a.find('ands', 8, 20)) # -1 --子串不存在,返回-1
# 2.index()
print(a.index('and')) # 5 --子串存在,返回下标位置为5
print(a.index('and', 8, 20)) # 14 --子串存在,下标位置为14
print(a.index('ands', 8, 20)) # -1 --子串不存在,报异常
# 3.count()
print(a.count('and')) # 2
print(a.count('and', 8, 20)) # 1
print(a.count('ands')) # 0 --找不到子串,返回0
# 4.rfind()
print(a.rfind('and')) # 5 --子串存在,从右开始查找,返回下标位置为14
2. 字符串修改
修改字符串,是指通过函数修改字符串中的数据。
(1)替换:replace()
语法:
字符串序列.replace(旧子串,新子串,替换次数)
注意:替换次数如果查出子串出现次数,则替换次数为该子串出现次数。
简单案例:
a = "java and html and python"
# 1.替换replace() --返回的是修改后的字符串数据,不改变原有字符串数据
new_a1 = a.replace('and','he')
print(a) # java and html and python
print(new_a1) # java he html he python
new_a2 = a.replace('and','he',1)
print(new_a2) # java he html and python
(2)分割:split()
将字符串分割成一个列表。
语法:
字符串序列.split(分割字符,num)
注意:num表示的是分割字符出现的次数,即将来返回数据个数为num+1个。
如果分割字符是原有字符串中的子串,分割后则丢失该子串。
简单案例:
a = "java and html and python"
# 2.split() --分割,返回一个列表,丢失分割字符
new_a3 = a.split('and')
print(new_a3) # ['java ', ' html ', ' python']
new_a4 = a.split('and',1)
print(new_a4) # ['java ', ' html and python']
(3)合并:join()
将多个字符串合并为一个新的字符串。
语法:
字符或子串.join(多字符串组成的序列)
简单案例:
# 3.join() --合并列表里面的字符串数据为一个大字符串
b = ['aa','bb','cc']
new_b1 = join(b)
new_b2 = '...'.join(b)
print(new_b1) # aa bb cc
print(new_b2) # aa...bb...cc
(4)大小写转换
capitalize() --将字符串的第一个字符转换成大写
title() --将字符串每个首字母转换成大写
lower() --大写转小写
upper() --小写转大写
简单案例:
# 4.capitalize() --将字符串的第一个字符转换成大写
a = "java and html and python"
a5 = a.capitalize()
print(a5) # Java and html and python
# 5.title() --将字符串每个首字母转换成大写
a5 = "java and html and python"
new_a5 = a.title()
print(new_a5) # Java And Html And Python
# 6.lower() --大写转小写
a6 = "Java And Html And Python"
new_a6 = a.lower()
print(new_a6) # java and html and python
# 7.upper() --小写转大写
a7 = "java and html and python"
new_a7 = a.upper()
print(new_a7 ) # JAVA AND HTML AND PYTHON
3. 删除空白字符
(1)删除字符串左侧空白字符
(2)删除字符串右侧空白字符
(3)删除字符串两侧空白字符
a = " java and html and python "
# 1.删除字符串左侧空白字符
new_a1 = a.lstrip()
print(new_a1) # 'java and html and python '
# 2.删除字符串右侧空白字符
new_a2 = a.rstrip()
print(new_a2) # ' java and html and python'
# 3.删除字符串两侧空白字符
new_a3 = a.strip()
print(new_a3) # 'java and html and python'
4. 字符串对齐
(1) ljust()
返回一个原字符串左对齐,并使用指定字符(默认空格)填充至对应长度的新字符串。
语法:
字符串序列.ljust(长度,填充字符)
(2)rjust()
返回一个原字符串右对齐,并使用指定字符(默认空格)填充至对应长度的新字符串。
语法:
字符串序列.rjust(长度,填充字符)
(3)center()
返回一个原字符串居中对齐,并使用指定字符(默认空格)填充至对应长度的新字符串。
语法:
字符串序列.center(长度,填充字符)
输出效果:
a = 'hello'