字符串
认识字符串
字符串是py中最常用的数据类型,一般使用引号创建。
a = 'hello,world'
字符串特征
- 单引号字符串
a = 'tom'
- 双引号字符串
a = "tony"
- 三引号字符串 三引号可以回车换行显示
字符串输出
print('hello,world')
name = 'tom'
print('我的名字是%s' %name)#我的名字是tom
print(f'我的名字是{name}')# 我的名字是tom
字符串输入
在py中,用input()接受用户的输入,返回的是字符串(str)类型
下标
下标
又叫 索引
,就是编号,作用既是通过下标快速查到对应的数据;
下标
不仅在字符串有使用,列表和元组也有使用;
下标
从0开始
str = 'abcdefg'
print(str[0])#a
切片
切片是指对操作的对象截取其中一部分的操作,字符串、列表、元组都支持切片操作;
语法:序列[开始位置下标:结束位置下标:步长]
注意:
- 不包含结束位置的下标对应的数据,正负整数均可
- 步长是选取间隔,正负数均可,默认步长为1。
体验:
str = 'abcdefg'
print(str[0:3:1]) #abc
print(str[-3:-1]) #ef
#如果选取方向(下标开始到结束的方向)和步长的方向冲突,则无法选取数据
字符串常用操作方法(函数名字,函数的作用,函数参数的传递方式)
4.1查找
所谓字符串查找方法既是查找子串在字符串中的位置或出现的次数
- find():检测某个⼦串是否包含在这个字符串中,如果在返回这个⼦串开始的位置下标,否则则返
回-1。
字符串序列.find(⼦串, 开始位置下标, 结束位置下标)
注意:开始和结束位置下标可以省略,表示在整个字符串序列中查找。
- index():检测某个⼦串是否包含在这个字符串中,如果在返回这个⼦串开始的位置下标,否则则
报异常。
字符串序列.index(⼦串, 开始位置下标, 结束位置下标)
注意:开始和结束位置下标可以省略,表示在整个字符串序列中查找。
- rfind(): 和find()功能相同,但查找⽅向为右侧开始
- rindex():和index()功能相同,但查找⽅向为右侧开始。
- count():返回某个⼦串在字符串中出现的次数
字符串序列.count(⼦串, 开始位置下标, 结束位置下标)
注意:开始和结束位置下标可以省略,表示在整个字符串序列中查找
4.2修改
所谓修改字符串,指的就是通过函数的形式修改字符串中的数据。
- replace():替换
字符串序列.replace(旧⼦串, 新⼦串, 替换次数)
注意:替换次数如果查出⼦串出现次数,则替换次数为该⼦串出现次数
replace有返回值,为修改后的字符串,不会改变原有字符串。
- split():按照指定字符分割字符串
字符串序列.split(分割字符, num)
注意:num表示的是分割字符出现的次数,即将来返回数据个数为num+1个。
- join():⽤⼀个字符或⼦串合并字符串,即是将多个字符串合并为⼀个新的字符串。
字符或⼦串.join(多字符串组成的序列)
list1 = ['chuan', 'zhi', 'bo', 'ke']
t1 = ('aa', 'b', 'cc', 'ddd')
# 结果:chuan_zhi_bo_ke
print('_'.join(list1))
# 结果:aa...b...cc...ddd
print('...'.join(t1))
大小写转换
- capitalize():将字符串第⼀个字符转换成⼤写。
注意:capitalize()函数转换后,只字符串第⼀个字符⼤写,其他的字符全都⼩写。
- title():将字符串每个单词⾸字⺟转换成⼤写。
- lower():将字符串中⼤写转⼩写。
- upper():将字符串中⼩写转⼤写。
字符串对齐
- ljust():返回⼀个原字符串左对⻬,并使⽤指定字符(默认空格)填充⾄对应⻓度 的新字符串。
字符串序列.ljust(⻓度, 填充字符)
- rjust():返回⼀个原字符串右对⻬,并使⽤指定字符(默认空格)填充⾄对应⻓度 的新字符串,语法和
ljust()相同。 - center():返回⼀个原字符串居中对⻬,并使⽤指定字符(默认空格)填充⾄对应⻓度 的新字符串,语
法和ljust()相同。
4.3删除
- lstrip():删除字符串左侧空⽩字符。
- rstrip():删除字符串右侧空⽩字符。
- strip():删除字符串两侧空⽩字符。
4.4判断
所谓判断即是判断真假,返回的结果是布尔型数据类型:True 或 False。
- startswith():检查字符串是否是以指定⼦串开头,是则返回 True,否则返回 False。如果设置开
始和结束位置下标,则在指定范围内检查。
字符串序列.startswith(⼦串, 开始位置下标, 结束位置下标):开始结束下标可省略
- endswith()::检查字符串是否是以指定⼦串结尾,是则返回 True,否则返回 False。如果设置开
始和结束位置下标,则在指定范围内检查。
字符串序列.endswith(⼦串, 开始位置下标, 结束位置下标)
- isalpha():如果字符串⾄少有⼀个字符并且所有字符都是字⺟则返回 True, 否则返回 False。
- isdigit():如果字符串只包含数字则返回 True 否则返回 False。
- isalnum():如果字符串⾄少有⼀个字符并且所有字符都是字⺟或数字则返 回 True,否则返回
False。 - isspace():如果字符串中只包含空⽩,则返回 True,否则返回 False。