Python字符串

字符串是字符的一个序列,字符串通常只是一串单词。

在你写的每一个Python程序中都要使用字符串,因此要注意以下部分。

单引号

你可以使用单引号例如’Quote me on this’指定字符串。所有的空白,例如空格和制表符都按原样保留。

双引号

在双引号中的字符串和在单引号中的字符串工作起来完全一样。例如”What’s your name?”

三重引号

您可以使用三重引号-(“””或”’)指定多行字符串。在三重引号中您可以自由使用单引号和双引号。例如:

'''This is a multi-line string. This is the first line.
This is the second line.
"What's your name?," I asked.
He said "Bond, James Bond."
'''

字符串是不可改变的

这意味着,一旦您已经创建了一个字符串,你就不能改变它。虽然这看起来似乎是一件坏事,但它真不是(坏事)。在我们后面看到的各种程序中,将会明白这不是一个限制。

C/C++程序员要注意,在Python中没有单独的“char”(字符型)数据。这里没有真正的需要它,我相信你不会错过它。

Perl/PHP程序员要注意,单引号字符串和双引号字符串是相同的——他们不以任何方式不同。

格式方法

有时,我们可能想要从其它信息构建字符串。这就是“format()”方法有用之处。

保存下面几行到文件”str_format.py”中:

age = 20
name = 'Swaroop'

print('{0} was {1} years old when he wrote this book'.format(name, age))
print('Why is {0} playing with that python?'.format(name))

输出:

$ python3 str_format.py

Swaroop was 20 years old when he wrote this book

Why is Swaroop playing with that python?

它是如何工作的?

一个字符串可以使用特定的格式,随后调用format方法,用format方法替代那些使用适当参数的格式。

观察使用第一处,我们使用“{0}”对应于变量‘name’,这是format(格式)方法的第一个参数。类似的,第二个格式是“{1}”对应的“age”,这是格式方法的第二个参数。注意,Python从0开始计数,这意味着第一位置的索引是0,第二个位置的索引是1,等等。

注意,我们可以使用字符串的连接,name+’is’+str(age)+’years old’ 实现同样的目的,但这非常讨厌、容易出错。第二,在这种情况下,通过format方法自动转换为字符串,而不是显式地转换为需要的字符串。第三,当使用的format 方法,我们可以改变消息,而无需处理使用的变量,反之亦然。

还要注意,这些数字(索引)都是可选的,所以你也可以写成:

age = 20
name = 'Swaroop'

print('{} was {} years old when he wrote this book'.format(name, age))
print('Why is {} playing with that python?'.format(name))

这将给与前面的程序相同的输出。

Python在format方法中做的是,用每个参数值替代规格的地方。这里有更详细的规格,如:

decimal (.) precision of 3 for float '0.333'
>>> '{0:.3}'.format(1/3)
fill with underscores (_) with the text centered
(^) to 11 width '___hello___'
>>> '{0:_^11}'.format('hello')
keyword-based 'Swaroop wrote A Byte of Python'
>>> '{name} wrote {book}'.format(name='Swaroop', book='A Byte of Python')
点赞