文本是最常见的数据形式,它也是Python中最常用的数据类型,可以使用引号( '
或 "
)来创建字符串。
Python的字符串操作非常灵活,可以用 +
操作符连接两个字符串,
可以从字符串中提取部分字符串,添加或删除空白字符,将字母转换成小写或大写,还可以检查字符串的格式是否正确。
甚至可以编写 Python 代码访问剪贴板,复制或粘贴文本,将枯燥的文本格式化工作自动化。
接下来看一下Python 提供的写入、打印和访问字符串的有哪些方法。
创建字符串很简单,只要为变量分配一个值即可。例如:
var1 = 'Hello World!'
var2 = "Python Osgeo"
在Python中输入字符串值相当简单的:
它们以单引号开始和结束。
但是如何才能在字符串内使用单引号呢?
输入 'That is Alice's cat.'
是不行的,
因为Python认为这个字符串在 Alice
之后就结束了,
剩下的( s cat.'
)是无效的Python代码。
好在,有几种方法来输入字符串。
字符串可以用双引号开始和结束,就像用单引号一样。 使用双引号的一个好处,就是字符串中可以使用单引号字符。 在交互式环境中输入以下代码:
spam = "That is Alice's cat."
因为字符串以双引号开始,所以Python知道单引号是字符串的一部分, 而不是表示字符串的结束。但是, 如果在字符串中既需要使用单引号又需要使用双引号, 那就要使用转义字符。
'Say hi to Bob\'s mother.'
"Say hi to Bob's mother."
Python知道,因为 Bob\'s
中的单引号有一个倒斜杠,
所以它不是表示字符串结束的单引号。
转义字符 \'
和 \"
能在字符串中加入单引号和双引号。
下表列出了可用的转义字符。
转义字符 |
打印 |
\’ |
单引号 |
\” |
双引号 |
\t |
制表符 |
\n |
换行符 |
\\ |
倒斜杠 |
在交互式环境中输入以下代码:
print("Hello there!\nHow are you?\nI'm doing fine.")
Hello there! How are you? I'm doing fine.
print(r'That is Carol\'s cat.')
That is Carol\'s cat.
print('''尊敬的李老师:
恭祝新春快乐!
学生''')
尊敬的李老师: 恭祝新春快乐! 学生
请注意, Eve's
中的单引号字符不需要转义。
在原始字符串中,转义单引号和双引号是可选的。
下面的 print()
调用将打印出同样的文本,
但没有使用多行字符串:
print('Dear Alice,\n\nEve\'s cat has been arrested for catnapping, cat burglary, and extortion.\n\nSincerely,\nBob')
Dear Alice, Eve's cat has been arrested for catnapping, cat burglary, and extortion. Sincerely, Bob
"""This is a test Python program.
Written by Al Sweigart al@inventwithpython.com
This program was designed for Python 3, not Python 2.
"""
def spam():
"""This is a multiline comment to help
explain what the spam() function does."""
print('Hello!')
' H e l l o w o r l d ! '
0 1 2 3 4 5 6 7 8 9 10 11
字符计数包含了空格和感叹号,
所以 'Hello world!'
有12个字符,
H
的下标是0, !的下标是11。
在交互式环境中输入以下代码:
spam = 'Hello world!'
spam[0]
'H'
spam[4]
'o'
spam[-1]
'!'
spam[0:5]
'Hello'
spam[:5]
'Hello'
spam[6:]
'world!'
如果指定一个下标,将得到字符串在该处的字符。
如果用一个下标和另一个下标指定一个范围,
开始下标将被包含,结束下标则不包含。因此,
如果 spam
是 'Hello world!'
,
spam[0:5]
就是'Hello'
。
通过 spam[0:5]
得到的子字符串,
将包含 spam[0]
到 spam[4]
的全部内容,
而不包括下标5处的空格。
请注意,字符串切片并没有修改原来的字符串。 可以从一个变量中获取切片,记录在另一个变量中。 在交互式环境中输入以下代码:
spam = 'Hello world!'
fizz = spam[0:5]
fizz
'Hello'
'Hello' in 'Hello World'
True
'Hello' in 'Hello'
True
'' in 'spam'
True
'HELLO' in 'Hello World'
False
'cats' not in 'cats and dogs'
False
这些表达式测试第一个字符串(精确匹配,区分大小写)是否在第二个字符串中。