|
|
|
|
移动端

2.3.1 判断(1)

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

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

技术沙龙 | 邀您于8月25日与国美/AWS/转转三位专家共同探讨小程序电商实战

2.3 判断与循环

判断和循环是程序逻辑的重要组成部分。通过判断和循环,我们可以实现很多复杂的功能。

2.3.1 判断(1)

判断语句(If-Statement)通常基于某种条件触发,当条件满足时,执行一些特定的操作。

1. if语句

Python使用关键字 if语句实现判断,最简单的用法为:

  1. if <condition>:      
  2. <statements> 

它包含这样几个部分:

zif关键字,表示这是一条判断语句;

<condition>表示判断的条件,当这个条件被满足(即条件为真)时,执行<statements>中的代码,条件不满足,<statements>中的代码不会被执行;

冒号表示判断代码块的开始;

<statements>表示条件满足时,执行的代码块。

例如,对于下面的代码:

  1. In [1]: x = 0.5 In [2]: if x > 0:  
  2.    ...:      print "Hey!"  
  3.    ...:      print "x is positive"  
  4.    ...:  
  5. Hey! 

x is positivex满足大于 0的条件,所以程序会打印出相关文字。条件不满足时,程序不会执行 if代码块中的部分:

  1. In [3]: x = -0.5   
  2. In [4]: if x > 0:  
  3.  
  4.    ...:      print "Hey!"  
  5.    ...:      print "x is positive"  
  6.    ...: 

当判断语句执行的代码块结束时,之后的代码需要回到判断语句开始时的缩进状态才能继续执行:

  1. In [5]: x = 0.5  
  2. In [6]: if x > 0:   ...:     print "x is positive"   ...: print "Continue running"   ...:  
  3. x is positive Continue running 

x<0的情况:

  1. In [7]: x = -0.5  
  2. In [8]: if x > 0:   ...:     print "x is positive"   ...: print "Continue running"  
  3. Continue running 

在这两个例子中,最后一句并不是 if语句中的内容,所以不管条件满不满足,它都会被执行。

2.  elif和 else语句

一个完整的 if结构通常如下所示:

  1. if <condition 1>:  
  2.     <statements>   
  3. elif <condition 2>:  
  4.     <statements>   
  5.  
  6. elif ...:    ... elif <condition N>:    <statements> else:    <statements> 

关键字elif是else if的缩写。其执行过程为:

条件<condition 1>满足,执行if后的代码块,跳过elif和else的部分;

条件<condition 1>不满足,跳过 if后的代码块,转到第一个 elif语句看条件<condition 2>,<condition 2>满足时执行它对应的代码块,否则转到下一个elif;

如果if和elif的条件都不满足,执行 else对应的代码块。例如:

  1. In [9]: x = -0.5  
  2. In [10]: if x > 0:  
  3.     ...: print "x is positive"  
  4.     ...: elif x == 0:  
  5.     ...: print "x is zero."  
  6.     ...: else:   
  7.     ...: print "x is negative"  
  8.     ...:   
  9.  
  10. x is negative 

对于一个if语句,elif的个数没有限制,可以没有,可以有 1个,也可以有多个。

例如,不使用 elif:

  1. In [11]: x = -0.5  
  2. In [12]: if x > 0:  
  3.     ...: print "x is positive"  
  4.     ...: else:   
  5.     ...: print "x is not positive"  
  6.     ...:   
  7.  
  8. x is not positive 

使用多个elif:

  1. In [13]: x = 88 
  2. In [14]: if x < 0: 
  3.     ...: print "x < 0"  
  4.     ...: elif x < 10: 
  5.     ...: print "0 <= x < 10"  
  6.     ...: elif x < 100: 
  7.     ...: print "10 <= x < 100"  
  8.     ...: else:   
  9.     ...: print "x > 100"  
  10.     ...:   
  11.  
  12. 10 <= x < 100 

else语句最多只有一个,也可以没有,如果出现,要放在所有的if和elif语句后面。

3.判断条件

我们可以在判断语句中可以使用布尔型变量作为判断条件。事实上,Python对于判断条件没有任何限制,除了布尔型,判断条件可以是数字、字符串,也可以是列表、元组字典等结构。

在 Python中,大部分的值都会被当作真,除了以下几种情况:

zFalse,包括所有计算结果为False的表达式;

None,包括所有计算结果为None的表达式;

整数0值,包括所有计算结果为0的表达式;

空字符串,空列表,空字典,空集合,空元组。

浮点数0.0值也会被当作False:

  1. In [15]: if 0.0:  
  2.     ...: print "hello!"   
  3.     ...: 

但是不推荐使用浮点数作为判断条件,因为浮点数存在精度的问题:

  1. In [16]: if 1.4 – 1.3 - 0.1:  
  2.     ...: print "hello!"   
  3.     ...:   
  4.  
  5. hello! 

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

51CTO读书频道二维码


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

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

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

读 书 +更多

非常网管——网络应用

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

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊