python字符串这一篇就够了
文章目录
- 四大前缀
- 大小写转化
- 空格调整函数
- 删除部分字符
- 字符串判定
- 字符串查找
- 分割、合并和替换
- format格式化
- format_map
四大前缀
除了普通的字符串,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 阿强'
从而使得代码更加清晰。
python字符串这一篇就够了相关推荐
- 自学python数据分析要多久-如果只有1小时学Python,看这篇就够了
大家好,我是大鹏,城市数据团联合发起人,致力于Python数据分析.数据可视化的应用与教学. 和很多同学接触过程中,我发现自学Python数据分析的一个难点是资料繁多,过于复杂.大部分网上的资料总是从 ...
- 学python重点是什么_如果只有1小时学Python,看这篇就够了
大家好,我是大鹏,城市数据团联合发起人,致力于Python数据分析.数据可视化的应用与教学. 和很多同学接触过程中,我发现自学Python数据分析的一个难点是资料繁多,过于复杂.大部分网上的资料总是从 ...
- python6小时完全入门_如果只有1小时学Python,看这篇就够了,摸摸头发你还好吗!...
和很多同学接触过程中,我发现自学Python数据分析的一个难点是资料繁多,过于复杂.大部分网上的资料总是从Python语法教起,夹杂着大量Python开发的知识点,花了很多时间却始终云里雾里,不知道哪 ...
- python 股票自动交易助手_学习 Python 看这一篇就够了!
2019.08.05 「Python 技术」公众号发出了第一篇文章,时至今日,已经快一年了.期间我们累积发文 260+ 篇,52 周除去周末我们基本做到了日更,这一路走来磕磕碰碰有太多的不容易,会有为 ...
- 学Python看这一篇就够了!!!
新手小白学Python在还没有人带的情况下很容易半途而废,Python的学习.开发经验会遇到一些问题,大家首先得正视这些问题,然后想办法解决. ① 没有全面的学习步骤: ② 资料不完整,缺乏实战: ③ ...
- 50多岁学python_学习 Python 看这一篇就够了!
2019.08.05 「Python 技术」公众号发出了第一篇文章,时至今日,已经快一年了.期间我们累积发文 260+ 篇,52 周除去周末我们基本做到了日更,这一路走来磕磕碰碰有太多的不容易,会有为 ...
- 学python看这一篇就够了
文章目录 一.python基础 常见数据类型: 1.字符串类型 2.数字类型 3.List列表类型 用[]定义 可变 4. tuple 元组 用()定义 不可变 5.Dict字典 用{}定义 6.se ...
- 理解Python并发编程一篇就够了 - 线程篇
目录 前言 GIL 同步机制 1. Semaphore(信号量) 2. Lock(锁) 3. RLock(可重入锁) 4. Condition(条件) 5. Event 6. Queue 线程池 前言 ...
- python中lowerright_python字符串,从入门到高阶看这篇就够了
大家都知道,学习新的一门编程语言都是从字符串,到类再到方法以及框架等一个演变的过程,入门到精通,今天我们就来系统的学习了解一下python的字符串,一篇足于. 简单的来讲,是什么是python字符串, ...
最新文章
- Springboot + redis + 注解 + 拦截器来实现接口幂等性校验
- awk 抓取文件子集
- RMI中部署时要注意的地方
- sql 合并相同条件的字段
- rsync error: some files/attrs were not transferred
- 《挖财编程题》求数列的和
- java.lang.NoClassDefFoundError: scala/xml/MetaData
- 2016-12-31:最后一天:回顾
- ClassNotFoundException Com Sun Jersey Spi Container Servle
- Windows PowerShell 语言快速参考
- Cocos2d-x之MenuItem
- Maven运行Selenium报错org/w3c/dom/ElementTraversal
- 字节跳动斥巨资开发出《Python知识手册》
- 谷歌浏览器插件离线安装
- 公式计算机实现,数学公式的计算机表达(精选).doc
- Java中的一个类怎么调用另一个类中的成员
- c8051f310烧录_C8051F烧录器-C8051F系列烧录工具下载v1.0.0.1 官方最新版-西西软件下载...
- java解决数独_Java解决“数独”之三
- 夏日炎炎,使用决策树去挑选西瓜(python实现)
- 【LINUX】LAMP概念与搭建