人生苦短,我用Python 学习笔记——第四天

来源:互联网 发布:读写加密锁软件 编辑:程序博客网 时间:2024/04/30 21:25

1 格式化输出
格式化字符 转换方式
%c 转换成字符(ASCII 码值,或者长度为一的字符串)
%ra 优先用repr()函数进行字符串转换
%s 优先用str()函数进行字符串转换
%d / %i 转成有符号十进制数
%ub 转成无符号十进制数
%ob 转成无符号八进制数
%xb/%Xb (Unsigned)转成无符号十六进制数(x/X 代表转换后的十六进制字符的大
小写)
%e/%E 转成科学计数法(e/E 控制输出e/E)
%f/%F 转成浮点数(小数部分自然截断)
%g/%G %e 和%f/%E 和%F 的简写
%% 输出%
格式化操作符辅助指令
符号 作用
* 定义宽度或者小数点精度
- 用做左对齐
+ 在正数前面显示加号( + )
<sp> 在正数前面显示空格
# 在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于
用的是'x'还是'X')
0 显示的数字前面填充‘0’而不是默认的空格
% '%%'输出一个单一的'%'
(var) 映射变量(字典参数)
m.n m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)
例如
>>> "%x" % 108
'6c'
>>>
>>> "%X" % 108
'6C'
>>>
>>> "%#X" % 108
'0X6C'

原始字符串操作符( r/R )
这个'r'可以是小写也可以是大写,唯一的要求是必须紧靠在第一个引号前.
在三个例子的第一个例子里面,我们需要一个反斜杠加一个'n'来而不是一个换行符.:
>>> '\n'
'\n'
>>> print '\n'
>>> r'\n'
'\\n'
>>> print r'\n'
\n

Table 6.7 反斜杠开头的转义字符
/X 八进制 十进制 十六进制 字符 说明
\0 000 0 0x00 NUL 空字符Nul
\a 007 7 0x07 BEL 响铃字符
\b 010 8 0x08 BS 退格
\t 011 9 0x09 HT 横向制表符
\n 012 10 0x0A LF 换行
\v 013 11 0x0B VT 纵向制表符
\f 014 12 0x0C FF 换页
\r 015 13 0x0D CR 回车
\e 033 27 0x1B ESC 转义
\" 042 34 0x22 " 双引号
\' 047 39 0x27 ' 单引号
\\ 134 92 0x5C \ 反斜杠
三引号
虽然你可以用单引号或者双引号来定义字符串,但是如果你需要包含诸如换行符这样的特
殊字符时,单引号或者双引号就不是那么方便了。Python 的三引号就是为了解决这个问题的,
它允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符
>>> a=''' a\nbc'''
>>> print a
 a
bc
>>>
……
字符串不变性>>> 'abc' + 'def'
'abcdef'
给变量赋值是没什么不同:
>>> s = 'abc'
>>> s = s + 'def'
>>> s
'abcdef'
上面的例子里,看起来是我们先把"abc"赋给了s,然后在s 的末尾添加了"def".这样看起
来字符串似乎是可变的,其实事实是在"s+'def""这个操作进行的时候,新建了一个新字符串,
然后这个新的对象被赋给了s,原来的字符串'abc'被析构掉了


Unicode
与字符串类型有关的模块
模块 描述
string 字符串操作相关函数和工具,比如Template 类.
re 正则表达式:强大的字符串模式匹配模块
struct 字符串和二进制之间的转换
c/StringIO 字符串缓冲对象,操作方法类似于file 对象.
base64 Base 16,32,64 数据编解码
codecs 解码器注册和基类
crypt 进行单方面加密
diffliba 找出序列间的不同
hashlibb 多种不同安全哈希算法和信息摘要算法的API
hmac HMAC 信息鉴权算法的Python 实现
md5d RSA 的MD5 信息摘要鉴权
rotor 提供多平台的加解密服务
shad NIAT 的安全哈希算法SHA
stringprepe 提供用于IP 协议的Unicode 字符串
textwrape 文本打包和填充
unicodedata Unicode 数据库

字符串关键点总结

在Python 中最常用两个引号是单引号(')和双引号(")。字符串
的实际内容是这些单引号(')或者双引号(")之间的字符,不包括引号本身.
可以用两种引号来创建字符串是很有益处的,因为是当你的字符串中包含单引号时,如果
用单引号创建字符串,那么字符串中的双引号就不需要转义。反之亦然
字符串格式化操作符 ( % )提供类似于printf()那样的功能.
字符串格式化操作符(见6.4.1 节)提供了一种基于多种输入类型的创建自定义字符串的灵
活方式.它也提供了类似于C/C++世界里的格式化操作的接口.
三引号
在6.7.2 节里面,我们介绍了三引号,在三引号字符串中可以包含诸如换行回车或者tab 键
这样的特殊字符.三引号字符串是用两边各三个单引号(''')或者两边各三个双引号(""")来定
义的.
原始字符串对每个特殊字符串都使用它的原意
第6.4.2 节中,我们讲述了原始字符串,并且讨论了它们并不通过反斜线转义特殊字符的特
性.这个特性使得原始字符串非常适用于那些需要字符串原意的场合,比如在定义一个正则表达
式时.
Python 字符串不是通过NUL 或者'\0'来结束的
C 编程的一个主要问题是你访问了一个字符串后面的本不属于你的空间,这种情况发生在你
没有在字符串末尾添加终结符,NUL 或者'\0'(ASCII 值为0)的时候.Python 不仅为你自动管理内
存,而且也把C 的这个负担或者说是小麻烦去掉了.Python 中的字符串不是以NUL 结束的,所以
你不需要为是否已经添加终结符担心.字符串中只包含你所定义的东西,没有别的.

0 0
原创粉丝点击