0
点赞
收藏
分享

微信扫一扫

009-Python 常用数据类型操作-字符串类型

无愠色 2022-02-01 阅读 53

话不多说,上代码,看结果。


print('1、###########################################################')

# 字符串
# 非原始字符串  'asdf'
# 原始字符串    r'asdf'
# 二者区别主要是在转义符那
# 常见转义符
# \(在行尾时)续行符  \' 	单引号
# \" 双引号   \n 换行  \t 横向制表符
print('一对单引号')
print('''三对单引号''')
print("一对双引号")
print("""三对双引号""")
print('asdf\t1234')
print(r'asdf\t1234')
print('2、###########################################################')
# 单双引号混用可以避免使用引号转义符
# 引号配对是就近原则
# print('原子弹是个大'烟花'')  # 会报错
print('1、原子弹是个大\'烟花\'')
print("2、原子弹是个大'烟花'")
# 单双引号用于一行代码,跨行时:
# 用 连行符\    用小括号()
# 三引号可直接跨行,用于注释代码
juZi = "3、原子弹是\
个大'烟花'"
print(juZi)
juZi = ("4、原子弹是个大" 
"'烟花'")
print(juZi)
print('''123
456
789''')

print('3、字符串操作-拼接###########################################################')
# 字符串操作
# 字符串拼接 str1 + str2  str1str2  ”xxx%sxxx“%(a+b)  "xxx" * n
print('5、原子弹是个大' + '烟花')
print('6、原子弹是个大''烟花')
print('7、原子弹%s"烟花"' % '是个大')
print('我%s你' % ('爱' * 3))

print('4、字符串操作-切片###########################################################')
# 获取某一个字符    str[下标]
# 下标 字符串中每个字符的编号
# 注意下标越界   负数下标 如果为负数, 则会从尾部开始定位, 开始为-1
str = '0123456789'
print(str[0])
# print(str[10]) # IndexError: string index out of range
print(str[-1])

# 获取一个字符串的某个片段   str[起始:结束:步长]
# 获取范围  [起始, 结束)  默认起始为0,默认结束为len(str)(整个字符串长度), 默认步长为1
# 步长 > 0  从左边到右   步长 < 0   从右往左   不能从头部跳到尾部,不能从尾部跳到头部
str = '0123456789'
print(str[2:9:2])
print(str[2:len(str):2])
print(str[-1:-8: -2])
# print(str[0:8:-2])  # 不能从头部跳到尾部,
print(str[:: -1])  # 反转字符串

print('5、字符串操作-函数-查找###########################################################')
# 有的函数是内建函数,直接使用   有的函数属于对象方法 对象.方法(参数)
# 查找计算
# 计算字符串的字符个数   len(x)
str = '0123456789'
print('计算字符串的字符个数 len(x):', len(str))

# 查找子串索引位置 find(sub, start=0, end=len(str))
# sub 需要检索的字符串  start 检索起始位置默认为0  end结束位置,默认为len(str)
# 找到的话给出指定索引,未找到输出-1
# 这是从左到右查找,找到后立即停止
# rfind 参数一样,是从右到左查找
str = 'i want a new computer'
print('查找子串索引位置:', str.find('a', 1, 9))
print(str.find('a', 1, 4))
print(str.find('z'))  # 没找到
print(str.rfind('e'))

# 获取子串索引位置  index(sub, start=0, end=len(str))
# sub 需要检索的字符串  start 检索起始位置默认为0  end结束位置,默认为len(str)
# 找到的话给出指定索引,未找到报错
# 这是从左到右查找,找到后立即停止
# rindex 参数一样,是从右到左查找
str = 'i want a new computer'
print('获取子串索引位置:', str.index('want'))
# print('获取子串索引位置:', str.index('want1'))  # ValueError: substring not found
print(str.index('a'))
print(str.rindex('er'))
print(str.rindex('a'))

# 计算某个子字符串的出现个数  count(sub, start=0, end=len(str))
# sub 需要检索的字符串  start 检索起始位置默认为0  end结束位置,默认为len(str)
str = 'i want a new computer'
print('计算某个子字符串的出现个数:', str.count("an"))
print(str.count("z"))

print('6、字符串操作-函数-转换###########################################################')
# 转换
# 使用给定的新字符串,替换原字符串中的 旧字符串  replace(old, new[, count])
# old 需要被替换的旧字符串  new 替换后的新字符串
# count  替换的个数  可省略, 表示替换全部
# 并不会修改原字符串本身
str = 'i want a new computer'
print(str.replace('a', 'b', 1))
print(str.replace('a', 'b', 2))
print(str.replace('e', 'xxx'))

# 将字符串首字母变为大写 capitalize()
# 并不会修改原字符串本身
str = 'i want a new computer'
print(str.capitalize())

# 将字符串每个单词的首字母变为大写 title()
# 并不会修改原字符串本身
str = 'i want a new computer'
print(str.title())

# 将字符串每个字符都变为小写 lower()
# 并不会修改原字符串本身
str = 'I Want a NEW computer'
print(str.lower())

# 将字符串每个字符都变为小写 upper()
# 并不会修改原字符串本身
str = 'i want a new computer'
print(str.upper())


print('7、字符串操作-函数-填充压缩###########################################################')
# 填充
# 根据指定字符(1个), 将原字符串填充够指定长度  ljust(width, fillchar) 原字符串靠左
# width 指定结果字符串的长度  fillchar 如果原字符串长度 < 指定长度时  填充过去的字符
# 不会修改原字符串
# 填充字符的长度为1
# 只有原字符串长度 < 指定结果长度时才会填充!!!

# rjust(width, fillchar) 原字符串靠右

# center(width, fillchar) 原字符串靠中
str = '0123456789'
print(str.ljust(13, 'x'))
# print(str.ljust(13, 'xx'))  # TypeError: The fill character must be exactly one character long
print(str.ljust(3, 'x'))
print(str.rjust(13, 'x'))
print(str.center(14, 'x'))

# 压缩
# 移除所有原字符串指定字符(默认为空白字符)  rstrip(chars) 表示从左侧开始移除
# chars  需要移除的字符集
# 不会修改原字符串
# rstrip(chars)  表示从右侧开始移除
str = 'i want a new computer'
print('移除:', str.lstrip('i'))
print(str.rstrip('er'))

print('8、字符串操作-函数-分割拼接###########################################################')
# 分割
# 将一个大的字符串分割成几个子字符串  split(sep, maxsplit)
# sep 分隔符  maxsplit 最大的分割次数  可省略
# 分割后的子字符串组成为列表
# 不会修改原字符
str = 'xxx-21-921-927'
a = str.split('-', 2)
print(a, type(a))

# 根据指定的分隔符, 返回(分隔符左侧内容, 分隔符, 分隔符右侧内容)  partition(sep)
# sep  分隔符
# 如果查找到分隔符  (分隔符左侧内容, 分隔符, 分隔符右侧内容)   tuple 类型
# 如果没有查找到分隔符  (原字符串, "", "")    tuple 类型
# 不会修改原字符串
# rpartition(sep)  表示从右侧开始查找分隔符
str = 'xxx-21-921-927'
a = str.partition('-')
b = str.partition('/')
print(a, type(a), b, type(b))
a = str.rpartition('-')
b = str.rpartition('/')
print(a, type(a), b, type(b))

# 按照换行符(\r, \n), 将字符串拆成多个元素, 保存到列表中   splitlines(keepends)
# keepends 是否保留换行符   bool 类型
# 被换行符分割的多个字符串, 作为元素组成的列表  list 类型
# 不会修改原字符串
str = 'i want\r a new\n computer'
print(str.splitlines(True), type(str.splitlines(True)))
print(str.splitlines(False), type(str.splitlines(False)))

# 拼接
# 根据指定字符串, 将给定的可迭代对象, 进行拼接, 得到拼接后的字符串  join(iterable)
# iterable 可迭代的对象  字符串、元组、列表......
str = '0123456789'
print('x'.join(str), type('x'.join(str)))

print('9、字符串操作-函数-判定###########################################################')
# 判定
# 字符串中是否所有的字符都是字母 isalpha()  bool 类型
# 字符串中是否所有的字符都是数字 isdigit()  bool 类型
# 字符串中是否所有的字符都是字母或数字  isalnum()  bool 类型
# 字符串中是否所有的字符都是空白符(包括缩进、换行等不可见转义符)  isspace()  bool 类型

# 判定一个字符串是否以某个前缀开头 startswith(prefix, start=0, end=len(str))
# prefix 需要判定的前缀字符串  start 判定起始位置  end   判定结束位置     bool 类型
# 判定一个字符串是否以某个后缀结尾  endswith(suffix, start=0, end=len(str))

# in 判定一个字符串, 是否被另外一个字符串包含
# not in  判定一个字符串, 是否不被另外一个字符串包含
print('boy'.isalpha(), 'boy123'.isalpha())
print('boy123'.isdigit(), '123'.isdigit())
print('boy123'.isalnum(), 'boy123/*-+'.isalnum())
print(' \n '.isspace(), '   12'.isspace())
print('wo shi shui'.startswith('wo', 0, 7), 'wo shi shui'.endswith('wo', 0, len('wo shi shui')))
print('shi' in 'wo shi shui', 'wo' not in 'wo shi shui')

结果如下图。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
就先这样,遇到别的再补充。

举报

相关推荐

0 条评论