Python——标准数据类型(字符串)

60 阅读3分钟

字符串:

  • 特性:不可变,是序列
  • 单行字符串:用一对单引号或一对双引号定义
s1 = '这是一个单行字符串'
  • 多行字符串:用三个成对的单引号或双引号定义(
s3 = '''这是一个 多行字符串'''

常用函数

str(object=''): 返回 object 的字符串格式

print(str(1234))  # '1234' 类型变成了字符串

type(object) :返回object的数据类型

s1 = 'hello world'
print(type(s1)) #<class 'str'>

转义字符

在字符串中,反斜杠和特定的字符可以组成转义字符

image.png

image.png

Raw 字符串 在字符串前面加r,避免转义(这个会在正则表达式中用到)

print(r'https:\\www.example.com\nuxy\tngj')

字符串格式化

  • % 格式化(不必理会)
  • format方法格式化(不必理会)
  • f-string格式化
name = '旺财' 
age1 = 2 
age2 = 3.2
print(fr'它说它叫{name},\n它{age1}岁,\n它宝宝{age2} 个月了!')
#输出:它说它叫旺财,\n它2岁,\n它宝宝3.20 个月了!

字符串方法:

str.replace(old, new, count=-1)

  • 用新字符串替换旧字符串并返回
  • count:要替换的最大次数,默认不限制替换次数
# 用 "b" 替换所有的 "Li"
s = "Line1 Line2 Line4"
print(s.replace("Li", "b")) #输出:bne1 bne2 bne4

str.strip([chars]) :

  • str:要修改的字符串
  • chars:放要移除的字符
  • 删除字符串左右两边指定的字符
# 删除字符串两边的'c','w','o','m'字符
str3 = 'www.example.com' 
print(str3.strip("cwom"))   #输出:.example.

str.startswith(prefix[, start[, end]])

  • start:开始索引【默认为0】
  • end:结束索引【默认 len(str)】
  • 判定字符串是否以 prefix 指定的值开始
str1 = "hello world"
print(str1.startswith("h"))  #True
print(str1.startswith("o"))  #False

str.isdigit()

  • 判定字符串中的每个字符是否都为数字型的字符
string = '1234' 
print(string.isdigit())  # True

str.split(sep=None, maxsplit=-1)

  • sep:分隔符
  • maxsplit:最大分隔次数
  • 通过指定的分隔符对字符串进行分割,以列表的形式返回
s = " Line1  \nLine2   \tLine3"
print(s.split('Li', 2))    #[' ', 'ne1  \n', 'ne2   \tLine3']

str.join(iterable)

  • iterable:包括 string、list、tuple、dict、set等等
  • 将可迭代对象中的元素(元素必须是字符串)以指定的字符串连接,返回新的字符串
s = '-.'
s1 = 'hello world'
print(s.join(s1))   #h-.e-.l-.l-.o-. -.w-.o-.r-.l-.d
print(type(s1))   #<class 'str'>

str.count(sub, [start[, end]])

  • sub:需要查找的字符串
  • start:开始索引,默认为0
  • end:结束索引(开区间!!!!),默认为 len(str)
  • 返回 sub 在字符串中出现的非重叠的次数
s = "hello world"
print(s.count('l'))  # 3
print(s.count('l', 3, 6))  # 1

str.find(sub[, start[, end]])

  • 返回从左边开始第一次找到指定字符串时的正向索引,找不到就返 回 -1

str.rfind(sub[, start[, end]])

  • 返回从右边开始第一次找到指定字符串时的正向索引,找不到就返 回 -1

str.index(sub[, start[, end]])

  • 类似于find(),唯一不同在于,找不到就会报错

str.rindex(sub[, start[, end]])

  • 类似于rfind(),唯一不同在于,找不到就会报错

str.capitalize()

  • 将字符串的首字母变成大写,其他字母变小写,并返回

str.title()

  • 将字符串中所有单词的首字母变成大写,其他字母变小写,并返回

str.upper()

  • 将字符串中所有字符变成大写,并返回

str.lower()

  • 将字符串中所有字符变成小写,并返回

str.swapcase()

  • 将字符串中所有大写字符变成小写,小写变成大写,并返回