python掌握字符串只需这一篇就够了
作者:微小冷 发布时间:2023-01-09 03:39:10
标签:python,字符串
四大前缀
除了普通的字符串,python在字符串前面可以有4个前缀,即frub。其中,f字符串可将{}
中的变量转为字符串;r
表示取消转义;u
表示使用Unicode字符;b
表示采用byte
类型。
前二者最常用,示例如下
>>> f"1+1={1+1}" #f字符串
'1+1=2'
>>> r"C:\abc\def" #r字符串取消转义
'C:\\abc\\def'
大小写转化
大小写转化 | 说明 | 示例 | 结果 |
---|---|---|---|
capitalize() | 首字母转大写 | 'i love u'.capitalize() | ‘I love u' |
upper() | 所有字母转大写 | 'I love u'.upper() | ‘I LOVE U' |
lower() | 所有字母转小写 | 'I LOVE U'.lower() | ‘i love u' |
title() | 单词首字母大写 | 'i love u'.title() | ‘I Love U' |
swapcase() | 大小写翻转 | 'I Love U'.swapcase() | ‘i lOVE u' |
casefold() | 超级大写转小写 | 'Γ'.casefold() | ‘γ' |
空格调整函数
其中输入w
表示将字符长度调整为w
,如未作说明,则其余位置补充为空格。
空格调整 | 说明 | 示例 | 结果 |
---|---|---|---|
center(w) | 调整后原字符串居中 | 'Love'.center(6) | ' Love ' |
ljust(w) | 调整后原字符串居左 | 'Love'.ljust(6) | 'Love ' |
rjust(w) | 调整后原字符串居右 | 'Love'.rjust(6) | ' Love' |
zfill(w) | 在左侧补0 | '123'.zfill(6) | ‘000123' |
expandtabs(w) | 将tab 转为w个空格 | '\ta'.expandtabs(4) | ' a' |
删除部分字符
s
为字符串,如果为空则默认为空格。
lstrip(s) | 自左删除s 中的字符 | 'ILoveU'.lstrip('ILU') | ‘oveU' |
rstrip(s) | 自右删除s 中的字符 | '\tLove\t'.rstrip() | ‘\tLove' |
strip(s) | 执行lstrip(s)和rstrip(s) | '\tLove\t'.strip() | ‘Love' |
removeprefix(s) | 自左删除s | 'ILoveU'.removeprefix('ILU') | ‘ILoveU' |
removesuffix(s) | 自右删除s | 'ILoveU'.removesuffix('eU') | ‘ILov' |
字符串判定
返回True的条件 | 示例 | 返回值 | |
---|---|---|---|
isalnum() | 只包含字母或数字 | 'abc1'.isalnum() | True |
isalpha() | 只含字母 | 'abc1'.isalpha() | False |
isdecimal() | 只包含十进制数字 | '123A'.isdecimal() | False |
isdigit() | 只含数字 | '123A'.isdecimal() | False |
islower() | 包含字母,且均为小写 | 'abc1'.islower() | True |
isupper() | 包含字母,且均为大写 | '123'.isupper() | False |
isnumeric() | 只包含数字字符 | '四五'.isnumeric() | True |
isspace() | 只含空格 | 'asd'.isspace() | False |
istitle() | 首字母均大写 | 'I Love U'.istitle() | True |
isascii() | 均为ASCII码 | '四'.isascii() | False |
isidentifier() | 可用作python标识符 | '1asd'.isidentifier() | False |
isprintable() | 均为可打印字符 | chr(1).isprintable() | False |
字符串查找
下面的函数均有三个输入参数,str
表示待匹配字符串,beg
和end
分别表示开头和结尾,默认为0和被匹配字符串的长度。以s.count(str, beg, end)
为例,表示s[beg:end]
中str
出现的次数。
s.count(str, beg, end) | str 出现的次数 |
s.find(str, beg, end) | str 首次出现的位置,如未找到则返回-1 |
s.rfind(str, beg, end) | str 最后出现的位置,如未找到则返回-1 |
s.index(str, beg, end) | 和find 相同,但未找到会报错 |
s.rindex(str, beg, end) | 和rfind 相同,但未找到会报错 |
s.startswith(str, beg, end) | 若以str 开头,则返回True |
s.endswith(str, beg, end) | 若以str 结尾,则返回True |
分割、合并和替换
s.split(str, num) | 将s 按照str 进行分割,若指定num,则分割为num+1 段 |
s.rsplit(str, num) | 和split相同,但从右向左开始匹配 |
s.splitlines([keepends]) | 按行分割,若指定keepends为False,则不保留换行符 |
s.join(seq) | 以s 为分隔符,将seq 中的字符串组合在一起 |
s.partition(str) | 将s 分成三份,str 左边,str 和str 右边 |
s.rpartition(str) | 和partition 相同,但从右边开始 |
s.replace(s1, s2, num) | 将s 中的s1 换成s2 ,若指定num,则替换不超过num次 |
除了replace
,还可以通过translate
来进行替换,区别在于translate
输入的是maketrans
建立的替换表。
>>> trans = ''.maketrans('I',"我")
>>> "I Love U".translate(trans)
'我 Love U'
format格式化
format
可将标识符{}
替换为元组中的值,如果{}
中未指定序号,则顺序替代。
'{} Love {}'.format('I','U')
'I Love U'
如果{}
中指定了序号,则按照序号的顺序替代
>>> '{0} Love {1}, {1} Love {0}'.format('I','U')
'I Love U, U Love I' #最近被蜜雪冰城洗脑了。。。
当然,和C语言一样,这种格式化用于数字转化的情况多一些,python中通过:
来声明数字转化为字符串之后的格式
其中,
^, <, >
分别表示居中、左对齐、右对齐+
表示在正数前显示+,负数前显示 -b
、d
、o
、x
分别是二进制、十进制、八进制、十六进制
具体示例如下
>>> from math import pi
输入 | 输出 | 描述 |
---|---|---|
'{:.2f}'.format(pi) | ‘3.14' | 保留两位小数,四舍五入 |
'{:.2%}'.format(pi) | ‘314.16%' | 保留两位小数的百分数 |
'{:+.2f}'.format(1) | ‘+1.00' | 保留两位小数,带符号 |
'{:0>5d}'.format(1) | ‘00001' | 左侧补0,宽度为5 |
'{:>5d}'.format(1) | ‘01' | 左侧补空格,宽度为5 |
'{:x<5d}'.format(1) | ‘1xxxx' | 右侧补x,宽度为5 |
'{:-^5d}'.format(1) | ‘–1--' | 两侧补-,宽度为5 |
'{:,}'.format(1e5) | ‘100,000.0' | 逗号分隔 |
'{:.2e}'.format(1e5) | ‘1.00e+05' | 科学计数法 |
'{:b}'.format(8) | ‘1000' | 二进制 |
format_map
format
的输入为一个字符串元组,将元组中的字符串根据索引替代字符串中的{}
,而format_map
则直接用字典来进行格式化。
例如用元组可以做到
>>> '{} Love {}'.format("阿珍","阿强")
'阿珍 Love 阿强'
而用字典,则可以这样写
>>> '{A} Love {B}'.format_map({"A":"阿珍","B":"阿强"})
'阿珍 Love 阿强'
从而使得代码更加清晰。
来源:https://blog.csdn.net/m0_37816922/article/details/121229699
0
投稿
猜你喜欢
- 1. 新建.py文件# pip install kafka-pythonfrom kafka import KafkaConsumerimp
- 什么是进程进程就是操作系统中执行的一个程序,操作系统以进程为单位分配存储空间,每个进程都有自己的地址空间、数据栈以及其他用于跟踪进程执行的辅
- 刚开始使用webpack时,可能很多人都会有过这样的想法,在require文件时,能不能不写静态的字符串路径,而是使用一个更灵活的方式,比如
- 安装模块1、找到对应的模块 http://www.python-excel.org/2、用pip install 安
- 使用MySQL可视化工具Navicat导出MySQL的表结构脚本的方法。1、右键Navicat中的数据库→数据传输(Data Transfe
- SQLAlchemy是Python编程语言下的一款开源软件,提供了SQL工具包及对象关系映射(ORM)工具,使用MIT许可证发行。SQLAl
- 在利用QT编写GUI程序时经常需要一些交互操作,常见的有鼠标事件、键盘事件等。今天我们要实现的是在label中已经显示的图像中绘制矩形框,以
- 前端实现用ligerUI实现分页,感觉用框架确实简单,闲着无聊,模拟着liger的分页界面实现了一遍(只要是功能,样式什么无视)
- 下面我先给出了一小段代码示例,思考一下,为什么name,my_name 不会有波浪线,而 myname 和 wangbm 会有波浪线呢?Py
- 一,最常见MYSQL最基本的分页方式:select * from content order by id desc limit 0, 10在
- 实例如下所示:import timeimport pickleimport osimport reclass LogIncScaner(ob
- 1. 自己用python写了一个签到脚本经过测试已经可以成功打卡,于是研究了一下windows定时运行程序2. 创建定时任务2.1 打开“控
- 1. 数组数组是 Golang 中的一种基本数据类型,用于存储固定数量的同类型元素。在 Golang 中,数组的长度是固定的,并且必须在定义
- 在MySQL主从复制环境的搭建中,常常会遇到一种场景,主库和从库都要初始化用户的账号密码,正常的情况下,需要在主
- 最近火热全文的ChatGPT,被很多人玩出了花,我们在Github上可以看到几个常见的逆向SDK包,这一篇我将以学习的方式来写这一篇文章。这
- 我们可以把全体人数当作一个集合,想要往其中加入新人有不同的增加方式。可以一周增加一次,也可以集中到月底一起加入集体。我们今天所要讲的在pyt
- 这篇文章主要介绍了Python socket模块方法实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需
- 一、 软件配置安装必备爬虫环境软件:python 3.8pip install requestspip install beautifuls
- 一、图示上面为pdf截图内容,下面为转化后的word截图内容接下来,我们试试自己动作写这个工具吧!二、前期准备由于我们采用的是python进
- 写在前面最近正好有音视频编辑的需求,虽然之前粗略的了解过FFmpeg不过肯定是不够用的,借此重新学习下;基本概念ffmpeg概念Fmpeg的