索引
lstr = "This is my program"
print(lstr[2]) # 左数第三个字母 i
print(lstr[-2]) # 右数第二个字母 a
拼接和拷贝
mstr = "hello" #不要用str做变量名,是内置函数
nstr = "word"
print(mstr+" "+nstr) # hello word
print(nstr * 2) # wordword
切片
切片操作是访问有序序列中元素的另外一种方法。它可以访问一定范围的元素。通过切片操作可以生成一个新的序列。实现切片操作的语法如下:
sname[start: end: step]
sname:序列的名称
start:表示切片开始的位置(包括该位置),如果不指定默认为0.
end:切片的截止位置(不包括该位置),如果不指定,则默认为序列的长度
step:表示切片的步长,如果省略则默认为1,省略步长时,最后一个冒号也要省略
这里start和end都是索引
切片截取原则是:包头不包尾
- [:] 提取从开头(默认位置0)到结尾(默认位置-1)的整个字符串
- [start:] 从start 提取到结尾
- [:end] 从开头提取到end - 1
- [start:end] 从start 提取到end - 1
- start: end: step] 从start 提取到end - 1,每step 个字符提取一个
- 左侧第一个字符的位置/偏移量为0,右侧最后一个字符的位置/偏移量为-1
mstr = "Ifprideisnot captured in the cold sea of reality"
print(mstr[0:3]) # 包头不包尾,从索引为0位置截取到索引为2的位置 Ifp
print(mstr[2:10:2]) # 最后一个2为步长,即间隔 pies
print(mstr[::3]) # 每隔3个取一个 Iren pr eo afei
print(mstr[::-1]) # 逆序字符串 ytilaer fo aes dloc eht ni derutpac tonsiedirpfI
print(mstr[2:-1]) # 从下标为2的到-2位置 prideisnot captured in the cold sea of realit
大小写转换
name = "waangGuiSen"
print("大写输出:",name.upper()) # 大写输出: WAANGGUISEN
print("小写输出:",name.lower()) # 小写输出: waangguisen
print("字符串首字母大写:",name.capitalize()) # 首字母大写: Waangguisen
word = "If pride is not captured in the cold sea of reality"
print("单词首字母大写:",word.title()) # 单词首字母大写: If Pride Is Not Captured In The Cold Sea Of Reality
去空格
word = " abcd "
print(word) # abcd
print("删除左端空白",word.lstrip()) # 删除左端空白 abcd
print("删除右端空白",word.rstrip()) # 删除右端空白 abcd
print("删除左右两端空白",word.strip()) # 删除左右两端空白 abcd
字符串格式化
- 使用 %
- 或者 format
# %填充
str1 = "good luck to %d"
print(str1 % 3) # good luck to 3
str2 = "good luck to %s"
print(str2 %"you") # good luck to you
name = input("姓名:")
age = int(input("年龄:"))
print("%s,%d" % (name, age))
# 姓名:张三
# 年龄:23
# 张三,23
# format输出
name = input("姓名:")
age = int(float(input("年龄:")))
print("姓名:{},年龄:{}".format(name, age))
# 姓名:张三
# 年龄:3.14
# 姓名:张三,年龄:3
word = "good luck"
print("{1} good luck {0}".format("good", "luck"))
# luck good luck good
print("your name is {name} and age is {age}".format(name="张三", age="23"))
# your name is 张三 and age is 23
name, age ="张三", "23"
print("your name is {name} and age is {age}".format(name=name, age=age))
# your name is 张三 and age is 23
查找
find
基本语法:str.find(str, beg=0, end=len(string))
- str – 指定检索的字符串
- beg – 开始索引,默认为0。
- end – 结束索引,默认为字符串的长度。
- 如果包含子字符串返回开始的索引值,否则返回-1
mstr = "good good study day day up"
mindex = mstr.find("good")
print(mindex) # 0
mstr = "good good study day day up"
mindex = mstr.find("good",1) # 从下标1开始查找
print(mindex) # 5
index
基本语法:str.index(str, beg=0, end=len(string))
- str – 指定检索的字符串
- beg – 开始索引,默认为0
- end – 结束索引,默认为字符串的长度。
- 如果包含子字符串返回开始的索引值,否则抛出异常。
count
基本语法:count(sub, start= 0,end=len(string))
- sub – 搜索的子字符串
- start – 字符串开始搜索的位置。默认为第一个字符,
第一个字符索引值为0。 - end – 字符串中结束搜索的位置。字符中第一个字符
的索引为 0。默认为字符串的最后一个位置 - 该方法返回子字符串在字符串中出现的次数。
mstr = "good good study day day up"
mindex = mstr.count("good")
print(mindex) # 2
替换
基本语法:replace(old, new[, max])
- old – 将被替换的子字符串。
- new – 新字符串,用于替换old子字符串
- max – 可选字符串, 替换不超过 max 次
- 返回字符串中的 old(旧字符串) 替换
成 new(新字符串)后生成的新字符串 - 如果指定第三个参数max,则替换不超过 max 次
mstr = "good good study day day up"
nstr = mstr.replace("good","GOOD")
print(nstr) # GOOD GOOD study day day up
print(mstr) # good good study day day up
截取
基本语法:split(str="", num=string.count(str))
- str – 分隔符,默认为所有的空字符,
包括空格、换行(\n)、制表符(\t)等。 - num – 分割次数。默认为 -1, 即分隔所有
- 返回分割后的字符串列表
mstr = "good good study day day up"
nstr = mstr.split(" ")
print(nstr) # ['good', 'good', 'study', 'day', 'day', 'up']
mstr = "good good study day day up"
nstr = mstr.split(" ",2)
print(nstr) # ['good', 'good', 'study day day up']
检查字符串
startswith
startswith(str, beg=0,end=len(string));
方法用于检查字符串是否是以指定子字符串开头
- str – 检测的字符串。
- strbeg – 可选参数用于设置字符串检测的起始位置
- strend – 可选参数用于设置字符串检测的结束位置
- 如果检测到字符串则返回True,否则返回False。
mstr = "good good study day day up"
mbool = mstr.startswith("g")
nbool = mstr.startswith("g",2,5) # 2-5是否以g开头
print(mbool) # True
print(nbool) # False
endswith
endswith(suffix[, start[, end]])
判断字符串是否以指定后缀结尾:
- suffix – 该参数可以是一个字符串或者是一个元素。
- start – 字符串中的开始位置。
- end – 字符中结束位置。
- 如果字符串含有指定的后缀返回True,否则返回False。
对齐字符串
ljust
ljust(width[, fillchar])
方法返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串。
- width – 指定字符串长度。
- fillchar – 填充字符,默认为空格。
- 返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串
rjust
rjust(width[, fillchar])
返回一个原字符串右对齐,
- width – 指定填充指定字符后中字符串的总长度.
- fillchar – 填充的字符,默认为空格
- 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串。如果指定的长度小于字符串的长度则返回原字符串
prthon中的转译字符
有的时候你可能需要连同转义字符一并输出,这时我们在字符串的第一个引号前加r或者R表示原样输出