学习笔记 - Python-字符串操作

1.字符串

基础操作

s = “hello world hello Python”

  1. len(s)

  2. count() 返回 strstring 里面出现的次数,如果 start 或者 end 指定则返回指定范围内 str 出现的次数 格式:count(str, start, end)

   s = "hello world hello Python"
   n = s.count("o",10,30)
  1. index() 检测 sub 是否包含在 string 中,如果 startend 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则抛出一个异常 格式:
# index(sub, start, end)
print(s.index("l"))
print(s.index("l",0,3)) # 区间使用下标位置,左闭右开区间
  1. rindex() 作用同 index() ,查找子串时从右侧查找,若找不到会抛出一个异常 格式:rindex(sub, start, end)
print(s.rindex("l"))
print(s.rindex("l",0,3))
  1. find() 检测 sub 是否包含在 string 中,如果 startend 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回-1 格式:find(sub, start, end)
print(s.find("l"))
print(s.find("l",0,3))
print(s.find("k"))
  1. rfind() 作用同 find() ,查找子串时从右侧查找,若找不到会抛出一个异常 格式:rfind(sub, start, end)
print(s.rfind("l"))
print(s.rfind("l",0,3))
print(s.rfind("k"))
  1. replace() 把 string 中的 old 替换成 new,如果 max 指定,则替换不超过 max 次. 格式:replace(old, new, max)
print(s.replace("ll","LL"))
print(s.replace("l","L",4))

字符串判断

url = “https://www.ceshiren.com
1.startwith() 检查字符串是否是以 prefix 开头,是则返回 True,否则返回 False。如果 start 和 end 指定值,则在指定范围内检查. 格式:startwith(prefix, start, end)

print(url.startswith("https://"))
print(url.startswith("https://", 0, 3))
print(url.startswith("https://", 5, 30))
  1. endswith() 检查字符串是否是以 suffix 开头,是则返回 True,否则返回 False。如果 start 和 end 指定值,则在指定范围内检查. 格式:endwith(suffix, start, end)
print(url.endswith(".com"))
print(url.endswith(".com", 0, 20))
print(url.endswith(".com", 5, 30))
  1. isalpha() 如果 string 至少有一个字符并且所有字符都是字母则返回 True, 否则返回 False 格式:isalpha()
print("abc".isalpha())
print("ABC".isalpha())
print("ABCabc".isalpha())
print("123".isalpha())
print("a b".isalpha())
print("abc123".isalpha())
print("123abc".isalpha())
print("a@".isalpha())
print("".isalpha())
  1. isdigit() 如果 string 只包含数字则返回 True 否则返回 False. 格式:isdigit()
print("123".isdigit())
print("123abc".isdigit())
print("abc123".isdigit())
print("".isdigit())
  1. isalnum() 如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False 格式:isalnum()
print("abc".isalnum())
print("ABC".isalnum())
print("ABCabc".isalnum())
print("123".isalnum())
print("abc123".isalnum())
print("123abc".isalnum())
print("a b".isalnum())
print("a@".isalnum())
print("".isalnum())

6.isspace() 如果 string 中只包含空格,则返回 True,否则返回 False. 格式:isspace()

print(" ".isspace())
print("    ".isspace()) # tab键,由4个空白组成
print("\t".isspace())
print("\n".isspace())
print("\r".isspace())
print("".isspace())
print(" a".isspace())
print("1 ".isspace())

7.isupper() 如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False 格式:isupper()

print("ABC".isupper())
print("ABC123".isupper())
print("123ABC".isupper())
print("A!@#B".isupper())
print("abc".isupper())
print("abC".isupper())
print("abc123".isupper())
print("Abc!@#".isupper())
print("123".isupper())
print("".isupper())
print(" ".isupper())

类似的还有islower(),istitle()

字符串转换类

upper() 转换 string 中的小写字母为大写 格式:upper()
capitalize() 把字符串的第一个字符大写 格式:capitalize()
title() 返回"标题化"的 string,就是说所有单词都是以大写开始,其余字母均为小写 格式:title()
print("this is username".title())

字符串去除空白类

strip() 删除 string 左右两侧的空白字符, 如果指定chars参数,则删除左右两侧指定的字符 格式:strip(chars),类似的有lstrip()、rstrip()

字符串分割类

split() 以 sep 为分隔符分割 string,如果指定 maxsplit 参数,则仅分割 maxsplit次 格式:split(sep, maxsplit)

print("a-+b-c-d".split("-+"))

字符串连接类

+号 将两个字符串连接生成一个新字符串, + 号两侧必须都是字符串 格式:str1 + str2
*号 将字符串重复N次后生成一个新字符串 格式:str * n
join() 使用 string 连接可迭代对象中的所有元素,可迭代对象参数中的所有元素必须是字符串 格式:join(iterable)

print("->".join(("a","b","c")))
结果:
a->b->c

切片操作

对字符串按指定的范围进行截取,得到一个子字符串,指定范围时,起始下标必须小于结束下标,且子字符串不包含结束下标

格式:str[start: end: step]
指定步长
print(s[::1])