第4章 基本概念
仅仅打印“Hello World”就足够了吗?你应该想要做更多的事——你想要得到一些输入,然后做操作,再从中得到一些输出。在Python中,我们可以使用常量和变量来完成这些工作。
字面意义上的常量
字面意义上的常量的例子5
、1.23
、9.25e-3
这样的数,或者如同'This is a string'
、"It's a string!"
字符串。称作字面意义上的,具备字面的意义——按照字面意义使用它们的值。数2
总是代表它自己,而不会是别的什么东西——它是一个常量,因为不能改变它的值。因此,所有这些都被称为字面意义上的常量
数
在Python中有4种类型的数——整数、长整数、浮点数和复数。
2
是一个整数的例子。- 长整数不过是大一些的整数。
3.23
和52.3E-4
是浮点数的例子。E标记表示10的幂。在这里,52.3E-4
表示52.3 * 10
-4。(-5+4j)
和(2.3-4.6j)
是复数的例子
字符串
使用单引号(')
使用双引号(")
使用三引号('''或"""):多行字符串
'''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."
'''
- 转义符
假设你想要在一个字符串中包含一个单引号('),那么你该怎么指示这个字符串?例如,这个字符串是
What's your name?
。你肯定不会用'What's your name?'
来指示它,因为Python会弄不明白这个字符串从何处开始,何处结束。所以,你需要指明单引号而不是字符串的结尾。可以通过 转义符 来完成这个任务。你用\'
来指示单引号——注意这个反斜杠。现在你可以把字符串表示为'What\'s your name?'
。另一个表示这个特别的字符串的方法是
"What's your name?"
,即用双引号。类似地,要在双引号字符串中使用双引号本身的时候,也可以借助于转义符。另外,你可以用转义符\\
来指示反斜杠本身。值得注意的一件事是,在一个字符串中,行末的单独一个反斜杠表示字符串在下一行继续,而不是开始一个新的行。例如:
"This is the first sentence.\
This is the second sentence."等价于
"This is the first sentence. This is the second sentence."
- 自然字符串
如果你想要指示不需要如转义符特别处理的字符串,你需要指定一个自然字符串。自然字符串通过给字符串加上前缀
r
或R
来指定。例如r"Newlines are indicated by \n"
。 - Unicode字符串
如果你想要用你的母语如北印度语或阿拉伯语写文本,需要有支持Unicode的编辑器。你只需要在字符串前加上前缀
u
或U
。例如,u"This is a Unicode string."
。记住,在你处理文本文件的时候使用Unicode字符串,特别是文件含有用,非英语的语言写的文本。
- 字符串是不可变的
这意味着一旦你创造了一个字符串,你就不能再改变它了。
- 按字面意义级连字符串
如果你把两个字符串按字面意义相邻放着,他们会被Python自动级连。例如,
'What\'s' 'your name?'
会被自动转为"What's your name?"
。
给C/C++程序员的注释
在Python中没有专门的char
数据类型。确实没有需要有这个类型,我相信你不会为此而烦恼。给Perl/PHP程序员的注释
记住,单引号和双引号字符串是完全相同的——它们没有在任何方面有不同。给正则表达式用户的注释
一定要用自然字符串处理正则表达式。否则会需要使用很多的反斜杠。例如,后向引用符可以写成'\\1'
或r'\1'
。