字符串是python中常用的数据类型,通常是由双引号 或 单引号括起来的数字、字母、下划线等组成,通过一个等号赋值给一个变量;
先来复习一下之前学的关于字符串的一些基础知识哈~
字符串取值: 有两种取值方法
- 从左到右索引默认0开始,最大时字符串长度减1
- 从右开始索引默认-1开始,
字符串切片:str[头下标: 尾下标: 步长],头下标不写,默认从头取值,尾下标不写默认取到尾,步长不写默认尾1,左开右闭原则,即不包含尾下标的字符;
字符串运算符:
操作符 | 描述 |
---|---|
+ | 字符串连接 |
* | 重复输出字符串 |
in | 成员运算符,如果字符串中含给定的字符串返回True |
not in | 成员运算符,如果字符串中不包含给定的字符串则返回True |
字符串格式化:
- %s - 格式化字符串; %d - 格式化整数; %f - 格式化浮点数,默认保留6尾小数可指定小数点后的精度;
- “str{等待插入的数据 }”.format( “要插入的值”)
- 简写 :如下,是.format的另一种写法
name1 = "小明"
name2 = "小红"
print(f"我的名字{name2},你的名字{name1}")
字符串常用的方法
- string.index(str, beg=0, end=len(string)) : 返回某个或者某些字符串中的位置, 默认从头开始查找,也可以指定位置进行查找,str:指定检索的字符串,beg:开始索引,默认为0,end:结束索引,默认为字符串的长度;
- string.find(str) : 返回字符在字符串中的位置,如果找不到字符则返回-1(可指定位置查找);
- string.count(str): 返回字符在字符串中出现的次数,可指定起始位置(可指定位置查找);
- string.isdigit(str): 判断字符串中是否只包含数字,如果是纯数字则返回True,否则返回False;
- string.strip(str): 默认去除空格,只能去两端,不能去除中间的空格;
- string.replace(参数1,参数2): 替换指定的字符,参数1:表示要替换的字符,参数2:表示替换后的字符,返回的是str类型;
- string.startwith(str): 判断字符串是否以某个或某些字符开头,返回布尔类型 (可指定位置查找);
- string.endswith(str): 判断字符串是否以某个或某些 字符结尾,返回布尔类型 (可指定位置查找);
- string.split(str): 切割字符串,以参数作为分隔符,切割后得到的是一个列表;
str1 = 'abcdef'
str1_num = '12345'
print(str1.index('c')) # 返回某个或某些字符在字符串中的起始位置,默认从头开始查找,也可以指定起始位置进行查找
print(str1.find('g')) # index()找不到值抛异常,find()找不到值返回-1
print(str1.count('c')) # 返回字符在字符串中出现的次数
print(str1.count('c', 0, 2)) # 返回指定范围内字符在字符串中出现的次数,如果不写默认整个字符串
print(str1.isdigit()) # False 判断字符串是否只包含数字,如果是返回True,否则返回False
print(str1_num.isdigit()) # True
str2 =' ***a b c *** '
print(str2.strip()) # strip() 默认去空格, 只能去两端的,不能去除中间的空格
# replace(参数1, 参数2) # 替换指定的字符,参数1:需要替换的字符,参数2:替换后的字符,返回str类型
str3 =' ***a b c *** '
str3_new = str3.replace('*', '').replace(' ', '')
print(str3_new)
# startwith() 判断字符串是否以某个或者某些字符串开头,返回的是布尔类型
# endswith() 判断字符串是否以某个或某些 字符串结尾,返回布尔值
id_card = '410210419910209345X'
if id_card.startswith('3201'):
print('南京的身份证')
else:
print('非南京身份证')
print(id_card.endswith('X')) # True 字符串已X结尾所以返回True
print(id_card.endswith('X', 0, 13)) # False 指定下标从0-13之间是否以X结束,如果是返回True,如果否返回False