Python教程2 - 流程控制
本文是Python教程的第2篇。我们会在第1和第2节分别介绍语句和函数,第3节介绍代码风格,第4节介绍PyCharm IDE的使用,最后1节复习我们所学的知识。这篇教程还有Jupyter Notebook版本,点击此处下载。这篇教程的内容主要来自4. 其他流程控制工具 — Python 3.7.5 文档。
语句
接下来我会介绍一些基本的概念,如果觉得很抽象难以理解,可以先学习后面的部分再回来看。即使不能理解这些概念也不会妨碍编程。
语句是构成命令式程序设计的另一个重要组成部分组成,语句之间也可以像表达式一样互相嵌套形成复杂的结构。可以包含其他语句作为子语句的称为复合语句,如我们接下来会讲的if、while和for,反之称为简单语句。
与表达式不同,语句不会产生值,语句的所有意义在于产生副作用。副作用有两种情况:
- 修改状态,比如对变量赋值:如
a = 1; - 输入输出:如
print('hello')。
在保存运行代码的情况(而非交互模式)下,一个没有副作用的语句,如1 + 1,是没有意义的,可以删除,而且这通常是一个潜在的错误。
接下来我来介绍2种我们接触过的语句:
- 表达式语句:单独一个表达式可以形成语句,称为表达式语句,如刚才提到的
1 + 1和print('hello')都是表达式语句,后者有输出的副作用,而前者毫无作用; - 赋值语句:在Python中赋值是一个语句,如
a = 1,赋值语句的副作用就是修改状态。
传统的结构化编程包含以下3种复合语句结构:
- 顺序:将多个语句挨个写出来,就是顺序结构,程序会依次执行这些语句,下面将给出示例;
- 选择:根据条件只执行一部分语句,如1.1中的
if语句; - 循环:根据条件重复执行一段语句,如1.2和1.3中的
while和for语句。
这里给出一个顺序执行求$\sqrt{2}$的例子,方法是牛顿迭代法($x_{n+1}=\frac{1}{2}(x_n + \frac{S}{x})$数列的极限为$\sqrt{S}$),迭代3次,并和直接计算的结果作比较:
a = 2
a = 0.5 * (a + 2 / a)
a = 0.5 * (a + 2 / a)
a = 0.5 * (a + 2 / a)
print('My sqrt is', a)
print('Real sqrt is', 2 ** 0.5)
好啦说了这么多(没啥用的),让我们开始学习流程控制语句吧。
if语句
if示例
先看if语句的例子:
x = int(input("Please enter an integer: "))
if x < 0:
print('Negative changed to zero')
elif x == 0:
print('Zero')
elif x == 1:
print('Single')
else:
print('More')
上面的例子中有两个新函数,这边介绍以下:
input():接受一个可选的字符串参数,打印这个字符串,然后读入一行新的字符串,返回读入的字符串(不包括换行);int():接受一个字符串,返回字符串代表的整数。
所以上面代码的第一行的含义是打印Please enter an integer:,读入一行输入,转成对应的整数,将整数存入变量...
剩余内容已隐藏