同是天涯沦落人,相逢何必曾相识! 我从去年辞帝京,谪居卧病浔阳城。

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字符串操作相关推荐

  1. python print 输出到txt_(Python基础教程之七)Python字符串操作

    Python基础教程 在SublimeEditor中配置Python环境 Python代码中添加注释 Python中的变量的使用 Python中的数据类型 Python中的关键字 Python字符串操 ...

  2. 小猿圈学习Python字符串操作--字符串分割函数

    对于长字符串,我们一般要怎么处理呢?除了切片,但是切片太麻烦了.python为我们提供了字符串切割函数,它不仅可以通过指定字符切割,也可以去除空格符哦.下面就看一下小猿圈Python讲师是怎么介绍Py ...

  3. python字符串_(Python基础教程之七)Python字符串操作

    Python基础教程 在SublimeEditor中配置Python环境 Python代码中添加注释 Python中的变量的使用 Python中的数据类型 Python中的关键字 Python字符串操 ...

  4. 第十章、python字符串操作与with语句及上下文管理器------字符串的匹配与查找

    目录 10.1 python的字符串的操作 10.1.1 python的字符串的匹配与查找 (1)实例 (2)find(或rfind).index(或rindex)与match.search.find ...

  5. python字符串操作、实验报告册——— 切片

    设计一个程序,输入是一个字符串"重庆工程学院软件与人工智能学院",按要求输出: 1. 输出这个字符串的长度 2. 用切片的方式用一句Python语句输出"重庆工程学院&q ...

  6. [转载] Python字符串操作大全(一)

    参考链接: Python字符串 字符串增删改查[strap()函数, split()函数 , find()函数 , 切片等] 学习一门编程语言一般从基础的数据类型开始 ,python中的数据类型有:整 ...

  7. python字符串操作_浅谈Python 字符串特有的操作方法

    来源:(微信号:python_cat)" 正如<你真的知道Python的字符串是什么吗?>所写,Python中字符串是由Uniocde编码的字符组成的不可变序列,它具备与其它序列 ...

  8. Python 字符串操作基础

    1.Python 字符串 字符串可以看做是由单个文本字符构成的列表,每个字母构成一个列表元素,可以用下标取值,切片,用于for循环,用len()函数 name = 'Zophoie' name[2] ...

  9. python字符串操作_Python 字符串操作 - 树懒学堂

    字符串操作 由于Python在字符串和文本操作上的便利性,使Python成为一个流行的原生数据集操作语言已经有很长时间了.字符串对象的内建方法使得大部分文本操作非常简单.对于更为复杂的模式匹配和文本操 ...

最新文章

  1. 认识 PHP 的hash函数
  2. 医疗器械软件安全性级别判定
  3. mysql ef_在EF中使用MySQL的方法及常见问题
  4. WeihanLi.Npoi 1.18.0 Released
  5. 动态数组ArrayList c# 1613536290
  6. 学习老男孩linux全程班决心书
  7. 基于人脸识别的课堂签到管理系统(四)---摄像头上传实时数据,百度AI读取并返回信息以及多线程操作
  8. 免费2款标注工具实操(内含下载链接)
  9. java day32【HTML标签:表单标签 、CSS】
  10. android imagebutton 设置边框,【Android技巧】ImageButton 去边框 添加按下效果
  11. android nv21 nv12,直接进行nv21或者nv12的resize
  12. 小白学习一eNSP华为模拟器(5)利用三层交换机实现VLAN间路由
  13. PAT 考试是什么?
  14. 针孔相机的标定原理与实现
  15. win10提示“你的设备已过期”的的最佳解决策略和方法
  16. Python:实现graham scan葛立恒扫描法算法(附完整源码)
  17. 什么是高位数,中位数,低位数
  18. 【Linux 操作系统】Ubuntu 基础操作 基础命令 热键 man手册使用 关机 重启等命令使用
  19. Cesium近景蓝色晴空万里天空盒子替换方法源码及图片资源-实测可用
  20. 雨敲窗python_标签 Python - 雨敲窗个人博客

热门文章

  1. 浅谈使用Word和Baklib制作帮助文档区别
  2. Spark培训之计算员工薪资
  3. “贵人语迟”?孩子说话越晚越聪明?
  4. 2023年国家司法考试报名条件有哪些 非法学可以考吗
  5. 《中国大历史》 黄仁宇 (博文中内附与该书无关的中国历史朝代表)
  6. input输入框限制中文汉字只能输入20个字符,英文10个字符!
  7. What!MariaDB、Postgre都要投入阿里云的怀抱?
  8. 项目中如何避免团队成员相互甩锅?
  9. python 通达信自动下载收盘和财务数据
  10. Java实验3 第十一题:游戏:双骰儿赌博