代码改变世界

字符串

2011-11-29 18:43  夜幕降临  阅读(296)  评论(0编辑  收藏  举报

Python 3 支持把值格式化(format)成字符串可以有非常复杂的表达式,最基本的用法是使用单个占位符(placeholder)将一个值插入字符串。

"{0}'s password is {1}".format(username, password)
字符串也是对象,对象则有其方法。其次,整个表达式返回一个字符串。最后,{0}和{1} 叫做替换字段(replacementfield),他们会被传递给 format()方法的参数替换

复合字段名
并且{0}和{1}可以调用该参数的属性、方法等。。。。。格式说明符可以通过利用(类似)Python 的语法访问到对象的元素或属性

使用列表作为参数,并且通过下标索引来访问其元素(跟上
一例类似)
使用字典作为参数,并且通过键来访问其值
使用模块作为参数,并且通过名字来访问其变量及函数
使用类的实例作为参数,并且通过名字来访问其方法和属性
以上方法的任意组合
'1MB = \
1000{0.modules[humansize].SUFFIXE
[1000][0]}'.format(sys)
使用替换域的时候,我们在省略了字典的键名周围的引号(比如 humansize)。在此,我们引用PEP 3101:字符串格式化高级用法,“解析键名的规则非常简单。如果名字以数字开头,则它被当作数字使用,其他情况则被认为是字符串。”

'{0:.1f} {1}'.format(size, suffix)
:.1f 是格式说明符(format specifier),效果和C中的格式说明符类似
:表示开始,.1表示保留小数点后一位,f表示定点数

key1=value1&key2=value2,我们需要将其分离然后产生一个这样形式的字典{key1: value1, key2: value2}
a_list = query.split('&')
a_list_of_lists = [v.split('=', 1) for v in a_list]
a_dict = dict(a_list_of_lists)

字符串的分片
与列表分片类似

===============================
字节
字节即字节;字符是一种抽象。一个不可变(immutable)的Unicode 编码的字符序列叫做 string。一串由 0 到 255 之间的数字组成的序列叫做 bytes 对象。
例如
by = b'abcd\x65'
每个字节可以是 ASCII 字符或者是从\x00 到\xff 编码的 16 进制数。 下标操作返回0-255的整数
bytes对象是不可变的,改变某个字节,可以组合使用字符串的切片和连接操作,或者我们也可以将bytes对象转换为
bytearray对象。

barr = bytearray(by)
可以使用下标标记给 bytearray 对象的某个字节赋值。并且,这个值必须是 0–255 之间的一个整数。

bytes与str不能随便操作,两个类型不同,python不会帮我们做隐式把bytes转str
bytes有一个decode方法可以帮助bytes到str的转换
str有一个encode方法把str转换到bytes

在py文件的开头声明代码使用的字符编码
#!/usr/bin/python3
# ‐*‐ coding: windows‐1252 ‐*‐