string应该算比较常用的类型,特别是处理文本方面。Python 3对字符串的支持是原生的Unicode,不用像Python 2一样, u’我’。
string类型:
Python支持普通字符串,raw字符串和bytes字符串。raw的话不会转义任何字符,但是不能以单数的’\’结尾,特别适合window文件目录(实际上Python会自动处理这个问题)。bytes就是把字符串的编码存下,还有bytearray是可变的。
string操作:
由于string是不可变的,操作一般都会产生新的对象。比如 s[::-1] 会在别的内存产生逆序的字符串。Python函数 len(s) 返回的不是占用的字节数,而是字符数。如 len('我去') 的结果是2。Python有很多string对象的内置方法,不一一举例。要注意的是,Python还有个模块叫string,里面有也不错的内容。
format:
Python有三种格式化字符串的方法。%差不多跟C一样,format比较先进跟php有点像,还有就是string.Template。我只关注format,强大而简单。
1 | [[fill]align][sign][#][0][width][,][.precision][typecode] |
以上是format的基本格式,看到就傻了。但是用个例子就完全明白了。具体含义可以动手实验得出。我也讲不清。
1 | 'My {m[kind]:>10s} runs on {s.platform:<20s} test {f[1]:.3e}'.format(s=sys,m={'kind':'laptop'},f=[1,11111.2222222]) |
总之format可以以各种牛X的方式格式化字符串。
意外收获:
在Python中使用dict,tuple什么的类型有时不能直接使用,要先unpack,说白了就是去掉外面的括号。下面分别是dict和tuple的unpack。
1 2 3 4 | D = dict(name='Bob', job='dev') '{name} {job} {name}'.format(**D) #unpack x = Fraction( *(0.25).as_integer_ratio()) #unpack |
近期评论