• 帮助
    • 博客
    • 相册
    • 网盘
    • 超市
    • Xer吧
  • 登录
  • 注册
【公告】X5dj广告过滤系统上线    【公告】个人空间首页新增“我的专辑”版块    【公告】新功能“我的专辑”上线,珍藏属于你的美好回忆    【公告】X5dj网站网络硬盘用户使用协议    【公告】X5dj新功能汇总贴:新增“密码目录”功能上线    【公告】X5dj.com相册/网盘上传工具发布    
  • Saromman无欲则安
  • http://www.x5dj.com/saromman 复制地址
  • 首页

  • 博客

  • 相册

  • 网盘

  • 人际关系网

  • 我的专辑

loading...
重读PYTHON核心编程(第2版)-------第5天 < 上一篇 下一篇 > 重读PYTHON核心编程(第2版)-------第3天
重读PYTHON核心编程(第2版)-------第4天
saromman 发表于: 2008-12-05 16:20 来源:原创  X度:0  浏览:(86)  评论:(0)
收藏 | 复制地址 | [举报此文章] |  大 中 小 |  引用 删除 修改
>>> s = 'abcdefgh'
>>> s[::-1]  # 可以视作"翻转"操作
'hgfedcba'
>>> s[::2]  # 隔一个取一个的操作
'aceg'
-----------------------------------------------------------------
表    6.2  序列类型转换工厂函数
 
函数        含义
list(iter)   把可迭代对象转换为列表
str(obj)       把 obj 对象转换成字符串(对象的字符串表示法)
unicode(obj) 把对象转换成 Unicode 字符串(使用默认编码)
basestring() 抽象工厂函数,其作用仅仅是为 str 和 unicode 函数提供父类,所以不能被
实例化,也不能被调用(详见第 6.2 节)
tuple(iter)  把一个可迭代对象转换成一个元组对象
-----------------------------------------------------------------
表 6.3    序列类型可用的内建函数
 
函数名                   功能
enumerate(iter)
a
         接受一个可迭代对象作为参数,返回一个 enumerate 对象(同
时也是一个迭代器),该对象生成由 iter 每个元素的 index 值
和 item 值组成的元组(PEP 279)
len(seq)                 返回 seq 的长度
max(iter,key=None) or 
max(arg0,arg1...,key=None)
b
 返回iter或(arg0,arg1,...)中的最大值, 如果指定了key,
这个key必须是一个可以传给sort()方法的,用于比较的回
调函数.
min(iter, key=None) or 
min(arg0, arg1.... key=None)
b
返回 iter 里面的最小值;或者返回(arg0,arg2,...)里面的最小值;如果指定了 key,这个 key 必须是一个可以传给
sort()方法的,用于比较的回调函数.
 
reversed(seq)
c
      接受一个序列作为参数,返回一个以逆序访问的迭代器(PEP 322)
sorted(iter, 
func=None, 
key=None, 
reverse=False)c        
接受一个可迭代对象作为参数,返回一个有序的列表;可选参数
func,key 和 reverse 的含义跟 list.sort()内建函数的参数含义一
样.
sum(seq, init=0)
a
  返回 seq 和可选参数 init 的总和,其效果等同于
reduce(operator.add,seq,init)
zip([it0, it1,... itN])
d
   返回一个列表,其第一个元素是 it0,it1,...这些元素的第
一个元素组成的一个元组,第二个...,类推.
================================================================
string模块
>>> string.digits
'0123456789'
>>> string.ascii_uppercase
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>> string.ascii_lowercase
'abcdefghijklmnopqrstuvwxyz'
>>> string.uppercase
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>> string.lowercase
'abcdefghijklmnopqrstuvwxyz'
>>> s = ' '.join(('Spanish', 'Inquisition', 'Made Easy')) #这样比+更有效率
>>> s
'Spanish Inquisition Made Easy'
===============================================================================
表 6.4 字符串格式化符号
 
格式化字符        转换方式
%c              转换成字符(ASCII 码值,或者长度为一的字符串)
%r
a
              优先用 repr()函数进行字符串转换
%s              优先用 str()函数进行字符串转换
%d / %i           转成有符号十进制数
%u
b
               转成无符号十进制数
%o
b
              转成无符号八进制数
%xb
/%X
b
   (Unsigned)转成无符号十六进制数(x/X代表转换后的十六进制字符的大
小写)
%e/%E          转成科学计数法(e/E 控制输出 e/E)
%f/%F           转成浮点数(小数部分自然截断)
%g/%G           %e 和%f/%E 和%F 的简写
%%              输出%
-------------------------------------------------------------------------
表 6.5 格式化操作符辅助指令
 
符号                作用
*             定义宽度或者小数点精度
-             用做左对齐
+               在正数前面显示加号( + )
<sp>          在正数前面显示空格
#  在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于
用的是'x'还是'X')
0              显示的数字前面填充‘0’而不是默认的空格
%             '%%'输出一个单一的'%'
(var)       映射变量(字典参数)
m.n           m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)
 
以下是一些使用格式字符串的例子:
十六进制输出:
>>> "%x" % 108
'6c'
>>>
>>> "%X" % 108
'6C'
>>>
>>> "%#X" % 108
'0X6C'
>>>
>>> "%#x" % 108
'0x6c'
浮点数和科学记数法形式输出:
>>>
>>> '%f' % 1234.567890
'1234.567890'
>>>
>>> '%.2f' % 1234.567890
'1234.57'
>>>
>>> '%E' % 1234.567890
'1.234568E+03'
>>>
>>> '%e' % 1234.567890
'1.234568e+03'
>>>
>>> '%g' % 1234.567890
'1234.57'
>>>
>>> '%G' % 1234.567890
'1234.57'
>>>
>>> "%e" % (1111111111111111111111L)
'1.111111e+21'
 
整数和字符串输出:
>>> "%+d" % 4
'+4'
>>>
>>> "%+d" % -4
'-4'
>>>
>>> "we are at %d%%" % 100
'we are at 100%'
>>>
>>> 'Your host is: %s' % 'earth'
'Your host is: earth'
>>> Edit By Vheavens 
Edit By Vheavens                               
>>> 'Host: %s\tPort: %d' % ('mars', 80)
'Host: mars Port: 80'
>>>
>>> num = 123
>>> 'dec: %d/oct: %#o/hex: %#X' % (num, num, num)
'dec: 123/oct: 0173/hex: 0X7B'
>>>
>>> "MM/DD/YY = %02d/%02d/%d" % (2, 15, 67)
'MM/DD/YY = 02/15/67'
>>>
>>> w, p = 'Web', 'page'
>>> 'http://xxx.yyy.zzz/%s/%s.html' % (w, p)
'http://xxx.yyy.zzz/Web/page.html'
 
上面的例子都是使用的元组类型的参数作转换.下面我们将把字典类型的参数提供给格式
化操作符.
 
>>> 'There are %(howmany)d %(lang)s Quotation Symbols' % \
... {'lang': 'Python', 'howmany': 3}
'There are 3 Python Quotation Symbols'
=====================================================================
6.4.2  字符串模板: 更简单的替代品  
 
字符串格式化操作符是 Python 里面处理这类问题的主要手段,而且以后也是如此。然而它
也不是完美的,其中的一个缺点是它不是那么直观,尤其对刚从 C/C++转过来的 Python 新手来
说更是如此,即使是现在使用字典形式转换的程序员也会偶尔出现遗漏转换类型符号的错误,
比如说,用了%(lang)而不是正确的%(lang)s.为了保证字符串被正确的转换,程序员必须明确
的记住转换类型参数,比如到底是要转成字符串,整数还是其他什么类型.
 
新式的字符串模板的优势是不用去记住所有的相关细节的,而是像现在 shell 风格的脚本
语言里面那样使用美元符号($).
 
由于新式的字符串 Template 对象的引进使得 string 模块又重新活了过来,Template 对象
有两个方法,substitute()和safe_substitute().前者更为严谨,在key缺少的情况下它会报一
个 KeyError 的异常出来,而后者在缺少 key 时,直接原封不动的把字符串显示出来.
 
>>> from string import Template
>>> s = Template('There are ${howmany} ${lang} Quotation Symbols')
>>>
>>> print s.substitute(lang='Python', howmany=3) There are 3 Python Quotation
Symbols
>>>
>>> print s.substitute(lang='Python') Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "/usr/local/lib/python2.4/string.py", line 172, in substitute
return self.pattern.sub(convert, self.template)
File  "/usr/local/lib/python2.4/string.py",  line  162,  in  convert  val  =
mapping[named]
KeyError: 'howmany'
>>>
>>> print s.safe_substitute(lang='Python') There are ${howmany} Python Quotation
Symbols
========================================================================
 
6.4.3  原始字符串操作符( r/R )
 
关于原始字符串的目的,在 Python1.5 里面已经有说明,是为了对付那些在字符串中出现
的特殊字符(下面的小节会介绍这些特殊字符)。在原始字符串里,所有的字符都是直接按照字
面的意思来使用,没有转义特殊或不能打印的字符。
------------------------------------------------------------------------------
 
系统分类:软件·电脑
标签:软件   电脑   
推送: 无分类 归类:Python

一事无成,迷惘的生活,生活不迷茫还能怎么清醒?
 
重读PYTHON核心编程(第2版)-------第5天 < 上一篇 下一篇 > 重读PYTHON核心编程(第2版)-------第3天
用户回复
首页 上一页 1 下一页 尾页 共 1 页
评分与快速回复

博主推荐
相关文章
  • ·2008.11.29更新 Camfrog Video Chat 5.2.159单文件特别版
  • ·2008.11.29更新 Camfrog Video Chat 5.2.159单文件特别版
  • ·【影音】韩国 KMplayer V2.9.4.1435 绿色旗舰集成版
  • ·【影音】韩国 KMplayer V2.9.4.1435 绿色旗舰集成版
  • ·最新Camfrog Video Chat5.2.162中文单文件特别版
  • ·最新Camfrog Video Chat5.2.162中文单文件特别版
  • ·Camfrog Video Chat5.1.129中文单文件迎新特别版by dfhwqc
  • ·Camfrog Video Chat5.1.129中文单文件迎新特别版by dfhwqc
  • ·最新Camfrog 5.2.167多国语言绿色特别版
  • ·最新Camfrog 5.2.167多国语言绿色特别版
  • ·GGhost硬盘安装器2009
  • ·GGhost硬盘安装器2009
  • ·暴风转码2009 Beta1
  • ·暴风转码2009 Beta1
  • ·Linux sh脚本异常:bad interpreter: No such file or directory
  • ·Linux sh脚本异常:bad interpreter: No such file or directory
  • ·Adobe系列软件修正版
  • ·Adobe系列软件修正版
  • ·Corel Painter X SP1 10.1.053
  • ·Corel Painter X SP1 10.1.053
博友热推
  • 一窝蜂现象绝不仅局限于文化产业
  • 我可以选择放弃,但绝不放弃选择
  • 失去了吃醋的位置,所以我要离开
  • 不堪人生背后是恋人们对她的绝情
  • 拼命于执着,别人又怎能救脱你呢
  • 一起走过青春,却最终走不进婚姻
  • 2009年,一个老百姓眼里的不折腾
  • 我不需要在你眼睛里寻找我的存在
  • KFC这么有名我竟不知是卖什么的
  • 到底是男人坏些,还是女人坏些?
关于我们 | X5dj动态 | 加入我们 | 友情链接 | 官方日志 | 免责声明 | 举报不良信息
北京开创明天科技有限公司 版权所有 京ICP证040979号