在Python中语句x,y=1是合法的,python条件表达式的值只有两种,它们是
if的基本格式
if语句用于判断和选择要执行的语句分支。基本格式如下:
如果条件1:
代码块(1)
elif条件2:
代码块(2)
elif条件3:
.
.
否则:
代码_块_其他
其中elif是可选的,可以有任意数量的elif,else是可选的,指示当不满足所有条件时要执行的分支。
例如:
a=4
如果一个3:
打印(“hello world”)
条件表达式的条件部分以运算结果的真与假作为if分支执行的依据。在Python中,所有的数据对象不是真就是假,所以任何数据或者表达式都可以作为if的条件。例如:
如果1:
.
如果一个b:
.
如果是“a”:
.
如果[]:
.
如果[[]]:
.
如果a和b:
.
至于如何判断真假,参见布尔值和逻辑运算。
开关/外壳的替代品
python中没有switch和case的分支选择语句,但是可以通过使用if或dict轻松实现。
例如,使用dict实现等效分支选择:
D={
苹果:8.0,
梨:3.5,
橙色:2.5,
香蕉:2.5
}
水果=香蕉
打印(D[水果])
上面提供的default的情况下是没有分支的,但是在dict中找不到key的时候可以用get()来设置默认返回的值。例如:
print(D.get(greens , no this fruit ))
您还可以通过中的成员资格测试来设置分支:
如果水果在D:
打印(D[水果])
否则:
打印(“没有这个水果”)
Dict只能进行等价比较的分支选择,if语句只能提供非等价的分支比较。
例如:
得分=77
如果得分=90:
打印(“优秀”)
elif 70=得分90:
打印(“好”)
elif 60=得分70:
打印(“通过”)
否则:
打印(“失败”)
使用if的好处是容易理解,使用dict的好处是将数据存储到数据结构中,数据结构可以非常复杂。比如用函数作为dict的值。
If/else三元表达式
所谓的三元运算,只不过python中不支持X?Y: z方式,但另一个表达式语法使用if。
for if x:XXX;像else yyy这样的双分支语句可以用一个更简洁的表达式来描述:
xxx if x else yyy
虽然看起来和原来没什么区别,但是很多情况下方便很多。例如,任务:
如果x:
a=y
否则:
a=z
等效三进制if写:
a=y如果x否则z
注意上面的=表示这一整行是赋值语句,右边的是求值对象。求值后赋给A,相当于a=(y if x else z)而不是(A=y if x else z)。
Else不能缺,否则不是三元运算。另外,if的分支代码体Y和Z必须只能是单语句,不能是多语句。即下面的代码格式不能转换成三元表达式。
如果x:
陈述1
陈述2
否则:
陈述3
陈述4
实际上,三元运算也可以通过and/or和序列bool()来实现。
例如:
a=((x和y)或z)
通常,and/or很少用于实现分支,因为它不可读,并且不总是等效于if。但是,有一种情况非常方便使用和/或:从多个值中选择一个真值。例如:
a=x或y或z或无
下面是用序列bool()实现的三元运算,思路是bool(条件)是序列的索引。
a=[y,z][bool(x)]
同样,在python中,简单易懂的方法总是首选。所以,用if。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。