#字符串 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. BZOJ4571

    BZOJ4571 Description Transmission Gate 给定n个数, m次询问, 每次询问[l,r]范围内的数加上x后异或b的最大值, x, b给出. \[n,m <= 2 ...

  2. [USACO 2012 Jan Silver] Delivery Route【拆点】

    传送门:http://www.usaco.org/index.php?page=viewproblem2&cpid=106 这道题还真是完全没思路,真的不知道怎么做,但是看了题解后恍然大悟. ...

  3. linux的SHELL编程

    管道 | 特殊的重定向 前一个命令的输出作为后一个命令的输入; 管道连接的命令数没有限制; who|wc−l统计用户数ps |sort|more 按序显示当前进程名 字符:具有特定作用的特殊字符 ,& ...

  4. 构造 Codeforces Round #310 (Div. 2) B. Case of Fake Numbers

    题目传送门 /* 题意:n个数字转盘,刚开始每个转盘指向一个数字(0~n-1,逆时针排序),然后每一次转动,奇数的+1,偶数的-1,问多少次使第i个数字转盘指向i-1 构造:先求出使第1个指向0要多少 ...

  5. 题解报告:hdu 2544 最短路

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2544 Problem Description 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t ...

  6. 转 PHP in_array() 函数

    实例 在数组中搜索值 "Glenn" ,并输出一些文本: <?php $people = array("Bill", "Steve", ...

  7. 441 Arranging Coins 排列硬币

    你总共有 n 枚硬币,你需要将它们摆成一个阶梯形状,第 k 行就必须正好有 k 枚硬币.给定一个数字 n,找出可形成完整阶梯行的总行数.n 是一个非负整数,并且在32位有符号整型的范围内.示例 1:n ...

  8. python itertools模块实现排列组合

    转自:https://blog.csdn.net/specter11235/article/details/71189486 一.笛卡尔积:itertools.product(*iterables[, ...

  9. struts2 <allowed-methods > 标签配置

    1.在struts2   2.5版本中添加了对方法访问的权限,如果没有被添加到<allow-method> 方法的标签,将会报一下错误 5:05:18.078 [http-apr-8020 ...

  10. VS2010 好用的javascript扩展工具

    工具1) JScript Editor Extensions 折叠代码 下载地址: JScript Editor Extensions 工具2) Javascript parser 以树形方式查的代码 ...