python---字符串常用操作(超详细)

在这里插入图片描述

索引

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表示原样输出

在这里插入图片描述

更多格式化输出

在这里插入图片描述

发布了213 篇原创文章 · 获赞 104 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_42363032/article/details/104434160
今日推荐