python -- 字符串

本贴最后更新于 980 天前,其中的信息可能已经沧海桑田

一、字符串特性

  1. 字符串不可修改
  2. 有序的
  3. 可迭代的

二、字符串创建

  1. 单引号
  2. 三双引号或者三单引号
  3. 创建空字符串

三、字符串的操作

字符串的访问:通过索引访问,索引从0开始

test = ("adbcg","112asda",'221122',2)
print(test)

字符串的切片

语法:string【起始索引值 :结束索引值 :步长】

正序切片从0开始,步长默认是1 test[0:6:1]

倒序切片从-1开始,步长是-1 test[-7:-2:-1]

注意点:

  1. 步长不写默认为1
  2. 结束索引不写默认是字符串长度
  3. 起始索引不写默认是0
  4. 索引的取值左闭右开(包含起始索引值,不包含结束索引值)
  5. 步长前面为负(-)表示倒序切片,正(+)表示正序切片(+可以不写)
  6. 正序切片用正序索引,倒序切片用倒序索引
  7. 字符串空格也占一个索引位置

字符串反转:

test_str[::-1]

字符串与运算:

  1. 拼接 +
  2. 重复输出 *

字符串的转义

  1. \
  2. r

字符串的常用方法:

  1. 将所有的字母变成大写 upper
test_str = ('HHSHSnnnnns')
res = test_str.upper()
print(res)
  1. 将所有的字母变成小写 lower
test_str = ('HHSHSnnnnns')
res = test_str.lower()
print(res)
  1. 将字符串的首字母大写 capitalize
test_str = ('aHHSHSnnnnns')
res = test_str.capitalize()
print(res)
  1. 将字符串中大小写互换 swapcase
test_str = ('aHHSHSnnnnns')
res = test_str.swapcase()
print(res)
  1. 将字符串所有单词的首字母大写 title
test_str = ('aHHSHSnnn  nns')
res = test_str.title()
print(res)

统计相关:

  1. 统计某个字符出现的次数 count
test_str = ('aHHSHSnnn  nns')
res = test_str.count('H')
print(res)

  1. 统计长度 len
test_str = ('aHHSHSnnn  nns')
print(len(test_str))
  1. 返回找到的第一个索引值 find
test_str = ('aHHSHSnnn  nns')
res = test_str.find('S')
print(res)
  1. 返回找到的最后一个索引值 rfind
test_str = ('aHHSHSnnn  nns')
res = test_str.rfind('S')
print(res)

判断相关:

  1. 判断字符串是否都是大写 isupper
test_str = ('aHHSHSnnn  nns')
res = test_str.isupper()
print(res)
  1. 判断字符串是否都是小写 islower
test_str = ('aHHSHSnnn  nns')
res = test_str.islower()
print(res)

  1. 判断字符串是否有字母或者数字 isalnum
test_str = ('aHHSHSnnn  nns')
res = test_str.isalnum()
print(res)
  1. 判断是否是空格 isspace
test_str = ('aHHSHSnnn  nns')
res = test_str.isspace()
print(res)
  1. 判断是否都是数字 isdigit
test_str = ('aHHSHSnnn  nns')
res = test_str.isdigit()
print(res)
  1. 判断是否以指定的字符开头 starts with
test_str = ('aHHSHSnnn  nns')
res = test_str.startswith("a")
print(res)
  1. 判断是否以指定的字符结尾 ends with
test_str = ('aHHSHSnnn  nns')
res = test_str.endswith("a")
print(res)

字符串拆分:

参数 F:拆分字符 maxsplit(拆分次数) test.split('F',maxsplit=2)

注意点:

  1. 返回的是一个list
  2. 如果拆分字符不传,默认按空格进行拆分
  3. 拆分字符会被丢弃掉,不会再list中间
  4. 如果拆分字符是第一个,或者是最后一个,此时前后会增加一个空字符串
  5. 如果中间2个拆分字符连续出现,此时拆分的实话会出现一个空格
test_str = ('aFHHSHSFnnn F nns')
res = test_str.split("F")
print(res)

字符串的连接:

使用join

test_str = 'haahbbhhhcchddh'
test_str2="*"
res = test_str2.join(test_str)
print(res) #连接
print(test_str+test_str2)  #拼接,收尾相连

字符串替换:

test_str = 'haahbbhhhcchddh'
res = test_str.replace('h','*',3)
print(res)
#old:需要替换掉的字符
#new: 需要放进去的字符
#count:替换次数,默认是全部替换

字符串成员运算:

in not in

test_str = 'haahbbhhhcchddh'
print( 'h' in test_str)
print( 'h' not in test_str)

字符串格式化:

  1. %s字符串占位符
price = "this phone is %s" %("100")
print(price)
  1. %d 数值占位符
price = "this phone is %d" %(100)
print(price)
  1. %f 浮点数占位符默认保留6位 %.2f 保留2位小数点
price = "this %.2f phone is %f" %(12.121,100.222)
print(price)

format:

  1. 按顺序取值
name = "my name is {}  age is {}".format("隔壁老王",30)
print(name)
  1. 按索引取值
name = "my name is {1}  age is {0}".format(30,"隔壁老王")
print(name)
  1. 按关键字取值
name = "my name is {name}  age is {age}".format(age=30, name="隔壁老王")
print(name)
回帖
请输入回帖内容 ...