字符串
一、字符串的创建
字符串为Python中的一种数据类型,可以使用(‘或“)来创建字符串;
#单引号创建
var1 = 'Hello World VAR1!'
#双引号创建
var2 = "Hello World VAR2!"
#三引号创建,三引号可以写入多行数据
var3 = '''
Hello World VAR3!
'''
三种创建方式打印结果分别为
Hello World VAR1!
Hello World VAR2!
Hello World VAR3!
二、字符串的索引
字符串中包含了多个字符,字符串的索引用于在一个字符串中定位一个或几个字符,使用 变量名[index]来定位字符
注:字符串的索引是从0开始
var = "Hello world!"
print(var[0])
print(var[2])
#输出结果
H
l
切片
切片用于截取其中的部分内容
语法: str[start : end: step]
start: 起始位置,如不填写,则默认为从头开始
end:终止位置(不包含),如不填写,则默认为到结尾
step:切片步长,如不填写则默认为步长为1
name = "hellopython"
#从至右截取:
print(name[2:5]) #输出:llo(不含第五个)
print(name[2:5:1]) #输出:llo(不含第五个)和print(name[2:5])等价
print(name[:5]) #输出:hello
print(name[:5:2]) #输出:hlo 步长为2
#从右往左截取:
print(name[-4:-1]) #输出:tho 倒数第四个到倒数第一个(不含)
#倒着打印:
print(name[::-1]) #输出: nohtypolleh
三、常用方法
查找
在字符串中查找是否存在或出现几次
查找是否存在:
find(seq, start, end)
seq:字符信息,加引号
start:查找起始位置
end:查找终止位置
index(seq, start, end)
seq:字符信息,加引号
start:查找起始位置
end:查找终止位置
find()与index()均可以用于查找数据位置,区别在于,find未查找会返回 -1,index未查找到会返回一个异常,index一般与try一起使用
count(seq,start, end)
seq:字符信息,加引号
start:查找起始位置
end:查找终止位置
从start至end中间包含了多少次seq
name = "hello World!!"
print(name.find("8")) #输出: -1
print(name.find("e")) #输出: 1
print(name.index("8")) #输出: ValueError: substring not found
print(name.count("l")) #输出: 3
print(name.count("l", 3)) #输出: 2 从第三字符开始查找
修改
替换字符串:
替换字符内容,将一部分字符替换为新的字符
replace(oldseq,newseq, count)
oldseq: 旧字符
newseq:新字符
count: 修改次数
var = "hello and python and hello world"
print(var.replace("and","和"))
# 输出:hello 和 python 和 hello world 全部替换
print(var.replace("and","和",1))
# 输出:hello 和 python and hello world 仅替换一次
切割字符串:
返回一个列表
split(seq, num)
seq:切割标志
num:切割次数
#以空格为标志切割
var = "Hello World Hi python"
print(var.split(" "))
#输出:['Hello', 'World', 'Hi', 'python']
print(var.split(" ", 1))
#输出:['Hello', 'World Hi python']
合并字符串:
var1.join(多字符串组成的序列)
var1为合并时连接使用的字符
多字符串组成的序列:可以使用列表,元组,集合
# 字符.join(多字符串组成的序列)
list1 = ["hello", "python", "i", "love", "you"]
t1 = ("hello", "python", "i", "love", "you")
set1 = {"hello", "python", "i", "love", "you"}
print("__".join(list1))
# 将列表转化为字符串,并且使用指定符号隔开
#输出:hello__python__i__love__you
print(",".join(t1))
# 将元组转化为字符串,并且使用指定符号隔开
#输出:hello,python,i,love,you
print("|".join(set1))
# 将集合转化为字符串,并且使用指定符号隔开
#输出:python|you|love|i|hello
#集合信息特点,唯一且无序,所以每次的连接结果均不一致
转换
下表中均使用此变量
var = “hello and python and hello world”
另外,以下内容均针对英文字符串
方法 | 含义 |
---|---|
capitalize() | 将字符串第⼀个字符转换成⼤写 |
title() | 将字符串每个单词⾸字⺟转换成⼤写 |
upper() | 将全部字符串中⼩写转⼤写 |
lower() | 将全部字符串中⼤写转⼩写 |
strip() | 删除字符串两侧空⽩字符 |
ljust() | 左填充字符串 |
rjust() | 右填充字符串 |
center() | 两侧填充字符串 |
检查字符内容
方法 | 含义 |
---|---|
startswith() | 检查字符串是否是以指定元素开头 |
endswith() | 检查字符串是否是以指定元素结尾 |
isalpha() | 如果字符串所有字符都是字⺟则返回 True, 否则返回 False |
isdigit() | 如果字符串只包含数字则返回 True 否则返回 False |
isalnum() | 如果字符串所有字符都是字⺟或数字则返 回 True,否则返回False |
isspace() | 如果字符串中只包含空⽩,则返回 True,否则返回 False |
字符串运算
a = “Hello”,b = “Python”
+ | 字符串连接 | >>>a + b | ‘HelloPython’ |
---|---|---|---|
[] | 通过索引获取字符串中字符 | >>>a[1] | ‘e’ |
[ : ] | 截取字符串中的一部分 | >>>a[1:4] | ‘ell’ |
in | 成员运算符 - 如果字符串中包含给定的字符返回 True | >>>“H” in a | True |
not in | 成员运算符 - 如果字符串中不包含给定的字符返回 True | >>>“M” not in a | True |
r | 取消转义 | >>>r“你\n好” | 你\n好 |