如何编写 Python 程序
从今以后,保存和运行 Python 程序的标准步骤如下:
对于 PyCharm 用户
- 打开 PyCharm。
- 以给定的文件名创建新文件。
- 输入案例中给出的代码。
- 右键并运行当前文件。
注意:每当你需要提供 命令行参数(Command Line Arguments)时,点击 Run
-> Edit Configurations
并在 Script parameters:
部分输入相应参数,并点击 OK
按钮:
对于其他编辑器用户
- 打开你选择的编辑器。
- 输入案例中给出的代码。
- 以给定的文件名将其保存成文件。
- 在解释器中通过命令
python program.py
来运行程序。
案例:使用变量与字面常量
输入并运行以下程序:
# 文件名:var.py
i = 5
print(i)
i = i + 1
print(i)
s = '''This is a multi-line string.
This is the second line.'''
print(s)
输出:
5
6
This is a multi-line string.
This is the second line.
它是如何工作的
下面是这一程序的工作原理。首先,我们使用赋值运算符(=
)将字面常量数值 5
赋值给变量 i
。这一行被称之为声明语句(Statement)因为其工作正是声明一些在这一情况下应当完成的事情:我们将变量名 i
与值 5
相连接。然后,我们通过 print
语句来打印变量 i
所声明的内容,这并不奇怪,只是将变量的值打印到屏幕上。查看Python的运算对象、运算符、表达式和语句的使用
接着,我们将 1
加到 i
变量所存储的值中,并将得出的结果重新存储进这一变量。然后我们将这一变量打印出来,并期望得到的值应为 6
。
类似地,我们将字面文本赋值给变量 s
,并将其打印出来。
针对静态编程语言程序员的提示
变量只需被赋予某一值。不需要声明或定义数据类型。
逻辑行与物理行
所谓物理行(Physical Line)是你在编写程序时 你所看到 的内容。所谓逻辑行(Logical Line)是 Python 所看到 的单个语句。Python 会假定每一 物理行 会对应一个 逻辑行。
有关逻辑行的一个例子是诸如 print('hello world')
这样一句语句——如果其本身是一行(正如你在编辑器里所看到的那样),那么它也对应着一行物理行。
Python 之中暗含这样一种期望:Python 鼓励每一行使用一句独立语句从而使得代码更加可读。
如果你希望在一行物理行中指定多行逻辑行,那么你必须通过使用分号(;
)来明确表明逻辑行或语句的结束。下面是一个例子:
i = 5
print(i)
实际上等同于
i = 5;
print(i);
同样可以看作
i = 5; print(i);
也与这一写法相同
i = 5; print(i)
然而,我强烈建议你对于每一行物理行最多只写入一行逻辑行。这个观点就是说你不应该使用分号。实际上,我从未在 Python 程序中使用、甚至是见过一个分号。
在一类情况下这一方法会颇为有用:如果你有一行非常长的代码,你可以通过使用反斜杠将其拆分成多个物理行。这被称作显式行连接(Explicit Line Joining)5:
s = 'This is a string. \
This continues the string.'
print(s)
输出:
This is a string. This continues the string.
类似地,
i = \
5
等同于
i = 5
在某些情况下,会存在一个隐含的假设,允许你不使用反斜杠。这一情况即逻辑行以括号开始,它可以是方括号或花括号,但不能是右括号。这被称作 隐式行连接(Implicit Line Joining)。你可以在后面当我们讨论python列表(List)的章节时了解这一点。
缩进
空白区在 Python 中十分重要。实际上,空白区在各行的开头非常重要。这被称作 Python缩进(Indentation)。在逻辑行的开头留下空白区(使用空格或制表符)用以确定各逻辑行的缩进级别,而后者又可用于确定语句的分组。
这意味着放置在一起的语句必须拥有相同的缩进。每一组这样的语句被称为 块(block)。我们将会在Python教程后文章节的案例中了解块这一概念是多么重要。
有一件事你需要记住:错误的缩进可能会导致错误。下面是一个例子:
i = 5
# 下面将发生错误,注意行首有一个空格
print('Value is', i)
print('I repeat, the value is', i)
当你运行这一程序时,你将得到如下错误:
File "whitespace.py", line 3
print('Value is', i)
^
IndentationError: unexpected indent
# 缩进错误:意外缩进
你会注意到第二行开头有一个空格。Python 指出的错误信息告诉我们程序的语法是无效的,意即,程序没有被正确地写入。这一信息对你的意义是 你不能任意开始一个新的语句块(当然,除非你一直在使用默认的主代码块)。你可以使用新块的情况将会在后面诸如控制流等章节加以介绍。
如何缩进
使用四个空格来缩进。这是来自 Python 语言官方的建议。好的编辑器会自动为你完成这一工作。请确保你在缩进中使用数量一致的空格,否则你的程序将不会运行,或引发不期望的行为。
针对静态编程语言程序员的提示
Python 将始终对块使用缩进,并且绝不会使用大括号。你可以通过运行
from __future__ import braces
来了解更多信息。
总结
现在我们已经了解了诸多本质性的细节,我们可以前去了解控制流语句等更多更加有趣的东西。记得一定要充分理解你在本章所阅读的内容。