字符串

  • 字符串简单操作
    • 拼接 '+'
    • 重复 '*'
    • 切片 [ ]
  • 字符串的格式化方法
    • format
      • 普通方式传参
      • 索引传参
      • 关键字传参
      • 容器类型数据传参
      • 限定小数的位数
    • 通过f' '格式化
  • 英文字符与字符检测相关函数
    • 大小写转换
      • capitalize()
      • title()
      • upper()
      • lower()
      • swapcase()
    • 字符检测方法
      • isupper()
      • islower()
      • istitle()
      • isalnm()
      • isalpha()
      • isdigit()
      • isspace()
      • startswith()
      • endswith()
  • 字符串查找与操作相关的函数(重点)
    • 字符串查找相关函数
      • in
      • len()
      • find()
      • rfind()
      • index()
      • rindex()
      • count()
    • 字符串操作相关函数
      • split()
      • join()
      • strip()
      • replace()
      • center()

字符串简单操作

拼接 ‘+’

str1 = '蛋黄的长裙, '
str2 = '蓬松的头发'
print(str1+str2)#(输出) 蛋黄的长裙, 蓬松的头发

重复 ‘*’

varstr = '驰名双标,' * 3
print(varstr)#(输出) 驰名双标,驰名双标,驰名双标,

切片 [ ]

  • 字符串的索引操作,只能访问,不能进行修改操作
  • 语法:[开始值 : 结束值 : 步进值]
  • 开始值:默认为0;结束值:默认最后一个字符的下标;步进值:默认为1
varstr = '长风破浪会有时,直挂云帆济沧海'# 从头取到尾
print(varstr[::])       #(输出) 长风破浪会有时,直挂云帆济沧海# 获取指定下标的元素
print(varstr[1])        #(输出) 风# 从下标1开始取值, 一直到下标5之前, 左闭右开
print(varstr[1:5])      #(输出) 风破浪会# 步进值为2
print(varstr[::2])      #(输出) 长破会时# 步进值为负数, 反向输出
print(varstr[::-1])     #(输出) 海沧济帆云挂直,时有会浪破风长

字符串的格式化方法

format

普通方式传参

a = '卧底'
varstr = '柯南里的酒厂成员, {} {} {} {} {} {}'.format(a,a,a,'叛徒',a,a)
print(varstr)#(输出) 柯南里的酒厂成员, 卧底 卧底 卧底 叛徒 卧底 卧底

索引传参

varstr = '名侦探柯南cp大队: 小兰cp{0}, {2}cp赤井秀一'.format('新一', '目暮警官', '宫野明美')
print(varstr)#(输出) 名侦探柯南cp大队: 小兰cp新一, 宫野明美cp赤井秀一

关键字传参

varstr = '被誉日本警察的救世主:{a}, 女扮男装的高智商侦探:{b}'.format(a='工藤新一', b='世良真纯')
print(varstr)#(输出) 被誉日本警察的救世主:工藤新一, 女扮男装的高智商侦探:世良真纯

容器类型数据传参

# 字典传参
data = {'a':'服部平次', 'b':'毛利小五郎'}
varstr = '关西的高中生侦探:{a}, 毛利侦探事务所一把手:{b}'.format(**data)
print(varstr)
#(输出) 关西的高中生侦探:服部平次, 毛利侦探事务所一把手:毛利小五郎# 列表传参
varstr = '赤井秀一: {0[0]}, 水无伶奈: {0[0]}, 琴酒: {0[1]}, 伏特加: {1[1]}'.format(['卧底','劳模'], ['侦探', '司机'])
print(varstr)
#(输出) 赤井秀一: 卧底, 水无伶奈: 卧底, 琴酒: 劳模, 伏特加: 司机

限定小数的位数

varstr = '圆周率: {:.2f}'.format(3.1415926)
print(varstr)#(输出) 圆周率: 3.14

通过f’ '格式化

  • python3.7中新增的 格式化方法 f方法(找到括号里变量对应的内容并解析)
data = {'a':'铃木园子','b':'工藤新一'}
varstr = f'小兰的闺蜜是{data["a"]}, 青梅竹马是{data["b"]}'
print(varstr)#(输出) 小兰的闺蜜是铃木园子, 青梅竹马是工藤新一

英文字符与字符检测相关函数

大小写转换

capitalize()

  • str.capitalize() 返回原字符串的副本, 如果第一个字符是英文字符, 转成大写字符, 其余为小写
varstr = 'shopping at a mall'
res = varstr.capitalize()
print(res)
#(输出) Shopping at a mall

title()

  • str.title() 返回原字符串的副本, 把字符串中的每个单词首字母大写
varstr = 'shopping at a mall'
res = varstr.title()
print(res)
#(输出) Shopping At A Mall

upper()

  • str.upper() 把字符串中的英文字母全部转为大写
varstr = 'shopping at a mall'
res = varstr.upper()
print(res)
#(输出) SHOPPING AT A MALL

lower()

  • str.lower() 把字符串中的英文字母全部转为小写
varstr = 'SHOPPING AT A MALL'
res = res.lower()
print(res)
#(输出) shopping at a mall

swapcase()

  • str.swapcase() 把字符串里的英文字符大写转小写, 小写转大写
varstr = 'SHOPPING AT a mall'
res = varstr.swapcase()
print(res)
#(输出) shopping at A MALL

字符检测方法

isupper()

  • str.isupper() 检测当前的字符串中的英文字符是否全部由大写字符组成
varstr = 'shopping at a mall'
print(varstr.isupper())
#(输出) False

islower()

  • str.islower() 检测当前的字符串中的英文字符是否全部由小写字符组成
varstr = 'shopping at a mall'
print(varstr.islower())
#(输出) True

istitle()

  • str.istitle() 检测当前字符串中的每个英文单词是否符合首字母大写
varstr = 'Shopping At A Mall'
print(varstr.istitle())
#(输出) True

isalnm()

  • str.isalnm() 检测当前的字符串是否由字符(中文, 英文字符, 数字)组成
varstr = 'shopping at a mall' # 字符串里有空格,所以为False
print(varstr.isalnum())
#(输出) False

isalpha()

  • str.isalpha() 检测当前的字符串是否由中英文字符组成
varstr = '我love你'
print(varstr.isalpha())
#(输出) True

isdigit()

  • str.isdigit() 检测当前的字符串是否由数字字符组成
varstr = '123456'
print(varstr.isdigit())
#(输出) True

isspace()

  • str.isspace() 检测当前的字符串是否由空格字符组成
varstr = '     '
print(varstr.isspace())
#(输出) True

startswith()

  • str.startswith() 检测一个字符串是否由指定的字符开始, 可以指定开始与结束位置, 默认从头(0)开始检测, 结束一般不写
varstr = 'shopping at a mall'
print(varstr.startswith('shop'))  #(输出) True
print(varstr.startswith('i', 5))  #(输出) True

endswith()

  • str.endswith() 检测一个字符串是否由指定的字符结尾, 可以指定开始与结束位置
varstr = 'shopping at a mall'
print(varstr.endswith('all'))         #(输出) True
# 0-8区间内的字符是否以'ing'结尾
print(varstr.endswith('ing', 0, 8))     #(输出) True

字符串查找与操作相关的函数(重点)

字符串查找相关函数

in

  • 检测一个字符串是否存在于另一个字符串中
varstr = 'Touch the air once again miss you breath'
print('is' in varstr)
#(输出) True

len()

  • 获取字符串的长度
varstr = 'Touch the air once again miss you breath'
print(len(varstr))
#(输出) 40

find()

  • str.find() 从左向右查找指定字符在字符串中第一次出现的索引位置, 未找到则返回-1, (可选)指定开始与结束位置
varstr = 'Touch the air once again miss you breath'
print(varstr.find('is', 0, 17))
#(输出) -1

rfind()

  • str.rfind() 从右向左查找指定字符在字符串中第一次出现的索引位置, 未找到则返回-1, (可选)指定开始与结束位置
varstr = 'Touch the air once again miss you breath'
print(varstr.rfind('a', 0, 17))
#(输出) 10

index()

  • str.index() 使用同find方法一样, 但没有找到则报错
varstr = 'Touch the air once again miss you breath'
print(varstr.index('is', 0, 17))
#(报错) ValueError: substring not found

rindex()

  • str.rindex() 同rfind方法一样, 没有找到则报错

count()

  • str.count() 统计一个字符串在另一个字符串中出现的次数
varstr = 'Touch the air once again miss you breath'
print(varstr.count('u'))
#(输出) 2

字符串操作相关函数

split()

  • 按照指定的字符进行分隔,把一个字符串分隔成一个列表,(可选)并可以选定分隔次数,rsplit()会从后往前开始分隔
varstr = 'uid_admin_id_123'
res = varstr.split('_')
print(res)              #(输出) ['uid', 'admin', 'id', '123']
# 分隔2次
res = varstr.split('_', 2)
print(res)              #(输出) ['uid', 'admin', 'id_123']

join()

  • str.join() 按照指定的字符, 把容器类型中的数据连接成一个字符串
arr = ['Cease', 'to', 'struggle', 'and', 'you', 'cease', 'to', 'live']
res = ' '.join(arr)
print(res)
#(输出) Cease to struggle and you cease to live

strip()

  • str.strip() 可以去除字符串左右两侧的指定字符,默认去除空白和换行
  • str.lstrip() 去除字符串左侧的指定字符
  • str.rstrip() 去除字符串右侧的指定字符
vars = '****这是一个文章的标题**'
res = vars.strip('*')
print(res)
#(输出) 这是一个文章的标题

replace()

  • str.replace() 替换, 可以指定替换次数
vars = 'i love you'
res = vars.replace('love', 'like')
print(res)
#(输出) i like you

center()

  • str.center() 使用指定字符填充至指定长度, 不写默认用空格填充
  • str.ljust() 在后边填充
  • str.rjust() 在前边填充
vars = 'love'
res = vars.center(11,'*')
print(res)
#(输出) ****love***# str.ljust() 在后边填充
res = vars.ljust(8,'*')
print(res)
#(输出) love****# str.rjust() 在前边填充
res = vars.rjust(8,'*')
print(res)
#(输出) ****love

Day7 字符串详解——python学习之路相关推荐

  1. python 安装pandas 权限不够_详解Python学习之安装pandas

    一.python pip的安装与使用 1.pip 是 python 包管理工具,该工具提供了对python 包的查找.下载.安装.卸载的功能. 目前如果你在 python.org 下载最新版本的安装包 ...

  2. mavlink协议详解_MAVLink学习之路05_ MAVLink应用编程接口分析

    描述 MAVLink应用编程主要内容 2.1 发送和接收说明 利用MAVLink通信协议进行编程,主要实现的功能就是: 1.发送端 将需要发送的数据(如:SysState, BatVol),添加MAV ...

  3. SVN使用 IDEA集成SVN SVN简介 SVN使用详解 SVN学习之路

    文章目录 SVN介绍与使用 一.SVN引入 1. SVM服务器搭建 2. 需要了解的关键词 3. 如何让系统共享信息,并且不互相干扰. 4. SVN架构 二. SVN的操作 1. 安装tortoise ...

  4. python比较两个字符串相似度_详解Python 字符串相似性的几种度量方法

    字符串的相似性比较应用场合很多,像拼写纠错.文本去重.上下文相似性等. 评价字符串相似度最常见的办法就是:把一个字符串通过插入.删除或替换这样的编辑操作,变成另外一个字符串,所需要的最少编辑次数,这种 ...

  5. python 字符串替换_Python基础教程,第四讲,字符串详解

    本节课主要和大家一起学习一下Python中的字符串操作,对字符串的操作在开发工作中的使用频率比较高,所以单独作为一课来讲. 学完此次课程,我能做什么? 学完本次课程后,我们将学会如何创建字符串,以及如 ...

  6. 站长在线Python精讲:在Python中使用split()方法分割、使用join()方法合并字符串详解

    欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<在Python中使用split()方法分割.使用join()方法合并字符串详解>.本知识点主要内容有:在Python中使用s ...

  7. 站长在线python精讲:在Python中使用“+”运算符来拼接字符串详解

    欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<在Python中使用"+"运算符来拼接字符串详解>.本知识点主要内容有:在Python中,我们可以使用& ...

  8. 站长在线Python精讲:在Python中使用正则表达式的sub()方法替换字符串详解

    欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<在Python中使用正则表达式的sub()方法替换字符串详解>. 在Python中使用正则表达式的sub()方法替换字符串. ...

  9. 站长在线Python精讲:在Python中使用正则表达式的split()方法分割字符串详解

    欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<在Python中使用正则表达式的split()方法分割字符串详解>. 使用正则表达式分割字符串 在Python中使用正则表达 ...

最新文章

  1. 惠普z840工作站linux,全模块战神 惠普旗舰级Z840工作站评测
  2. 工程院院士李德毅:认知的三次革命,类脑的五条启发
  3. Windows Server Backup 裸机恢复
  4. C#LeetCode刷题-拒绝采样
  5. php 不能运行,PHP 环境不能正常运行
  6. [SAP ABAP开发技术总结]以二进制、字符模式下载文件
  7. PostFix postqueue 指令
  8. 集群ddos_《DNS攻击防范科普系列2》 -DNS服务器怎么防DDoS攻击
  9. 台达DVP PLC与3台西门子V20变频器通讯程序 台达PLC与3台西门子变频器通讯
  10. 【opencv-ml】支持向量机简介
  11. Android文件MD5/SHA1/SHA256校验
  12. 劫持 64 位静态程序 fini_array 进行 ROP 攻击
  13. 一题多做--杨辉三角形
  14. 史记翻译-汉初三杰-韩信-淮阴侯列传第三十二
  15. 短视频行业内情分析-今抖云创
  16. 英语语法:词法之非谓语动词--起式
  17. c#根据年月获取所有日期集合、根据年份计算总周数,根据年份和周数获取一周的开始及结束时间
  18. Java基础——面向对象(中级)
  19. 【线段树】[LUOGU 守墓人] [LUOGU 维护序列] 线段树模板题
  20. 解决浏览器不支持display:flex的问题

热门文章

  1. Python:实现aliquot sum等分求和算法(附完整源码)
  2. 新海诚没有参与制作的作品_超豪华的制作团队只有这一次——新海诚《你的名字》访谈(下)...
  3. mysql root password_MYSQL安装时解决要输入current root password的方案
  4. xml使用非常简单,只需要如下
  5. java后门_Java做后门?
  6. 源码编译、安装gcc 7
  7. 计算机操作系统相关论文,计算机操作系统的基本功能及应用论文
  8. Uni-app APP开发、适配指北
  9. [转贴]去除迅雷广告和弹出广告窗口
  10. 抓包工具在测试中的作用