我们在生活中处理问题的时候,总是需要判断这件事应不应该做,计算机在处理问题的时候也需要做判断,根据判断结果控制程序流程。
比如,有一个分段函数
分段函数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中,有三种判断方法:
- 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.')
,所以结果就只有这一句。
- 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'。
- 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中的选择结构。
网友评论