1

3.2Python字符串格式(一)

Posted by 撒得一地 on 2016年1月31日 in python教程

如果是初次接触Python编程,那么Python提供的所有字符串格式化功能可能用不到太多。因此,下面简单介绍一下。

字符串格式化使用字符串格式化操作符,即百分号%来实现的。注意,%也可以用作模运算(求余)操作符。

在%的左侧放置一个字符串(格式化字符串),而右侧则放置希望格式化的值。可以使用一个值,如一个字符串或者数字,也可以使用多个值的元组或者字典。一般情况下使用元组:

>>> format = "hello,%s. %s are brave!"
>>> values = ('world','You')
>>> print(format % values)
hello,world. You are brave!

注意:如果使用列表或者其他序列代替元组,那么序列就会被解释为一个值。只有元组和字典可以格式化一个以上的值。比如:

>>> format = "hello,%s. %s are brave!"
>>> values = [123]
>>> print(format % values)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: not enough arguments for format string
>>> format = "hello,%s. are brave!"
>>> print(format % values)
hello,[123]. are brave!

格式化字符串的%s部分被称为转换说明符(conversion specifier),它们标记了需要插入转换值的位置。s表示值会被格式化为字符串——如果不是字符串,则会用str将其转换为字符串。这个方法对大多数值都有效。

注意:如果要在格式化字符串里面包括百分号,那么必须使用%%,这样Python就不会将百分号误认为是转换说明符。比如:

>>> str = "abc%%s"
>>> value = (123)
>>> print(str%value)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: not all arguments converted during string formatting
>>> str
'abc%%s'
>>> str = "abc%s"
>>> value = (123)
>>> print(str%value)
abc123

如果要格式化实数(浮点数),可以使用f说明符类型,同时提供所需要的精度:一个句点再加上希望保留的小数位数。因为格式化说明符总是以表示类型的字符结束,所以精度应该放在类型字符前面:

>>> format = "pi with three decimals:%.3f"
>>> from math import pi
>>> print(format % pi)
pi with three decimals:3.142

标签:

上一篇:

下一篇:

相关推荐

1 Comment

Comments are closed. Would you like to contact the author directly?
网站地图|XML地图

Copyright © 2015-2024 技术拉近你我! All rights reserved.
闽ICP备15015576号-1 版权所有©psz.