012.Python基础语法_字符串操作

在这里插入图片描述

我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈
入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈
虚 拟 环 境 搭 建 :👉👉 Python项目虚拟环境(超详细讲解) 👈👈
PyQt5 系 列 教 程:👉👉 Python GUI(PyQt5)文章合集 👈👈
Oracle数据库教程:👉👉 Oracle数据库文章合集 👈👈
优 质 资 源 下 载 :👉👉 资源下载合集 👈👈

在这里插入图片描述

字符串(str)

  • 概念
    • 由多个单字符组成的一个集合
  • 非原始字符串
    使用单引号:'abc'
    使用双引号:"abc"
    使用三单引号:'''abc'''
    使用三双引号:"""abc"""
    
  • 原始字符串
    使用单引号:r'ab \n c'
    使用双引号:r"ab \t c"
    使用三单引号:r'''ab \\ c'''
    使用三双引号:r"""a "b" c"""
    
  • 转义符
  • 概念
    • 通过转换某个指定的字符,使他具备特殊的含义
    • python3中通过 “\” 作为转义
  • 常见转义符
    \(在行尾时) 		# 续行符
    \'				# 单引号
    \"				# 双引号
    \n				# 换行
    \t				# 横向制表符
    
  • 各个形式的特点
  • 单/双引号
    • 混合使用可以避免使用转义符
    str = '我是"FengZi"'
    print(str)
    
    # -----输出结果-----
    我是"FengZi"
    
    • 一般内容需要写成一行,跨行需要通过续航符或小括号
    str1 = '我是FengZi,'\
    '我喜欢Python'
    
    str2 = ('我是FengZi'
    '我喜欢Python')
    
    print(str1)
    print(str2)
    
    # -----输出结果-----
    我是FengZi,我喜欢Python
    我是FengZi我喜欢Python
    
    
  • 三引号
  • 可以直接跨行书写
    str = """我是FengZi
    我喜欢Python"""
    
    print(str)
    
    # -----输出结果-----
    我是FengZi
    我喜欢Python
    
  • 可用于函数、类的注释文档
    # 查看注释文档
    help(xxx)
    
字符串的一般操作
字符串拼接
  • 多个字符串拼接成一个字符串
    # 方式1:str1 + str2
    str1 = '我的名字是'
    str2 = '疯子'
    result = str1 + str2
    print(result)
    
    # -----输出结果-----
    # 我的名字是疯子
    
    # 方式2:str1 str2
    str1 = '我的名字是' '疯子'
    print(str1)
    
    # -----输出结果-----
    # 我的名字是疯子
    
    # 方式3:'xxx%s'%'bbbb', 'xxx%s, %d'%('bbbb', 1111)
    str1 = '我的名字是%s'%'疯子'
    str2 = '我的名字是%s,我今年%d岁了'%('疯子', 36)
    print(str1)
    print(str2)
    
    # -----输出结果-----
    # 我的名字是疯子
    # 我的名字是疯子,我今年36岁了
    
    # 方式4:str * 10
    str1 = '疯子 ' * 10
    print(str1)
    
    # -----输出结果-----
    # 疯子 疯子 疯子 疯子 疯子 疯子 疯子 疯子 疯子 疯子 
    
字符串切片
  • 获取一个字符串的某个片段
  • 获取某一个字符
    # 通过下标(索引)获取:str[index]
    # 下标(索引):字符串中每个字符的位置,从0开始
    # 如果下标(索引)为负数,则表示从后往前,最后一个字符为-1
    str = 'abcdefg'
    
    print(str[3])
    print(str[-3])
    
    # -----输出结果-----
    d
    e
    
  • 获取一个字符串片段
    # 通过下标(索引)获取:str[start: stop: step]
    # 取值区间:[start, stop),包含start,不包含stop
    # start默认0,stop默认len(str),step默认1
    # step > 0 从左到右,step < 0 从右到左
    
    str = 'abcdefg'
    
    print(str[0: 3])
    print(str[0: 5: 2])
    print(str[5: 0: -2])
    print(str[-1: -7: -2])
    
    # -----输出结果-----
    abc
    ace
    fdb
    gec
    
    
  • 字符串反转
    # str[::-1]
    
    str = 'abcdefg'
    
    print(str[::-1]
    
    # -----输出结果-----
    gfedcba
    
字符串的函数操作
  • len()
    分类
    	内置函数
    作用
    	获取对象的长度(字符个数)
    语法
    	len(obj)
    参数
    	obj:对象
    返回值
    	返回字符个数,整型(int
  • find()
    分类
    	对象方法
    作用
    	检索指定子串,返回子串索引位置
    	从左往右检索,检索到了就停止
    语法
    	str.find(sub, start=0, end=len(str))
    参数
    	sub:指定子串
    	start:检索的起始位置,默认为0
    	end:检索的结束位置,默认整个字符长度
    返回值
    	找到了子串,返回子串的索引位置
    	没找到子串,返回 -1
    
  • rfind()
    分类
    	对象方法
    作用
    	检索指定子串,返回子串索引位置
    	从右往左检索,检索到了就停止
    语法
    	str.rfind(sub, start=0, end=len(str))
    参数
    	sub:指定子串
    	start:检索的起始位置,默认为0
    	end:检索的结束位置,默认整个字符长度
    返回值
    	找到了子串,返回子串的索引位置
    	没找到子串,返回 -1
    
  • index()
    分类
    	对象方法
    作用
    	获取指定子串,返回子串索引位置
    	从左往右检索,检索到了就停止
    语法
    	str.index(sub, start=0, end=len(str))
    参数
    	sub:指定子串
    	start:检索的起始位置,默认为0
    	end:检索的结束位置,默认整个字符长度
    返回值
    	找到了子串,返回子串的索引位置
    	没找到子串,程序报异常
    
  • rindex()
    分类
    	对象方法
    作用
    	获取指定子串,返回子串索引位置
    	从右往左检索,检索到了就停止
    语法
    	str.rindex(sub, start=0, end=len(str))
    参数
    	sub:指定子串
    	start:检索的起始位置,默认为0
    	end:检索的结束位置,默认整个字符长度
    返回值
    	找到了子串,返回子串的索引位置
    	没找到子串,程序报异常
    
  • count()
    分类
    	对象方法
    作用
    	计算指定子字符在字符串中的个数
    语法
    	str.count(sub, start=0, end=len(str))
    参数
    	sub:指定子串
    	start:检索的起始位置,默认为0
    	end:检索的结束位置,默认整个字符长度
    返回值
    	子字符串的个数,整型
    
  • replace()
    分类
    	对象方法
    作用
    	使用指定新字符串替换字符串中的旧字符串
    语法
    	replace(old, new[, count])
    参数
    	old:需要替换的旧字符串
    	new:用于替换的新字符串
    	count:替换的个数,默认全部替换
    返回值
    	替换后的新字符串
    	并不会修改原字符串本身
    
  • capitalize()
    分类
    	对象方法
    作用
    	将字符串的首字母变为大写,其他字母小写
    语法
    	str.capitalize()
    参数
    	
    返回值
    	首字母大写其他字母小写后的新字符串,不改变原字符串
    
  • title()
    分类
    	对象方法
    作用
    	将字符串中每个单词的首字母大写,其他字母小写(连续在一起的字母为一个单词)
    语法
    	str.title()
    参数
    	
    返回值
    	返回每个单词首字母大写其他字母小写的新字符串,原字符串不改变
    
  • lower()
    分类
    	对象方法
    作用
    	将字符串中所有字母转换为小写
    语法
    	str.lower()
    参数
    	
    返回值
    	返回所有字母全部转换为小写字母的新字符串,原字符串不改变
    
  • upper()
    分类
    	对象方法
    作用
    	将字符串中所有字母转换为大写
    语法
    	str.upper()
    参数
    	
    返回值
    	返回所有字母全部转换为大写字母的新字符串,原字符串不改变
    
  • ljust()
    分类
    	对象方法
    作用
    	用指定字符(1)在字符串右侧填充,将原字符串填充到指定长度
    	l:表示原字符串保持在左侧
    语法
    	str.ljust(width, fillchar)
    参数
    	width:指定长度
    	fillchar:用于填充的字符
    返回值
    	返回用指定字符填充到指定长度的新字符串,不改变原字符串
    
  • rjust()
    分类
    	对象方法
    作用
    	用指定字符(1)在字符串左侧填充,将原字符串填充到指定长度
    	r:表示原字符串保持在右侧
    语法
    	str.rjust(width, fillchar)
    参数
    	width:指定长度
    	fillchar:用于填充的字符
    返回值
    	返回用指定字符填充到指定长度的新字符串,不改变原字符串
    
  • center()
    分类
    	对象方法
    作用
    	用指定字符(1)在字符串两侧填充,将原字符串填充到指定长度
    	优先填充右侧
    语法
    	str.center(width, fillchar)
    参数
    	width:指定长度
    	fillchar:用于填充的字符
    返回值
    	返回用指定字符填充到指定长度的新字符串,不改变原字符串		
    
  • lstrip()
    分类
    	对象方法
    作用
    	移除字符串左侧指定字符集,默认为空字符(\n \t 空格)
    语法
    	str.lstrip(chars)
    参数
    	chars:指定要移除的字符集(可以是多个字符, "#!wa*""#!wa*":表示 "#" | "!" | "w" | "a" | "*"
    返回值
    	返回被移除指定字符后的新字符串,原字符串不改变
    
  • rstrip()
    分类
    	对象方法
    作用
    	移除字符串右侧指定字符集,默认为空字符(\n \t 空格)
    语法
    	str.rstrip(chars)
    参数
    	chars:指定要移除的字符集(可以是多个字符, "#!wa*""#!wa*":表示 "#" | "!" | "w" | "a" | "*"
    返回值
    	返回被移除指定字符后的新字符串,原字符串不改变
    
  • strip()
    分类
    	对象方法
    作用
    	移除字符串两侧指定字符集,默认为空字符(\n \t 空格)
    语法
    	str.strip(chars)
    参数
    	chars:指定要移除的字符集(可以是多个字符, "#!wa*""#!wa*":表示 "#" | "!" | "w" | "a" | "*"
    返回值
    	返回被移除指定字符后的新字符串,原字符串不改变
    
  • split()
    分类
    	对象方法
    作用
    	按照指定分割符将字符串分割指定次数,从左侧开始
    语法
    	str.split(sep, maxsplit)
    参数
    	sep:指定分割符
    	maxsplit:最大分割次数
    返回值
    	返回分割后的字符串组成的列表
    
  • rsplit()
    分类
    	对象方法
    作用
    	按照指定分割符将字符串分割指定次数,从右侧开始
    语法
    	str.rsplit(sep, maxsplit)
    参数
    	sep:指定分割符
    	maxsplit:最大分割次数
    返回值
    	返回分割后的字符串组成的列表
    
  • partition()
    分类
    	对象方法
    作用
    	从左侧开始检索指定分割符,检索到第一个就进行拆分
    语法
    	str.partition(sep)
    参数
    	sep:指定分割符
    返回值
    	返回一个元组
    	检索到分割符:(分割符左侧内容, 分割符, 分割符右侧内容)
    	未检索到分割符:(原字符串, "", "")
    
  • rpartition()
    分类
    	对象方法
    作用
    	从右侧开始检索指定分割符,检索到第一个就进行拆分
    语法
    	str.rpartition(sep)
    参数
    	sep:指定分割符
    返回值
    	返回一个元组
    	检索到分割符:(分割符左侧内容, 分割符, 分割符右侧内容)
    	未检索到分割符:("", "", 原字符串)
    
  • splitlines()
    分类
    	对象方法
    作用
    	按照换行符(\r,\n)将字符串拆分成多个元素
    语法
    	str.splitlines(keepends)
    参数
    	keepends:bool类型,是否保留换行符,默认False
    返回值
    	返回一个包含了所有拆分元素的列表
    
  • join()
    分类
    	对象方法	
    作用
    	通过字符串将给定的可迭代对象进行拼接成一个字符串
    	可迭代对象:可以通过for循环进行遍历的对象
    语法
    	str.join(iterable)
    参数
    	iterable:可迭代对象
    返回值
    	返回一个通过字符串拼接的新字符串
    
  • isalpha()
    分类
    	对象方法
    作用
    	判断字符串中是否所有的字符都是字母,不包含数字、特殊符号、标点符号等
    语法
    	str.isalpha()
    参数
    	
    返回值
    	bool类型,返回TrueFalse
    
  • isdigit()
    分类
    	对象方法
    作用
    	判断字符串中是否所有的字符都是数字,不包含字母、特殊符号、标点符号等
    语法
    	str.isdigit()
    参数
    	
    返回值
    	bool类型,返回TrueFalse
    
  • isalnum()
    分类
    	对象方法
    作用
    	判断字符串中是否所有的字符都是数字或字母,不包含特殊符号、标点符号等
    语法
    	str.isalnum()
    参数
    	
    返回值
    	bool类型,返回TrueFalse
    
  • isspace()
    分类
    	对象方法
    作用
    	判断字符串中是否所有的字符都是空白符(包含空格、缩进、换行等不可见转义符)
    语法
    	str.isspace()
    参数
    	
    返回值
    	bool类型,返回TrueFalse
    
  • startswith()
    分类
    	对象方法
    作用
    	按指定开始和结束索引位置截取字符串,并判断截取后的字符串是否以指定字符开头
    语法
    	str.startswith(prefix, start=0, end=len(str))
    参数
    	prefix:指定的字符
    	start:截取开始位置,默认0
    	end:截取结束位置,默认整个字符长度
    返回值
    	bool类型,返回TrueFalse
    
  • endswith()
    分类
    	对象方法
    作用
    	按指定开始和结束索引位置截取字符串,并判断截取后的字符串是否以指定字符结尾
    语法
    	str.endswith(prefix, start=0, end=len(str))
    参数
    	prefix:指定的字符
    	start:截取开始位置,默认0
    	end:截取结束位置,默认整个字符长度
    返回值
    	bool类型,返回TrueFalse
    
  • 补充
  • in
    • 判定一个字符串是否被另一个字符串包含
  • not in
    • 判定一个字符串是否不被另一个字符串包含

  • 函数示例
    # len
    name = 'my name is FengZi'
    
    # len
    print(len(name))
    
    # find
    print(name.find('e', 7))
    print(name.rfind('e', 7))
    
    # index
    print(name.index('e'))
    print(name.index('e', 7, len(name)))
    print(name.rindex('e'))
    print(name.rindex('e', 7, len(name)))
    
    # count
    print(name.count('e'))
    print(name.count('e', 7, len(name)))
    
    # replace
    print(name.replace('FengZi', 'ShiXinFeng'))
    print(name.replace('e', 'R', 1))
    
    # capitalize
    name = 'wo shi FengZi'
    print(name.capitalize())
    
    # title
    print(name.title())
    
    # lower
    name = 'WO shi FENGZI'
    print(name.lower())
    
    # upper
    print(name.upper())
    
    # ljust rjust center
    name = 'fengzi'
    print(name.ljust(20, '='))
    print(name.rjust(20, '='))
    print(name.center(20, '='))
    
    # lstrip() rstrip() strip()
    name = '   feng  zi   '
    print('|' + name + '|')
    print('|' + name.lstrip() + '|')
    print('|' + name.rstrip() + '|')
    print('|' + name.strip() + '|')
    
    # split() partition() rpartition() splitlines()
    name = 'feng-zi-36-0731-8828999'
    print(name.split('-'))
    print(name.split('-', 3))
    print(name.rsplit('-', 3))
    
    print(name.partition('-'))
    print(name.partition('|'))
    print(name.rpartition('-'))
    print(name.rpartition('|'))
    
    name = 'wo\nshi\rfeng zi'
    print(name.splitlines())
    print(name.splitlines(True))
    
    # join()
    items = 'abcdefg'
    print(','.join(items))
    items = ['fengzi', '36', '长沙']
    print('-'.join(items))
    
    # isalpha()  isalnum()
    name1 = 'fengzi'
    name2 = 'feng zi'
    name3 = '12306'
    name4 = 'fengzi123'
    
    print(name1.isalpha())
    print(name2.isalpha())
    print(name3.isalpha())
    print(name4.isalpha())
    
    print(name1.isdigit())
    print(name2.isdigit())
    print(name3.isdigit())
    print(name4.isdigit())
    
    print(name1.isalnum())
    print(name2.isalnum())
    print(name3.isalnum())
    print(name4.isalnum())
    
    name = '\n\t\r'
    print(name.isspace())
    
    s = '2023-8-1 检查结果.xlsx'
    print(s.startswith('2023'))
    print(s.startswith('2023', 2, 5))
    print(s.startswith('23', 2, 5))
    
    print(s.endswith('xlsx'))
    print(s.endswith('xlsx', 5, 13))
    print(s.endswith('结果', 5, 13))
    
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

失心疯_2023

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值