一、基本字符串操作


所有标准的序列操作(索引、分片、乘法、判断成员资格、求长度、取最小值和最大值)对字符串同样适用。但是字符串是不可改变的。

二、字符串格式化


字符串格式化使用字符串格式化操作符(%)来实现。

1、格式化一个值:

>>> "Hello,%s" % 'world'
'Hello,world'

2、格式化多个值:

元组或字典实现:

>>> print("Hello,%s. %s enough for ya?" % ('world','Hot'))
Hello,world. Hot enough for ya?

3、字符串格式化规则

  • %字符:标识转换说明符的开始。
  • 转换标志(可选):- 表示左对齐;+ 表示在转换的值前加上正负号;" "(空白字符)表示正数之前保留空格;0 表示转换值若位数不够则用0填充。
  • 最小字段宽度(可选):转换后的字符串至少应该具有该值指定的宽度。如果是*,则宽度从值元组中读取。
  • 点(.)后跟精度值(可选):如果转换的是实数,精度值就表示小数点后的位数。如果转换的是字符串,那么该数字就表示最大字段宽度。如果是*,那么精度将从元组中读取。
  • 转换类型:
转换类型 含义
d,i 带符号的十进制数
o 不带符号的八进制数
u 不带符号的十进制数
x 不带符号的十六进制数(小写)
X 不带符号的十六进制数(大写)
e 科学计数法表示的浮点数(小写)
E 科学计数法表示的浮点数(大写 )
f,F 十进制浮点数
g 如果指数大于-4或者小于精度值则和e相同,其他情况与F相同
G 如果指数大于-4或者小于精度值则和E相同,其他情况与F相同
C 单字符(接受整数或单字符串)
r 字符串(使用repr转换任意python对象)
s 字符串(使用str转换任意python对象)

简单转换

只需写出转换类型:

>>> 'Price of eggs:%d' % 42
'Price of eggs:42'
>>> 'Hexadecimal price of eggs:%x' % 42
'Hexadecimal price of eggs:2a'

字段宽度和精度

  • 字段宽度是转换后的值保留的最小字符个数。
  • 字段精度,对于数字来说,是应该包含的小数位数;对于字符串来说,是转换后的值所能包含的最大字符个数。
  • 这两个参数都是整数(首先是宽度,然后是精度),以点号(.)分隔。如果只给出精度,就必须包含.号
>>> '%10f' % 3.1415926
'  3.141593'
>>> '%10.2f' % 3.1415926
'      3.14'
>>> '%.2f' % 3.1415926
'3.14'
>>> '%.5s' % 'dhfuhduioshduio'
'dhfuh'

可以使用*做为字段宽度或精度,此时数值会从元组参数中读取

>>> '%.*s' % (5,'dhfuhduioshduio')
'dhfuh'
>>> '%*.*s' % (10,5,'dhfuhduioshduio')
'     dhfuh'

符号、对齐和用0填充

在字段宽度和精度值之前还可以放一个标志,该标志可以是零(0),加号(+),减号(-)或空格

零(0)表示转换的值为数字时,不足宽度的部位将用0填充,转换的值为字符串时无影响

>>> '%010.2f' % 3.1415926
'0000003.14'
>>> '%010.5s' % 'udshkdsfhdkjf'
'     udshk'

减号(-)表示左对齐数值

>>> '%-10.2f' % 3.1415926
'3.14      '

加号(+)表示不管是正数还是负数都表示出正负号

>>> '%+5d' % 10
'  +10'
>>> '%+5d' % -10
'  -10'

空格表示在正数前加上空格

>>> '% 5d' % 10
'   10'
>>> '% 5d' % -10
'  -10'

三、字符串方法


1、find

用于在一个长字符串中查找子串。返回子串所在位置的最左端索引。如果没有找到则返回-1

>>> title = "Monty Python's Flying Circus"
>>> title.find('Monty')
0
>>> title.find('Python')
6
>>> title.find('Flying')
15
>>> title.find('Zirquss')
-1

这个方法还可以接受可选的起始点和结束点参数,指定查找的字符串范围:

>>> subject = '$$$ Get rich now!!! $$$'
>>> subject.find('$$$')
0
>>> subject.find('$$$',1) # 指定查找的起始点
20
>>> subject.find('!!!')
16
>>> subject.find('!!!',0,16) # 指定查找的起始点和结束点
-1

2、join

用于连接序列中的元素,被连接的元素都必须是字符串

>>> dirs = '','usr','bin','env'
>>> '/'.join(dirs)
'/usr/bin/env'
>>> seq = ['1','2','3','4','5']
>>> '+'.join(seq)
'1+2+3+4+5'
>>> seq = [1,2,3,4,5]
>>> '+'.join(seq)
Traceback (most recent call last):File "<pyshell#15>", line 1, in <module>'+'.join(seq)
TypeError: sequence item 0: expected str instance, int found

3、lower

用户返回字符串的小写字母

>>> 'HELLO WORLD!'.lower()
'hello world!'

4、replace

用于替换字符串中的字符

>>> 'This is  a test'.replace('is','eez')'Theez eez  a test'

5、split

用于将字符串分割成序列

>>> '1+2+3+4+5'.split('+')['1', '2', '3', '4', '5']
>>> '/usr/bin/env'.split('/')['', 'usr', 'bin', 'env']

6、strip

用于去除字符串两侧(不包括内部)空格的字符串

>>> '          hello world!      '.strip()'hello world!'

转载于:https://www.cnblogs.com/eastonliu/p/9094565.html

Python3学习笔记(六):字符串相关推荐

  1. python基础第三章选择结构答案-python3 学习笔记(二)选择结构、循环结构

    python3 学习笔记 python 优雅 明确 简单 1.选择结构 (1)简单判断 if else 使用格式: if  条件: 表达式1 else: 表达式2 (2)多条件判断 elif 使用格式 ...

  2. Python学习笔记六——画小猪佩奇

    目录 Python学习笔记六--画小猪佩奇 画布 画笔 属性设置 操纵命令 运动命令 画笔控制命令 全局控制命令 其他命令 Python学习笔记六--画小猪佩奇 使用Python的turtle库可以绘 ...

  3. Python3学习笔记之-学习基础(第三篇)

    Python3学习笔记之-学习基础(第三篇) 文章目录 目录 Python3学习笔记之-学习基础(第三篇) 文章目录 一.循环 1.for循环 2.while循环 3.break,continue 二 ...

  4. A Byte of Python3 学习笔记

    A Byte of Python3 学习笔记 第七章 控制流 1.if语句(带输入函数) 2.while语句 3.for循环 4.break.continue.return的区别 第八章 函数 8.1 ...

  5. Python3 学习笔记

    Python3 学习笔记 1.基础语法 1.1 字符串操作 title() 将单词首字母改为大写 upper() 所有字母改为大写 lower() 所有字母改为小写 str1+str2 字符串通过'+ ...

  6. Java学习笔记 六、面向对象编程中级部分

    Java学习笔记 六.面向对象编程中级部分 包 包的注意事项和使用细节 访问修饰符 访问修饰符的注意事项和使用细节 面向对象编程三大特征 封装 封装的实现步骤(三步) 继承 继承的细节问题 继承的本质 ...

  7. Ethernet/IP 学习笔记六

    Ethernet/IP 学习笔记六 EtherNet/IP defines two primary types of communications: explicit and implicit (Ta ...

  8. 吴恩达《机器学习》学习笔记六——过拟合与正则化

    吴恩达<机器学习>学习笔记六--过拟合与正则化 一. 过拟合问题 1.线性回归过拟合问题 2.逻辑回归过拟合问题 3.过拟合的解决 二. 正则化后的代价函数 1.正则化思想 2.实际使用的 ...

  9. 1.C#基础学习笔记3---C#字符串(转义符和内存存储无关)

    技术qq交流群:JavaDream:251572072  教程下载,在线交流:创梦IT社区:www.credream.com ------------------------------------- ...

  10. ROS学习笔记六:理解ROS服务和参数

    ROS学习笔记六:理解ROS服务和参数 主要介绍ROS服务和参数,同时使用命令行工具rosservice和rosparam. ROS service service是节点之间互相通信的另一种方式,se ...

最新文章

  1. pythonwhile列表_Python编程:while循环处理列表和字典
  2. 【思维导图】脑机音乐接口,高效检测用户的情绪状态
  3. openfoam211版本安装
  4. 3D游戏引擎设计 实时计算机图形学的应用方法 第2版 pdf 带索引书签目录
  5. vue循环如何传参数 php,vue循环列表动态数据的处理方法(代码)
  6. mysql代表单个字符_mysql字符编码以及字符序
  7. DataTable转成List集合
  8. java某个时间推迟60天_java计算两个时间相差(天、小时、分钟、秒)
  9. 95-860-045-源码-定时器-InternalTimerService
  10. thymeleaf的能用在什么地方_上古文明真相研究系列:天圆地方和南辕北辙
  11. JavaScript提升(Hoisting)---借鉴自W3CSchool
  12. hdoj--2546--饭卡
  13. JVM垃圾回收策略与垃圾收集器
  14. 2021 年高教社杯全国大学生数学建模竞赛题目
  15. 电信 dns服务器 不稳定,知名DNS服务商114DNS故障,你访问受影响了吗?
  16. SAP HR系统2019年五一节假日调整
  17. 中专计算机英语听课记录,【听课记录15篇及评析】_英语听课记录及评析_英语听课记录及评析范文5篇...
  18. 【数据分析】⚠️走进数据分析 3⚠️ Beautiful Soup 提取页面信息
  19. 新办公室设置共享打印机
  20. 观察 | 从0到700万,钉钉只用3年,原因就是快准狠!

热门文章

  1. c++ primer 5th,习题11.33
  2. Centos7安装Python3.7
  3. java 线上运维_一次java应用线上运维实战
  4. 鸢尾花分类_K近邻(分类通用 数据挖掘入门与实践-实验4)
  5. java不同网址提示过期_使用history.back()出现警告: 网页已过期的解决办法
  6. nb信号和4g信号_手机信号很强但是4G网络却很卡?学会这三招,立马恢复网速
  7. linux getopts学习笔记
  8. Apache Tomcat 5.5 Servlet/JSP 容器
  9. Oracle中table变量在JDBC中的运用
  10. Postfix 邮件服务 - 基础服务