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 切片介绍:切片操作符中的第一个数(冒号之前)表示切片 ...
随机推荐
- java数组实现买彩票(二个一维数组的比较思想)
/** 设计一个程序,模拟从彩球池里随机抽取5个彩球(彩球池里一共有11个彩球,编号为1~11), 要求在控制台打印出这5个被取出来的彩球的编号(注意编号不能重复). 思路: 1.创建一个int类型的 ...
- 关于JTable的使用
JTable是个JavaSwing中的表格控件,可以用来显示数据和编辑数据.这里讲一下我的使用心得. JavaSwing讲究MVC理念,而这个JTable也可以说是个迷你的MVC模型.JTable只是 ...
- 421 Maximum XOR of Two Numbers in an Array 数组中两个数的最大异或值
给定一个非空数组,数组中元素为 a0, a1, a2, … , an-1,其中 0 ≤ ai < 231 .找到 ai 和aj 最大的异或 (XOR) 运算结果,其中0 ≤ i, j < ...
- js 常用处理
判断浏览器环境是PC端还是手机端 function goPAGE() { if ((navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios| ...
- java课程设计全程实录——第1天
反思,总结昨天: IDE搭建完成: git远程配置失败,处理方式:放弃使用git 主要参考<疯狂java实战演义>中的图书进销存管理系统.但该项目是MySQL,无法直接套用,因为我们学的是 ...
- iOS 中集成海康威视 摄像视频
本文原文地址 http://www.cnblogs.com/qianLL/p/6652104.html 一.要导入相关的库,注意 这里比较坑的是 要用和他一样的 如果开始的工程中用了AFN或者MJE ...
- CF599B Spongebob and Joke
思路: 模拟,注意特判. 实现: #include <iostream> #include <cstdio> using namespace std; ], x[], y[], ...
- java jar文件打包成exe(Launch4j使用说明)
在日常的项目中需要把jar打包成exe.怎样快速的实现此功能.下面通过Launch4j的使用方法来介绍整个打包过程. 第一步:生成jar文件 第二部:使用Launch4j 图来描述过,简单明了.一切尽 ...
- iOS Programming Views :Redrawing and UIScrollView
iOS Programming Views :Redrawing and UIScrollView 1.1 event You are going to see how views are red ...
- 解决国内无法安装android sdk的问题
在使用 Android SDK Manager 的时候,主要会连接到两个地址 dl.google.com 和 dl-ssl.google.com,key发现这两个地址都是无法正常访问的,如何解决呢? ...