Python_格式化字符串

>>> k = "uid"

>>> v = "sa"

>>> "%s=%s" % (k, v) 

'uid=sa'

整个表达式的值为一个字符串。第一个 %s 被变量 k 的值替换;第二个 %s 被 v 的值替换。字符串中的所有其它字符 (在这个例子中,是等号) 按原样打印输出。注意 (k, v) 是一个 tuple。

 

 

>>> 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 concatenate 'str' and 'int' objects

 

 

注: (userCount, ) 是一个只包含一个元素的 tuple。是的,语法有一点奇怪,但是使用它的理由就是:显示地指出它是一个 tuple,而不是其他。实际上,当定义一个 list、tuple 或 dictionary 时,您可以总是在最后一个元素后面跟上一个逗号,但是当定义一个只包含一个元素的 tuple 时逗号是必须的。如果省略逗号,Python 不会知道 (userCount) 究竟是一个只包含一个元素的 tuple 还是变量 userCount 的值。

 

>>> print "Today's stock price: %f" % 50.4625

50.462500

>>> print "Today's stock price: %.2f" % 50.4625

50.46

>>> print "Change since yesterday: %+.2f" % 1.5

+1.50

 

%f 格式符选项对应一个十进制浮点数,不指定精度时打印 6 位小数。

使用包含“.2”精度修正符的 %f 格式符选项将只打印 2 位小数。

甚至可以混合使用各种修正符。添加 + 修正符用于在数值之前显示一个正号或负号。注意“.2”精度修正符仍旧在它原来的位置,用于只打印 2 位小数。

你可能感兴趣的:(python)