python 学习笔记二

 

变量

连续值赋值:(MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY) = range(7)

字符串的格式化
>>> k = "uid"
>>> v = "sa"
>>> "%s=%s" % (k, v)

'uid=sa'

注意 (k, v) 是一个 tuple。我说过它们对某些东西有用。
您可能一直在想,做了这么多工作只不过是为了做简单的字符串连接。您想
的不错,只不过字符串格式化不只是连接。它甚至不仅仅是格式化。它也是
强制类型转换

 

Example 3.22. 字符串格式化与字符串连接的比较
>>> uid = "sa"
>>> pwd = "secret"
>>> print pwd + " is not a good password for " + uid      (1)
secret is not a good password for sa
>>> print "%s is not a good password for %s" % (pwd, uid) (2)
secret is not a good password for sa
>>> userCount = 6
>>> print "Users connected: %d" % (userCount, )           (3) (4)
Users connected: 6
>>> print "Users connected: " + userCount                 (5)
Traceback (innermost last):
  File "<interactive input>", line 1, in ?
TypeError: cannot concatenate 'str' and 'int' objects
(1)  + 是字符串连接操作符。
(2)  在这个简单例子中,字符串格式化实现与连接一样的结果。
(3)  (userCount, ) 是一个只包含一个元素的 tuple。是的,语法有一点奇怪,但是
使用它的理由就是:显示地指出它是一个 tuple,而不是其他。实际上,
当定义一个 list、tuple 或 dictionary 时,您可以总是在最后一个元素后面
跟上一个逗号,但是当定义一个只包含一个元素的 tuple 时逗号是必须的。
如果省略逗号,Python 不会知道 (userCount) 究竟是一个只包含一个元素的
tuple 还是变量 userCount 的值。
(4)  字符串格式化通过将 %s 替换成 %d 即可处理整数。
(5)  试图将一个字符串同一个非字符串连接会引发一个异常。与字符串格式化
不同,字符串连接只能在被连接的每一个都是字符串时起作用。

posted on 2009-12-27 15:02  apan  阅读(222)  评论(0编辑  收藏  举报

导航