起立马扎罗

导航

Learning Python 10.16

声明String的方式包括:单引号、双引号、三重引号(可直接包含换行)、r+引号、转义序列,其中合法的转义序列如下图

当len(str)时,计算的是真实长度,如声明时使用了转义序列,将会计算转义后的长度(如\t代表tab,则长度为1)
Python的设计原则之一是refuses the temptation to guess。类似"1"+2的运算将会报错,必须使用明文的转换如int(s)和str(n)或ord(s)和chr(n)
L=list(s)和''.join(L)可以配合使用作为改变字符串的一种方法。

str中的方法已经在http://www.cnblogs.com/kilimanjaroup/archive/2012/10/10/2718712.html以代码方式介绍了。

介绍了the original string module(gone in 3.0),忽略

字符串格式化:
字符串格式化分为格式化表达式(formatting expressions)格式化方法调用(formatting method calls)。其中method calls是2.6开始才加入的,也可看作Python的一个特点,功能上大多与expressions重叠。

formatting expression:%[(name)][flags][width][.precision]typecode
其中flags为+(显示正负号)、-(左对齐)、0(右对齐左侧补0):
其中typecode为:

name是用于dictionary-based String formatting expressions,如

 1 print("%(name)s %(age)d" % {"name": "Ronaldo", "age": 17})
 2 #Ronaldo 17
 3 greet = "hello %(name)s!"
 4 value = {'name':"Ronaldo"}
 5 print(greet % value)
 6 #hello Ronaldo!
 7 name = "Messi"
 8 age = 18
 9 print(vars())    #built-in function
10 #{'name': 'Messi', ..., 'age': 18, ...}
11 print("%(name)s %(age)d" % vars())
12 #Messi 18

 

method calls是将格式化的结果返回为一个新的字符串,而不是修改原字符串(字符串是不可变的)。
同时最新版本中,codetype前加","将会使大数字按三位一组以,分隔,从而更易读

1 template = '{motto}, {0} and {food}'
2 print(template.format('ham', motto='spam', food='eggs'))
3 #spam, ham and eggs
4 import sys
5 print('My {1[spam]} runs {0.platform}'.format(sys, {'spam': 'laptop'}))
6 #My laptop runs win32
7 print('%-10s = %10s' % ('spam', 123.4567))
8 print('{0:,d}'.format(999999999999))
9 #999,999,999,999

 

this would not be quite finished until this Friday.

posted on 2012-10-18 11:11  起立马扎罗  阅读(292)  评论(0)    收藏  举报