首页 > 深入Python > 开始了解Python > 格式化字符串 | << >> |
diveintopython.org |
|
Python for experienced programmers |
odbchelper.py 所有实际的工作是用一行代码完成的,下面就是。
return ";".join(["%s=%s" % (k, params[k]) for k in params.keys()])
不要恐慌。忽略别的东西,集中在中间部分,它是字符串格式化表达式。(如果你是一个C高手,也许可以忽略这部分。)
"%s=%s" % (k, params[k])
Python支持将值的格式化输出到字符串中,象C语言中的 sprintf 函数。最基本的用法是简单地在 %s 占位符的地方插入一个值。
>>> params = {"uid":"sa", "pwd":"secret"} >>> k = "uid" >>> "%s=%s" % (k, params[k]) 'uid=sa' >>> k = "pwd" >>> "%s=%s" % (k, params[k]) 'pwd=secret'
注意(k,params[k])是一个序列。我说过它们对某些东西有用。
你可能一直在想做了这么多工作只是为了做简单的字符串连接,你想的不错;只不过字符串格式化不只是连接。它甚至不仅仅是格式化。它也是强制类型转换。
>>> uid = "sa" >>> pwd = "secret" >>> print pwd + " is not a good password for " + uid secret is not a good password for sa >>> print "%s is not a good password for %s" % (pwd, uid) secret is not a good password for sa >>> userCount = 6 >>> print "Users connected: %d" % (userCount, ) Users connected: 6 >>> print "Users connected: " + userCount Traceback (innermost last): File "<interactive input>", line 1, in ? TypeError: cannot add type "int" to string
进一步阅读 |
|
« 定义变量 | 映射列表 » |