由于 if-else 语句中的
用嵌套 if-else 语句虽然能实现三路分支,但并非最好的方法。首先,这种用两个二路分 支来间接实现一个三路分支的做法使得三个分支不在一个层次上,不太符合原问题中的三个 并列分支的题意。其次,这种做法不适合需要更多分支的问题,例如实现五路分支时就必须 采用四层嵌套的 if-else 结构,这会使程序看上去非常难读,尤其是 Python 所要求的下层结构向右缩进的特点会使这条嵌套语句在水平方向占据过宽的空间,导致代码更加难读。
Python 中有一个更好的做法来写多路分支的条件判断,即 if-elif-else 语句。这条语句在 形式上其实是将嵌套 if-else 语句中的 else 与后续的 if 合并成了一个 elif 子句,形如:
不难看出,if-elif-else 语句既能像嵌套 if-else 结构一样实现多路分支,又具有各分支并列 的整齐划一的代码形式,这就解决了嵌套 if-else 语句的两个不足之处。下面我们利用 if-elif-else 结构来进一步改进温度转换程序:
【程序 3.4】eg3_4.py