07 | 修炼基本功:条件与循环(上)_编程

 

你好,我是悦创。

文末有我微信,加我好友入群抢先阅读学习交流哦!

 

前面几节,我们一起学习了列表、元祖、字典、集合和字符串等一系列 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    ......

 

...

关于省略判断条件的常见用法,我大概总结了一下:

 

07 | 修炼基本功:条件与循环(上)_编程_02

不过,切记,在实际写代码时,我们鼓励,除了 boolean 类型的数据,条件判断最好是显性的。比如,在判断一个整型数是否为 0 时,我们最好写出判断的条件:

 

  •  
if i != 0: ...

 

而不是只写出变量名:

  •  
if i:    ...

 

...

 

07 | 修炼基本功:条件与循环(上)_编程_03