十一、 python中的选择结构

我们在生活中处理问题的时候,总是需要判断这件事应不应该做,计算机在处理问题的时候也需要做判断,根据判断结果控制程序流程。

比如,有一个分段函数

分段函数f(x)

当x<-1时,f(x) = 2-x
当1<=x<=1/2时,f(x) = -3x
当x>1/2时,f(x) = x-2

我们要实现这个函数的时候,就需要使用条件判断。举个例子:

x = 1  #先定义x
if x<-1:  #如果x<-1
    y = 2-x  #则y = 2-x
elif 1<=x<=1/2:  #如果1<=x<=1/2
    y = -3*x  #则y = -3x
else:  #剩余的情况
    y = x-2  #y = x-2
print(y)

在python中,有三种判断方法:

  1. if语句
    当只需要判断一种情况时,我们使用if语句
if (条件表达式1):
       执行语句1
       执行语句2
       ……

当使用if语句的时候,程序先判断“条件表达式1”,如果表达式为真,则执行下面的“执行语句1”、“执行语句2”和后续的语句。

需要注意的是:执行语句前要加四个空格,这是python中的缩进,具有共同缩进的语句,为同一个整体。也就是说,上面例子中的“执行语句1”和“执行语句2”是同一个整体,如果“条件表达式1”为真,那么将按顺序依次执行“执行语句1”,“执行语句2”和……

举个例子:

age = 30
if age>=18:
    print('He is an adult.')
print('finished.')

我们运行这个例子,得到的是:

He is an adult.
finished.

因为age的值是30,大于等于18,条件表达式age>=18为True,因此执行下面的语句print('He is an adult.')。执行后选择结构就彻底执行完毕了,接着继续执行程序,print('finished.'),所以我们看到的结果有两句话。如果age = 6,那么结果就是:

finished.

条件表达式age>=18为False,不执行下属的执行语句,选择结构执行完毕,继续执行程序,print('finished.'),所以结果就只有这一句。

  1. if else语句
    有时候我们需要判断并执行两种情况,如果满足A,就执行什么东西,不满足,就执行另一种东西。
if (条件表达式1):
       执行语句1
else:
       执行语句2

如果“条件表达式1”为真,则执行“执行语句1”,如果“条件表达式1”为假,则执行“执行语句2”。举个例子:

age = 30
if age>=18:
       print('adult')
else:
       print('minor')

如果age>=18,则打印'adult',反之,打印'minor'。

  1. if elif else语句
    有时候,我们需要判断的情况有很多种,这时候就需要if elif else语句了。
if (条件表达式1):
       执行语句1
elif (条件表达式2):
       执行语句2
else:
       执行语句3

判断“条件表达式1”,为True,执行“执行语句1”,为False,判断“条件表达式2”,为True,执行“执行语句2”,为False,执行“执行语句3”。
在if elif else语句中,elif的个数是不限的,可以加很多个elif,但是if和else都只能有一个。例子就是开头的那个分段函数的例子。

需要注意的是,else一定要与前面的if对应,也就是具有相同的缩进,以表示他们两个是一组的。

有些时候,可以写成

if x:
    执行语句1

当x是非零数值、非空字符串、非空列表、元组、字典、集合时,执行下面的"执行语句1"。

if x:
    print(x,'True')
else:
    print(x,'False')

以下是当x分别为0, -1, 1, '', 'a', [], (), [1], 1, None, True, False时的打印结果。

0 False
-1 True
1 True
 False
a True
[] False
() False
[1] True
1 True
None False
True True
False False

规律就是
· 数字里面,除了0都是True,0是False
· 非空的字符串,列表,元组等,都是True,空是False
· None是False
以上就是python中的选择结构。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容