上QQ阅读APP看书,第一时间看更新
2.9.1 条件判断的组合
在实际编程中,条件判断中牵涉到的条件很有可能不止一个,我们需要对这些条件进行组合,构成最终的条件判断逻辑。
这其中涉及的关键字不多,如表2-8所示。
表2-8 Python的逻辑组合关键字
用and关键字,筛选计算机专业的男生。
if sex == 'male' and major == 'cs': print('yes')
用or关键字,筛选计算机或者电子专业的学生。
if major == 'cs' or major == 'ee': print('yes')
更复杂一点的情况,筛选计算机专业的男生或者电子专业的女生。
if major == 'cs' and sex == 'male' or major == 'ee' and sex == 'female': print('yes')
这段代码可以得到我们想要的结果,但是理解起来已经不是那么直观了,需要读者对操作符的优先级比较熟悉。
就好比在数学里不同的运算符有优先级一样,在Python语言里,逻辑处理的关键字也有优先级,and的优先级比or要高。
所以,这行代码中的表达式不是从左到右逐个计算的,而是优先级更高的先计算。
但是,在实际编程中我们要尽量避免写这样的代码,因为这样的代码需要写代码的人对优先级非常熟悉,同时还要求看代码的人也对此非常熟悉,这是很难达到的理想状态。所以,在必要的时候我们可以使用括号来澄清和强调逻辑,因为括号的优先级是所有运算符中最高的。
if (major == 'cs' and sex == 'male') or (major == 'ee' and sex == 'female'): print('yes')
条件判断的语法并不复杂,难点在于如何将现实需求准确地转化为正确且可读的代码。