你好,我是悦创。
文末有我微信,加我好友入群抢先阅读学习交流哦!
前面几节,我们一起学习了列表、元祖、字典、集合和字符串等一系列 Python 的基本数据类型。
但是,如何把这一个个基本的数据结构类型串接起来,组成一手漂亮的代码呢?
这就是我们今天所要讨论的“条件与循环”。
我习惯把“条件与循环”,叫做编程中的基本功。为什么称它为基本功呢?
因为它控制着代码的逻辑,可以说是程序的中枢系统。如果把写程序比作盖楼房,那么条件与循环就是楼房的根基,其他所有东西都是在此基础上构建而成。
毫不夸张地说,写一手简洁易读的条件与循环代码,对提高程序整体的质量至关重要。
条件语句
首先,我们一起来看一下 Python 的条件语句,用法很简单。比如,我想要表示 y=|x|这个函数,那么相应的代码便是:
# y = |x|if x < 0: y = -xelse: y = x
和其他语言不一样,我们不能在条件语句中加括号,写成下面这样的格式。
但需要注意的是,在条件语句的末尾必须加上冒号(:),这是 Python 特定的语法规范。
由于 Python 不支持 switch 语句,因此,当存在多个条件判断时,我们需要用 else if 来实现,这在 Python 中的表达是 elif。语法如下:
if condition_1: statement_1elif condition_2: statement_2...elif condition_i: statement_ielse: statement_n
整个条件语句是顺序执行的,如果遇到一个条件满足,比如 condition_i 满足时,在执行完 statement_i 后,便会退出整个 if、elif、else 条件语句,而不会继续向下执行。这个语句在工作中很常用,比如下面的这个例子。
实际工作中,我们经常用 ID 表示一个事物的属性,然后进行条件判断并且输出。比如,在 integrity 的工作中,通常用 0、1、2 分别表示一部电影的色情暴力程度。其中,0 的程度最高,是 red 级别;1 其次,是 yellow 级别;2 代表没有质量问题,属于 green。
如果给定一个 ID,要求输出某部电影的质量评级,则代码如下:
if id == 0: print('red')elif id == 1: print('yellow')else: print('green')
不过要注意,if 语句是可以单独使用的,但 elif、else 都必须和 if 成对使用。
另外,在我们进行条件判断时, 不少人喜欢省略判断的条件,比如写成下面这样:
if s: # s is a string ...if l: # l is a list ...if i: # i is an int ......
...
关于省略判断条件的常见用法,我大概总结了一下:
不过,切记,在实际写代码时,我们鼓励,除了 boolean 类型的数据,条件判断最好是显性的。比如,在判断一个整型数是否为 0 时,我们最好写出判断的条件:
if i != 0: ...
而不是只写出变量名:
if i: ...
...