python之字符串处理 2014-4-5
#字符串 p62 13:20pm-15:20
上一章讲的所有的序列化操作对于字符串同样适用
不过字符串不可变 所以无法使用分片赋值
1.字符串格式化
>>> format="hello,%s,%s ok"
>>> values=('ww','xx')
>>> print format % values
hello,ww,xx ok
%s代替values里面的值 貌似%s不能改为$x
s表示字符串
格式化浮点数
%.3f .3表示精度 f表示类型 float
>>> format="Pi with three decimals:%.3f"
>>> from math import pi
>>> print format %pi
Pi with three decimals:3.142
字符串格式化 完整版
如果右操作数是元组的话 则其中每一个元素都会被单独格式化 每个值都需要一个对应的转换说明符
(1)%字符标记转换说明符的开始
(2)转换标志(可选)-左对齐 表示在转换值之前加上正负号;""(空白字符)表示正数之前要保留空格;0表示转换值如果位数不够用0填充
(3)最小字段宽度 转换后的字符串至少应该有该值指定的宽度
(4)点(.)后跟精度值
(5)转换类型
d,i 带符号的十进制整数
0 不带符号的八进制
u不带符号的十进制
x 不带符号的16进制(小写)
X 不带符号的16进制(大写)
e 科学计数法表示的浮点数(小写)
C单字符(接受整数或者单字符字符串)
r 字符串(使用repr转换任意python对象)
s 字符串(使用str转换任意python对象)
简单转换
只要写出转换类型 使用起来非常简单
>>> 'price of eggs :$%d'%42
'price of eggs :$42'
字段宽度和精度
>>> '%20f'%pi #字段宽20
' 3.141593'
>>> '%20.2f'%pi #字段宽20 精度为2
' 3.14'
可以用*作为字段宽度或者精度
>>> '%.*s'%(5,'Guido van')
'Guido'
符号 对齐和0填充
>>> '%010.2f'%pi
'0000003.14'
#0填充
>>> '%-10.2f'%pi
'3.14 '
#左对齐 多余空格在右 默认是空格在左
>>> print('%10d'%10)
10
>>> print('%10d'%-10)
-10
空白'%10d'可以用来对齐
>>> print('%+5d'%10)
+10
>>> print('%+5d'%-10)
-10
数字都加上正负号
4.字符串方法
find 查找子字符串最左端的索引 若无 返回-1
>>> t='hello I love your love'
>>> t.find('love')
8
#find还可以指定起点和终点范围
>>> t='love I love your love love'
>>> t.find('love')
0
>>> t.find('love',1)
7
>>> t.find('love',2)
7
>>> t.find('love',8)
17
>>> t.find('love',8,30)
17
join在队列中添加元素 split的逆方法
>>> seq=['1','2','3']
>>> sep="+"
>>> sep.join(seq)
'1+2+3'
注意符号的位置 在前 而且元素必须是字符串
>>> dir='','usr','bin'
>>> '/'.join(dir)
'/usr/bin'
lower返回字符串的小写字母版
>>> 'Heello woEld'.lower()
'heello woeld'
查找姓名 或者验证码的时候 比较有用不管输入大小写都可以
>>> 'heLLO oLi'.title()
'Hello Oli'
#首字母大写
replace返回某字符串的所有匹配项均被替换之后得到字符串
>>> 'this is a test'.replace('is','eez')
'theez eez a test'
split 与join相反 用来将字符串分隔成序列
>>> '1+2+3'.split('+')
['1', '2', '3']
如果不提供任何分隔符 程序会把所有空格作为分隔符
strip返回去除两侧空格的字符串
>>> ' hello world '.strip()
'hello world'
也可指定某个字符去除
'hello'.strip(ll)
translate 类似于replace 替换 但是 translate只处理单个字符 优势在于同时进行多个替换 有时候比replace效率高得多
使用之前 需要先建一张转换表 使用string模块的maketrans函数
from string import maketrans
table=maketrans('cs','kz')#接受2个参数
转换表是包含替换的ASCII字符集中256个字符的替换字母的字符串
>>> from string import maketrans
>>> table=maketrans('cs','kz')
>>> len(table)
256
>>> table[97:123]
'abkdefghijklmnopqrztuvwxyz'
>>> maketrans('','')[97:123]
'abcdefghijklmnopqrstuvwxyz'
以上建好转换表 以下转换
>>> 'this is an test'.translate(table)
'thiz iz an tezt'
第二个参数可以删除指定的字符 比如空格
>>> 'this is an test'.translate(table," ")
'thizizantezt'
python之字符串处理 2014-4-5的更多相关文章
- Python格式化字符串~转
Python格式化字符串 在编写程序的过程中,经常需要进行格式化输出,每次用每次查.干脆就在这里整理一下,以便索引. 格式化操作符(%) "%"是Python风格的字符串格式化操作 ...
- python学习--字符串
python的字符串类型为str 定义字符串可以用 ‘abc' , "abc", '''abc''' 查看str的帮助 在python提示符里 help(str) python基于 ...
- Python格式化字符串和转义字符
地址:http://blog.chinaunix.net/uid-20794157-id-3038417.html Python格式化字符串的替代符以及含义 符 号 说 明 ...
- [转载] python 计算字符串长度
本文转载自: http://www.sharejs.com/codes/python/4843 python 计算字符串长度,一个中文算两个字符,先转换成utf8,然后通过计算utf8的长度和len函 ...
- Python基础-字符串格式化_百分号方式_format方式
Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This ...
- python判断字符串
python判断字符串 s为字符串s.isalnum() 所有字符都是数字或者字母s.isalpha() 所有字符都是字母s.isdigit() 所有字符都是数字s.islower() 所有字符都是小 ...
- Python格式化字符串
在编写程序的过程中,经常需要进行格式化输出,每次用每次查.干脆就在这里整理一下,以便索引. 格式化操作符(%) "%"是Python风格的字符串格式化操作符,非常类似C语言里的pr ...
- python(七)字符串格式化、生成器与迭代器
字符串格式化 Python的字符串格式化有两种方式:百分号方式.format方式 1.百分号的方式 %[(name)][flags][width].[precision]typecode (name) ...
- Python 的字符串格式化和颜色控制
(部分内容源自武神博客和网络收集.) Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两 ...
- python反转字符串(简单方法)及简单的文件操作示例
Python反转字符串的最简单方法是用切片: >>> a=' >>> print a[::-1] 654321 切片介绍:切片操作符中的第一个数(冒号之前)表示切片 ...
随机推荐
- linux 磁盘 分区、格式化、挂载
将容量结果易读的容量格式显示出来df -h 分区 初次接触仅分成两个分区(“/与Swap”)预留一个备用的剩余磁盘容量 磁盘分区 fdisk #df /找出磁盘文件名#fdisk /dev/hdc#m ...
- BZOJ2333 棘手的操作
Description 有N个节点,标号从1到N,这N个节点一开始相互不连通.第i个节点的初始权值为a[i],接下来有如下一些操作: U x y: 加一条边,连接第x个节点和第y个节点 A1 x ...
- 转 11g RAC R2 体系结构---Grid
基于agent的管理方式 从oracle 11.2开始出现了多用户的概念,oracle开始使用一组多线程的daemon来同时支持多个用户的使用.管理资源,这些daemon叫做Agent.这些Agent ...
- sed与正则表达式
行的开头(^) ^匹配每一行的开头 [root@sishen ~]# sed -n '/^103/ p ' employee.txt 103,Raj Reddy,Sysadmin 只有^出现在正则表达 ...
- .vue文件在phpstorm中红线解决办法
主要原因是js版本太低, 1,安装vue.js插件, 2,设置file type,vue.js添加 *.vue, 3,切换js版本为es6,
- Hadoop YARN学习之重要术语总结(6)
Hadoop YARN学习之重要术语总结(6) - SLA服务等级 - RM(ResourceManager) - AM(ApplicationMaster) - NM(NodeMaster) - M ...
- scala基础篇-03 if与for
一.Scala中的if是表达式** 1.定义方式 2.例子 二.for 的用法 1.定义方式: for{ x <- xs y=x+ ) }yield y 2.例子:
- 一致性hash学习
一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似.一致性哈希修正了CARP使用的简 单哈 ...
- 【C++】朝花夕拾——STL vector
STL之vector篇 N久之前是拿C的数组实现过vector中的一些简单功能,什么深拷贝.增删查找之类的,以为vector的实现也就是这样了,现在想想真是...too young too naive ...
- 针对windowsserver 创建iis站点访问出错的解决方案(HTTP 错误 500.19 - Internal Server Error)
错误如下: 服务器错误 Internet信息服务 7.0 错误摘要HTTP 错误 500.19 - Internal Server Error 无法访问请求的页面,因为该页的相关配置数据无效. 详 ...