|
|
|
|
移动端

2.3.1 判断(2)

《自学Python:编程基础、科学计算及数据分析》第2章Python 基础,在本章中,我们将学习Python 语言的基本使用,掌握Python 的基本使用方法,为后续的学习打下基础。本节为大家介绍判断。

作者:李金来源:机械工业出版社|2018-05-03 17:57

人工智能+区块链的发展趋势及应用调研报告


2.3.1 判断(2)

虽然计算的结果是0.0,但是 if条件却执行了。

复杂的判断条件可以使用关键字and、or和 not进行组合得到,它们分别对应且、或、非的操作:

  1. In [17]: x = 10   
  2. In [18]: y = -5   
  3. In [19]: x > 0 and y < 0   
  4. Out[19]: True   
  5. In [20]: not x > 0   
  6. Out[20]: False   
  7. In [21]: x < 0 or y < 0   
  8. Out[21]: True 

组合的对象可以不是布尔型:

  1. In [22]: 10 and 2333   
  2. Out[22]: 2333   
  3. In [23]: not [1, 2, 3]   
  4. Out[23]: False   
  5. In [24]: (1, 2) or 0   
  6. Out[24]: (1, 2) 

对于关键字and:

如果两个值都为真,返回第二个值;

如果至少有一个值为假,返回第一个为假的值。

and的返回值是传入的表达式值,而不是 True或者 False,如:

  1. In [25]: [] and 2333   
  2. Out[25]: [] 

与and相反,对于关键字 or来说:

如果两个值都为假,返回第二个值;

如果至少有一个值为真,返回第一个为真的值。

如:

  1. In [26]: [] or 0   
  2. Out[26]: 0  

4.判断的简单实例

我们用判断语句来判断一个年份是不是闰年。

闰年(Leap Year)的定义是这样的:普通年能被 4整除且不能被 100整除的为闰年,如 2016是闰年,2017不是闰年;逢百的最纪年能被 400整除的为闰年,如 1900年不是闰年,2000年是闰年。

按照上面的逻辑,若年份变量为year,则第一个判断逻辑为:

  1. year % 4 == 0 and year % 100 != 0 

第二个判断逻辑为:

  1. year % 400 == 0 

为此,我们的程序可以写成:

  1. if year % 4 == 0 and year % 100 != 0:  
  2.     print "This is a leap year!"   
  3. elif year % 400 == 0:  
  4.     print "This is a leap year!"   
  5. else:  
  6.     print "This is not a leap year." 

或者使用关键字 or将两个条件合并:

  1. if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:  
  2.     print "This is a leap year!"   
  3. else:  
  4.     print "This is not a leap year." 

关键字 and、or、not是有运算先后关系的:先算 not,再算 and,最后算 or。为了避免混淆,我们将第一个 and的内容用括号放在了一起(即使这样是多余的),方便看清程序的逻辑。

除了正常的判断语句,关键词if还可以写到一行中:

  1. In [27]: a = 5   
  2. In [28]: b = "big" if a < 10 else "small"   
  3. In [29]: b   
  4. Out[29]: "small" 

if构成了这样的一个表达式:

  1. <value1> if <condition> else <value2> 

当条件<condition>满足时,表达式值为<value1>,否则为<value2>。

喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

非常网管——网络应用

在网络应用越来越复杂的今天,传统的网络应用已经不能满足企业和用户的需要,这就对网络管理员、信息管理部门提出了更高的要求。本书介绍了...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊