#字符串 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的更多相关文章

  1. Python格式化字符串~转

    Python格式化字符串 在编写程序的过程中,经常需要进行格式化输出,每次用每次查.干脆就在这里整理一下,以便索引. 格式化操作符(%) "%"是Python风格的字符串格式化操作 ...

  2. python学习--字符串

    python的字符串类型为str 定义字符串可以用 ‘abc' , "abc", '''abc''' 查看str的帮助 在python提示符里 help(str) python基于 ...

  3. Python格式化字符串和转义字符

    地址:http://blog.chinaunix.net/uid-20794157-id-3038417.html Python格式化字符串的替代符以及含义     符   号     说     明 ...

  4. [转载] python 计算字符串长度

    本文转载自: http://www.sharejs.com/codes/python/4843 python 计算字符串长度,一个中文算两个字符,先转换成utf8,然后通过计算utf8的长度和len函 ...

  5. Python基础-字符串格式化_百分号方式_format方式

    Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This ...

  6. python判断字符串

    python判断字符串 s为字符串s.isalnum() 所有字符都是数字或者字母s.isalpha() 所有字符都是字母s.isdigit() 所有字符都是数字s.islower() 所有字符都是小 ...

  7. Python格式化字符串

    在编写程序的过程中,经常需要进行格式化输出,每次用每次查.干脆就在这里整理一下,以便索引. 格式化操作符(%) "%"是Python风格的字符串格式化操作符,非常类似C语言里的pr ...

  8. python(七)字符串格式化、生成器与迭代器

    字符串格式化 Python的字符串格式化有两种方式:百分号方式.format方式 1.百分号的方式 %[(name)][flags][width].[precision]typecode (name) ...

  9. Python 的字符串格式化和颜色控制

    (部分内容源自武神博客和网络收集.) Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两 ...

  10. python反转字符串(简单方法)及简单的文件操作示例

    Python反转字符串的最简单方法是用切片: >>> a=' >>> print a[::-1] 654321 切片介绍:切片操作符中的第一个数(冒号之前)表示切片 ...

随机推荐

  1. CF1119F Niyaz and Small Degrees

    题意 给你\(n\)个点的树,边有边权 问使得所有的点度数都小于等于\(x\)的最小删边的代价 \([x \in 0...n-1]\) 题解 首先对于每个\(x\) 可以有一个\(O(nlogn)\) ...

  2. 洛谷 P1816 忠诚

    https://www.luogu.org/problemnew/show/1816 st表模板 #include<cstdio> #include<algorithm> us ...

  3. 转 php中$_request与$_post、$_get的区别

    php中有$_REQUEST与$_POST.$_GET用于接受表单数据,当时他们有何种区别,什么时候用那种最好. 一.$_REQUEST与$_POST.$_GET的区别和特点 $_REQUEST[]具 ...

  4. 455 Assign Cookies 分发饼干

    假设你是一位很棒的家长,想要给你的孩子们一些小饼干.但是,每个孩子最多只能给一块饼干.对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的饼干的最小尺寸:并且每块饼干 j ,都有一个尺寸 ...

  5. 211 Add and Search Word - Data structure design 添加与搜索单词 - 数据结构设计

    设计一个支持以下两个操作的数据结构:void addWord(word)bool search(word)search(word) 可以搜索文字或正则表达式字符串,字符串只包含字母 . 或 a-z . ...

  6. mysql 中 时间函数 now() current_timestamp() 和 sysdate() 比较

    转载请注明出处 https://www.cnblogs.com/majianming/p/9647786.html 在mysql中有三个时间函数用来获取当前的时间,分别是now().current_t ...

  7. nginx for ubuntu

    1.创建文件夹 :mkdir nginx 2.解压nginx: tar zxvf nginx.gz.tar 3.nginx 初始化:在nginx的路径下执行:./configure 有可能会报错: . ...

  8. was--创建概要文件(典型)

    1.第一步 2 .创建 3.创建 4 .典型 5  下一步 6 下一步   7.下一步   8.输入用户和密码,下一步 9.下一步 10.下一步 11.下一步 12.下一步 13.下一步 14.创建 ...

  9. 常用css属性拓展

    text-overflow:clip | ellipsis(默认值:clip)clip:当内联内容溢出块容器时,将溢出部分裁切掉.ellipsis:当内联内容溢出块容器时,将溢出部分替换为(...). ...

  10. php常用的一些代码

    1.获取用户真实ip function getIP() { if (getenv("HTTP_X_FORWARDED_FOR")) { // 这个提到最前面,作为优先级,nginx ...