python学习笔记(三)
来源:互联网 发布:淘宝的康恩贝那么便宜 编辑:程序博客网 时间:2024/06/05 00:52
3.字符串
所有标准的序列操作(索引、分片、乘法、判断成员资格、求长度、取最小值和最大值)对字符串同样适用,但是字符串都是不可变的,因此,类似以下的分片赋值是不合法的。
>>> website='http://www.python.org'
>>> website[-3: ]='com'
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
website[-3: ]='com'
TypeError: 'str' object does not support item assignment
3.1 字符串格式化:精简版
字符串格式化操作符:% ,在%左侧防止一个字符串(格式化字符串),而右侧则放置希望格式化的值。
转换说明符:%s ,标记了需要插入转换值的位置。s表示值会被格式化为字符串,如果不是字符串,则会用str将其转换为字符串。
>>> format='hello,%s,%s enough for ya?'
>>> values=('23','24')
>>> print format % values
hello,23,24 enough for ya?
注意:如果要在格式化字符串里面包括百分号,那么必须使用%%,这样python就不会将百分号误认为是转换说明符了。
string模块提供另外一种格式化值的方法:模块字符串。substitute这个模块方法会用传递进来的关键字参数foo替换字符串中的$foo
>>> from string import Template
>>> s=Template('$x,glorious $x')
>>> s.substitute(x='slurm')
'slurm,glorious slurm'
如果替换字段是单词的一部分,那么参数名就必须用括号括起来,从而准确指明结尾:
>>> s=Template("It's ${x}tastic!")
>>> s.substitute(x='slurm')
"It's slurmtastic!"
3.2 字符串格式化:完整版
基本的转换说明符包括以下部分:
(1)%字符:标记转换说明符的开始。
(2)转换标志(可选):- 表示左对齐,+表示在转换值之前要加上正负号,“ ”(空白字符)表示正数之前保留空格,0表示转换值若位数不够则用0填充。
(3)最小字段宽度(可选):转换后的字符串至少应该具有该值指定的宽度。如果是*,则宽度会从值元组中读出。
(4)点(.)后跟精度值(可选):如果转换的是实数,精度值就表示出现在小数点后的位数。如果转换的是字符串,那么该数字就表示最大字段宽度。如果是*,那么精度将会从元组中读出。
3.3 字段宽度和精度
字段宽度是转换后的值所保留的最小字符个数,精度(对于数字转换来说)则是结果中应该包含的小数位数,或者(对于字符串转换来说)是转换后的值所能包含的最大字符个数。
>>> 'pi:%f...'% pi
'pi:3.141593...'
#字段宽10,精度2
>>> '%10.2f'% pi
' 3.14'
3.4 符号、对齐和0 填充
在字段宽度和精度值之前还可以放置一个“标表”,该标表可以是零、加号、减号或空格。零表示数字将会用0进行填充。
>>> '%010.2f'% pi
'0000003.14'
减号用来左对齐数值:
>>> '%-10.2f'% pi
'3.14 '
空格意味着在正数前加上空格。在需要对齐正负数时很有用
>>> print('%5d' % 10)+ '\n'+('%5d' % -10)
10
-10
加号,表示不管是正数还是负数都标示出符号
>>> print('%+5d' %10)+ '\n'+('%+5d' %-10)
+10
-10
3.5 字符串方法
find:在一个较长的字符串中查找子字符串。它返回子串所在位置的最左端索引。如果没有找到则返回-1。
>>> title="monty python's flying circus"
>>> title.find('monty')
0
>>> title.find('python')
6
>>> title.find('zirquss')
-1
这个方法还可以接受可选的起始点和结束点参数:
>>> subject= '$$$ get rich now!!! $$$'
>>> subject.find('$$$',1) #只提供起点
20
>>> subject.find('!!!',0,16) #提供起始点和结束点
-1
3.6 join:用于在队列中添加元素。
>>> seq=['1', '2', '3', '4', '5']
>>> sep.join(seq)
'1+2+3+4+5'
>>> dirs='', 'user', 'bin', 'env'
>>> '/'.join(dirs)
'/user/bin/env'
>>> print 'c:'+ '\\'.join(dirs)
c:\user\bin\env
3.7 lower :返回字符串的小写字母版。
>>> name='Melody'
>>> names=['melody','alice','jake']
>>> if name.lower() in names:print 'Found it!'
Found it!
3.8 replace:返回某字符串的所有匹配项均被替换之后得到字符串。
>>> 'this is a test'.replace('is','eez')
'theez eez a test'
3.9 split:将字符串分割成序列。
>>> '1+2+3+4+5'.split('+')
['1', '2', '3', '4', '5']
4.0 strip:返回去除两侧(不包括内部)空格的字符串。
>>> ' today is friday! '.strip()
'today is friday!'
也可以指定需要去除的字符,将它们列为参数即可。
>>> '***spam*for*everone!!!***'.strip('*!')
'spam*for*everone'
4.1 translate:替换字符串中的某些部分,只处理单个字符,但是可以同时进行多个替换。
- python学习笔记(三)
- Python学习笔记(三)
- python学习笔记(三)
- python学习笔记:(三)
- Python学习笔记(三)
- python学习笔记(三)
- Python学习笔记(三)
- python 学习笔记(三)
- python学习笔记(三)
- Python学习笔记(三)
- python学习笔记(三)
- Python学习笔记(三)
- Python学习笔记(三)
- python学习笔记(三)
- Python学习笔记(三)
- Python学习笔记(三)
- Python学习笔记(三)
- Python学习笔记(三)
- Web全栈笔记之node.js第一章
- Hibernate中Session的缓存及对象的状态
- 教务管理人员问题的初始需求建立
- Java访问控制权限
- 全新 Kali Linux 系统安装指南
- python学习笔记(三)
- 热修复,Tinker的接入
- 一元二次方程组(改进delta<0)
- 从业务分析到系统建模、研发 基本方法论
- LL(1)文法分析器简单实现
- 给ListView注册上下文菜单,长按某项item并根据弹出菜单删除该item
- 《月亮与六个便士》读后感
- IOS倒计时秒杀
- Maven依赖jar的自动升级配置