python 字符串

 

 

http://woodpecker.org.cn/diveintopython/native_data_types/formatting_strings.html

http://www.skymind.com/~ocrow/python_string/

http://www.pythonclub.org/

 

Python 支持格式化字符串的输出 。尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。

注意
Python 中,字符串格式化使用与 C sprintf 函数一样的语法。

例 3.21. 字符串的格式化

>>> 



k = "uid"








>>> 



v = "sa"








>>> 



"%s=%s"



 % (k, v)



 



1'uid=sa'



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

注意 (k, v) 是一个 tuple。我说过它们对某些东西有用。

您可能一直在想,做了这么多工作只不过是为了做简单的字符串连接。您想的不错,只不过字符串格式化不只是连接。它甚至不仅仅是格式化。它也是强制类型转换。

例 3.22. 字符串格式化与字符串连接的比较

>>> 



uid = "sa"








>>> 



pwd = "secret"








>>> 



print



 pwd + " is not a good password for "



 + uid



      



1secret is not a good password for sa




>>> 



print



 "%s is not a good password for %s"



 % (pwd, uid)



 



2secret is not a good password for sa




>>> 



userCount = 6




>>> 



print



 "Users connected: %d"



 % (userCount, )



           



3



4Users connected: 6




>>> 



print



 "Users connected: "



 + userCount



                 



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 即可处理整数。
试图将一个字符串同一个非字符串连接会引发一个异常。与字符串格式化不同,字符串连接只能在被连接的每一个都是字符串时起作用。

如同 printfC 中的作用,Python 中的字符串格式化是一把瑞士军刀。它有丰富的选项,不同的格式化格式符和可选的修正符可用于不同的数据类型。

例 3.23. 数值的格式化

>>> 



print



 "Today's stock price: %f"



 % 50.4625



   



150.462500




>>> 



print



 "Today's stock price: %.2f"



 % 50.4625



 



250.46




>>> 



print



 "Change since yesterday: %+.2f"



 % 1.5



 



3+1.50




1 %f 格式符选项对应一个十进制浮点数,不指定精度时打印 6 位小数。
2 使用包含“.2”精度修正符的 %f 格式符选项将只打印 2 位小数。
3 您甚至可以混合使用各种修正符。添加 + 修正符用于在数值之前显示一个正号或负号。注意“.2”精度修正符仍旧在它原来的位置,用于只打印 2 位小数。

你可能感兴趣的:(python)