认识String字符串
- 字符串可以使用单引号或双引号来表示,例如:"Hello World"。
- 字符串表示一串字符的序列。是一种不可变的数据类型,即不能直接修改字符串中的某个字符,只能通过创建一个新的字符串来实现修改。
- 字符串也是一个容器,那必然可以进行各种操作。
1、string的创建和拼接:
可以使用单引号或双引号来创建字符串。
string1 = 'Hello, World!' string2 = "Python is Awesome"
字符串的拼接:
s1 = "abc"
s2 = '123'
s = s1+s2
print(s) # 运行结果 : abc123
2、string的修改/删除:
2.1 替换 : replace
语法:replace(“旧子串”,“新子串”,“替换次数”)
返回:新的字符串
s1 = "aabbcadaaa"
s2 = s1.replace('a', '1')
# 第三个参数不写,代表替换所有,返回是新的字符串
print(s1) # aabbcadaaa
print(s2) # 11bbc1d111
2.2 分割:split
语法: str.split('分割串',‘执行分割次数’)
返回 : list列表
s1 = "ab-cd-ef"
# 参数1:用什么分割,参数2 :分割几次,
lst = s1.split('-')
print(lst) # ['ab', 'cd', 'ef']
2.3 按行分割:splitlines
语法:str.splitlines([keepend])
返回:列表
s1 = '''故乡的云,
远古的玉,
随手的诗,
19岁的你。'''
#可选参数:keepend :子串是否包含换行符:默认False
result = s1.splitlines()
print(result)
# 运行结果: ['故乡的云,', '远古的玉,', '随手的诗,', '19岁的你。']
2.4 分三块:partition
语法 : str.partition(‘分割串’) --- 只有一个参数,不能省略。
返回 :tuple元祖
s1 = "ab-cd-ef"
#参数只有一个,以什么子串分为三份
tpl= s1.partition('cd')
print(tpl) # ('ab-', 'cd', '-ef')
2.5 转换:
- capitalize : 字符串首字母变大写;
- title:字符串每个单词的首字母大写;
- lower :字符串转小写;
- upper:字符串转大写;
s1 = "hello world"
print(s1.capitalize()) # Hello world
print(s1.title()) # Hello World
print(s1.upper()) # HELLO WORLD
2.6 判断:
- startswith / endswish: 判断是否以 xxx 开始 / 结束;
- 语法:str.startswish ( xxx ,【开始查的下标,结束下标】);
- 返回:bool值;
- isalnum :判断串是否完全由字母或数字组成;
- isalpha :判断是否完全由字母组成;
- isdigit :判断是否完全由数字组成;
- isspace :判断是否为空格;
2.7 strip:删除字符串两端的指定字符;
语法: str.strip( 【指定的字符】) ---- 不指定参数,会删除空格!
返回:删除两端字符的新串;
扩展:
- str.lstrip() :删除左边的字符;
- str.rstrip():删除右边的字符;
3、string的查询☆:
3.1 find():
语法:str.find(要查询的子串,【开始查询的位置下标,结束查询位置下标】)
返回:子串第一次出现的索引;
s = "abcdefg"
res = s.find('b')
print(res) # 1
3.2 index():
语法: str.index( '查询的子串',【开始查询的索引,结束查询的索引】)
返回:子串第一次出现的索引;
index和find对比:
- 如果找不到字符串,index报错,find返回-1; --- 推荐使用find;
- 如果可以找到,两者都返回字符串首字符的索引值;
4、切片:切出一个片段!
在Python中,切片是指从一个序列(如字符串、列表或元组)中提取出一个子序列的操作。
语法: object【start :stop:step】
- start表示切片的起始索引(默认为0);
- stop表示切片的结束索引(默认为序列的长度);
- step表示切片的步长(默认为1)。 ---正负号觉得切取方向;
返回:一个新的字符串。
注意:切片操作不会修改原始序列,而是返回一个新的序列。
#字符串使用切片:参数
s = "abcdefghi"
print(s[::]) # abcdefghi
print(s[1:10:2]) # bdfh 从索引1开始,到索引10结束,每隔两个步长截取