同是天涯沦落人,相逢何必曾相识——python字符串操作
同是天涯沦落人,相逢何必曾相识! 我从去年辞帝京,谪居卧病浔阳城。
1 字符串的声明
字符串使用一对单引号包含,会出现在纯python语言环境中。
字符串通常使用一对双引号包含,因为python会和其他混合开发,使用双引号更为通用。
长字符串:三对引号包含起来的可以换行的字符串, 通常用于多行注释(如文档注释)。
2 字符串切片
2.1 字符串索引
因为字符串是由一系列字符有顺序的排列组成的,所以字符串中的每个字符都在字符串中有自己的索引编号
字符串从左到右,索引从0开始依次
字符串从右往左,索引从-1开始
空格也算作字符
s = "同是天涯沦落人,相逢何必曾相识!"
print(s[6]) # 人
print(s[-3]) # 相
2.2 字符串切片
基本语法:S[开始位置 : 结束位置 : 步长]
字符串切片包含开始位置,不包含结束位置(左闭右开),按照步长进行间隔切片(步长包含自己)
开始索引不写默认开头,结束索引不写默认到尾部步长不写默认为1
步长为负,则倒过来取值
类似的,切片在列表和元组中也可使用,获取相应元素
s = "同是天涯沦落人,相逢何必曾相识!"
print(s[:7]) # 同是天涯沦落人
print(s[4:7]) # 沦落人
print(s[3:10:2]) # 涯落,逢
print(s[-3:-7:-1]) # 相曾必何
# 字符串翻转
print(s[::-1]) # !识相曾必何逢相,人落沦涯天是同
3 字符串常见操作
3.1 字符串变形
str1 = "tong shi TIAN YA lun luo ren"
# upper() 全部大写
print(str1.upper()) # TONG SHI TIAN YA LUN LUO REN
# lower() 全部小写
print(str1.lower()) # tong shi tian ya lun luo ren
# title() 标题首字母大写,字符以非字母划分
print(str1.title()) # Tong Shi Tian Ya Lun Luo Ren
# captialize() 句子首字母大写
print(str1.capitalize()) # Tong shi tian ya lun luo ren
# swapcase() 大小写转换
print(str1.swapcase()) # TONG SHI tian ya LUN LUO REN
3.2 字符串查询
s = "同是天涯沦落人,相逢何必曾相识!"# index() 返回从左起第一个字符的索引,没有会报错
# rindex() 返回从右起第一个字符串索引(索引依然为正)
print(s.index("人")) # 返回索引 6
print(s.index("行")) # ValueError: substring not found# find() 返回从左找到第一个字符的索引,没有则返回-1
# rfind() 返回从右起第一个字符串索引(索引依然为正)
print(s.find("天")) # 2
print(s.find("江")) # -1# startswith() 查看是否以指定字符开头,可以截取判断
print(s.startswith("同")) # True
print(s.startswith("相")) # False
print(s.startswith("天", 2, 5)) # True 从索引2开始查询至索引5# endswith() 查是否以指定字符结尾,可以截取判断
print(s.endswith("!")) # True
print(s.endswith("识")) # False
print(s.endswith("沦", 2, 5)) # True 从索引2开始查询至索引5# count() 统计指定字符
print(s.count("相")) # 2
3.3 字符替换
# replace(old, new) 默认全部替换,可指定替换次数
s = "不是天涯沦落人"
print(s.replace("不", "同", 1)) # 同是天涯沦落人 # 1是替换次数
3.4 字符对应关系替换
import string
s = "tianya"
s1 = string.ascii_letters + string.digits
# 由string模块得到字母和数字的拼接 abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
s2 = string.digits + string.ascii_letters
# 同理,得到 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXY
secret_dict = dict(zip(s1, s2)) # zip函数用于建立对应关系,如"a": 0
secret_table = str.maketrans(secret_dict) # 创建对应关系表
s4 = s.translate(secret_table) # 根据创建的对应关系表替换
print(s4) # j80do0
3.5 字符串拆分和拼接
s = "相逢何必曾相识"
# split() 按照从左起给定的第一个字符对字符串进行拆分,得到拆分后的列表,分割字符不会出现在列表,经常进行批量数据的拆分操作
# rsplit() 从右边开始拆分,功能同上
print(s.split("相")) # ['', '逢何必曾', '识'] 第一个分割前面没有字符,故得到空字符串
print(s.split("何必")) # ['相逢', '曾相识']
# 可指定分割次数,默认为-1,即最大分割
print(s.split("相", maxsplit=1)) # ['', '逢何必曾相识']# partition() 按照从左起第一个给定的字符,将字符串拆分成三部分组成的元组,经常进行路径文件名称的拆分
# rpartition() 从右边开始,功能同上
print(s.partition("相")) # ('', '相', '逢何必曾相识')
print(s.partition("何必")) # ('相逢', '何必', '曾相识')# join() 按照指定的字符,将一串有序列的数据进行拼接
# 拼接字符.join(列表)
s1 = ""
lst = ["相逢", "何必", "曾相识"]
print(s1.join(lst)) # 相逢何必曾相识# rsplitlines() 按照行分隔,返回一个包含各行作为元素的列表,按照换行符分分割
s2 = """同是天涯沦落人,
相逢何必曾相识!"""
print(s2.splitlines()) # ['同是天涯沦落人,', '相逢何必曾相识!']
3.6 字符串的空格处理
# strip() 去掉两边空格,括号内也可指定去除内容
# lstrip() 去掉左边空格,括号内也可指定去除内容
# rstrip() 去掉右边空格,括号内也可指定去除内容
s = " 我从去年辞帝京 "
s2 = "**我从去年辞帝京**"
print(s.strip()) # 我从去年辞帝京 # 两边没空格
print(s2.strip("*")) # 我从去年辞帝京
3.7 字符串对齐操作
s = "我从去年辞帝京,谪居卧病浔阳城。 "# center() 居中
# ljust() 左对齐
# rjust() 右对齐
# 括号第一个参数是所占字符,第二个参数是填充字符,默认不写为空
print(s.center(30,)) # 我从去年辞帝京,谪居卧病浔阳城。
print(s.center(30, "*")) # ******我从去年辞帝京,谪居卧病浔阳城。 *******# zfill 字符串填充到指定的长度,不足地方用 0 从左开始补充
print(s.zfill(30)) # 0000000000000我从去年辞帝京,谪居卧病浔阳城。
3.8 字符串判断
s1 = "13"
s2 = "wocongquniancidijing"
s3 = "13xuedepipcheng"
s4 = "xunyang"
s5 = "XUNYANG"
s6 = "XunYang"# isalnum() 是否只包含字母或数字
print(s1.isalnum()) # True
print(s2.isalnum()) # True
print(s3.isalnum()) # True# isalpha() 是否只有字母
print(s1.isalpha()) # False
print(s2.isalpha()) # True
print(s3.isalpha()) # False# isdigit() 是否只有数字
# True: Unicode数字,byte数字(单字节),全角数字(双字节),罗马数字
# False: 汉字数字
print(s1.isdigit()) # True
print(s2.isdigit()) # False
print(s3.isdigit()) # False# isnumeric() 是否只有数字
# True: Unicode数字,全角数字(双字节)
# False: 罗马数字,汉字数字
# Error: byte数字(单字节)
print(s1.isnumeric()) # True
print(s2.isnumeric()) # False
print(s3.isnumeric()) # False# isupper() 当中的字母是否大写,其他字符不影响
print(s4.isupper()) # False
print(s5.isupper()) # True
print(s6.isupper()) # False# islower() 当中的字母是否小写,其他字符不影响
print(s4.islower()) # True
print(s5.islower()) # False
print(s6.islower()) # False
3.9 编码和解码
s = "天涯"
#encode() 编码,将字符串转换成字节码
s_byte = s.encode("utf-8") # b'\xe5\xa4\xa9\xe6\xb6\xaf'
print(s_byte)
#decode() 解码 ,将字节码转换成字符串,和编码格式要对应
print(s_byte.decode("utf-8")) # 天涯
4 字符串格式化展示
4.1 %格式化展示
常见的占位符:
%s:输出一个字符串格式的数据
%d:输出一个整数数据
%f:输出一个浮点数数据
占位符格式:
%ws:w表示输出字符串的宽度,字符串展示右对齐
%-ws:-w表示输出字符串之后左对齐字符串
%5.2f:5表示数据宽度,.2表示保留小数位数
# 字符串 %(元组中要替换的数据)
s1 = "沦落人"
s2 = "相识"
print("同是天涯%s,相逢何必曾%s" % (s1, s2)) # 同是天涯沦落人,相逢何必曾相识
4.2 foemat()格式化展示
# 基本语法:字符串.formart(要替换字符串中占位符的数据)# 使用位置参数填充
s1 = "沦落人"
s2 = "相识"
print("同是天涯{},相逢何必曾{}。".format(s1, s2)) # 同是天涯沦落人,相逢何必曾相识。# 使用关键字参数
content = "我的名字叫{name},今年{age}岁。"
print("同是天涯{s1},相逢何必曾{s2}。".format(s1="沦落人", s2="相识")) # 同是天涯沦落人,相逢何必曾相识。
4.3 f""格式化展示
s1 = "沦落人"
s2 = "相识"
print(f"同是天涯{s1},相逢何必曾{s2}。") # 同是天涯沦落人,相逢何必曾相识。
4.4 格式化、精度、精致
4.4.1 %格式
"""
格式化%s # 不占位输出%10s # 占10个字符宽度,右对齐%-10s # 占10个字符宽度,左对齐%08d # 占8个字符,右对齐,不够8位补0精度%.2f # 保留2位小数%5.2f # 占5个字符,保留两位小数%05.2f # 占5个字符,保留2位小数,不够前面补0进制%o 格式化无符号八进制数%x 格式化无符号十六进制数%X 格式化无符号十六进制数(大写)
"""
4.4.42 format()和f""格式
# 需要带冒号
"""
格式化:[填充字符][对齐方式 <^>][宽度]< 表示向左对齐, ^表示居中对齐, >表示向右对齐精度 :wf w 小数位数进制:b 二进制:o 八进制:x 十六进制
"""s1 = "同是天涯沦落人"
s2 = 5
print(f"{s1:*<20}") # 同是天涯沦落人*************
print(f"{s2:0>10.2f}") # 0000005.00
print(f"{s2:b}") # 101
5 字符串转义
5.1 转义
使用改变字母意义的符号:\(反斜杠),就称为转义符号
在字符串之前添加字母元字符串( r或者R),则不会进行转义
"""
常用转义:\n:换行\r:回车\a:警铃\ 续行符,一行代码编写不完,添加该符号后可以换行继续编写\\ 反斜杠符号\' 单引号\" 双引号\v 纵向制表符\t 横向制表符\r 回车(覆盖前面的)
"""print("同时天涯沦落人,\r相逢何必曾相识\\") # 相逢何必曾相识\# 元字符串 在任意字符串之前添加字母 r或者R,那么当前字符串中所有转义字符在使用时都不会进行转义操作
print(r"同时天涯沦落人,\r相逢何必曾相识\\") # 同时天涯沦落人,\r相逢何必曾相识\\
同是天涯沦落人,相逢何必曾相识——python字符串操作相关推荐
- python print 输出到txt_(Python基础教程之七)Python字符串操作
Python基础教程 在SublimeEditor中配置Python环境 Python代码中添加注释 Python中的变量的使用 Python中的数据类型 Python中的关键字 Python字符串操 ...
- 小猿圈学习Python字符串操作--字符串分割函数
对于长字符串,我们一般要怎么处理呢?除了切片,但是切片太麻烦了.python为我们提供了字符串切割函数,它不仅可以通过指定字符切割,也可以去除空格符哦.下面就看一下小猿圈Python讲师是怎么介绍Py ...
- python字符串_(Python基础教程之七)Python字符串操作
Python基础教程 在SublimeEditor中配置Python环境 Python代码中添加注释 Python中的变量的使用 Python中的数据类型 Python中的关键字 Python字符串操 ...
- 第十章、python字符串操作与with语句及上下文管理器------字符串的匹配与查找
目录 10.1 python的字符串的操作 10.1.1 python的字符串的匹配与查找 (1)实例 (2)find(或rfind).index(或rindex)与match.search.find ...
- python字符串操作、实验报告册——— 切片
设计一个程序,输入是一个字符串"重庆工程学院软件与人工智能学院",按要求输出: 1. 输出这个字符串的长度 2. 用切片的方式用一句Python语句输出"重庆工程学院&q ...
- [转载] Python字符串操作大全(一)
参考链接: Python字符串 字符串增删改查[strap()函数, split()函数 , find()函数 , 切片等] 学习一门编程语言一般从基础的数据类型开始 ,python中的数据类型有:整 ...
- python字符串操作_浅谈Python 字符串特有的操作方法
来源:(微信号:python_cat)" 正如<你真的知道Python的字符串是什么吗?>所写,Python中字符串是由Uniocde编码的字符组成的不可变序列,它具备与其它序列 ...
- Python 字符串操作基础
1.Python 字符串 字符串可以看做是由单个文本字符构成的列表,每个字母构成一个列表元素,可以用下标取值,切片,用于for循环,用len()函数 name = 'Zophoie' name[2] ...
- python字符串操作_Python 字符串操作 - 树懒学堂
字符串操作 由于Python在字符串和文本操作上的便利性,使Python成为一个流行的原生数据集操作语言已经有很长时间了.字符串对象的内建方法使得大部分文本操作非常简单.对于更为复杂的模式匹配和文本操 ...
最新文章
- 认识 PHP 的hash函数
- 医疗器械软件安全性级别判定
- mysql ef_在EF中使用MySQL的方法及常见问题
- WeihanLi.Npoi 1.18.0 Released
- 动态数组ArrayList c# 1613536290
- 学习老男孩linux全程班决心书
- 基于人脸识别的课堂签到管理系统(四)---摄像头上传实时数据,百度AI读取并返回信息以及多线程操作
- 免费2款标注工具实操(内含下载链接)
- java day32【HTML标签:表单标签 、CSS】
- android imagebutton 设置边框,【Android技巧】ImageButton 去边框 添加按下效果
- android nv21 nv12,直接进行nv21或者nv12的resize
- 小白学习一eNSP华为模拟器(5)利用三层交换机实现VLAN间路由
- PAT 考试是什么?
- 针孔相机的标定原理与实现
- win10提示“你的设备已过期”的的最佳解决策略和方法
- Python:实现graham scan葛立恒扫描法算法(附完整源码)
- 什么是高位数,中位数,低位数
- 【Linux 操作系统】Ubuntu 基础操作 基础命令 热键 man手册使用 关机 重启等命令使用
- Cesium近景蓝色晴空万里天空盒子替换方法源码及图片资源-实测可用
- 雨敲窗python_标签 Python - 雨敲窗个人博客