目录
选择结构
1.1 if-else条件语句
1.2 if-elif-else判断语句
1.3 if语句的嵌套
1.4 switch语句的替代方案
在实际应用中,有时需要通过某个判断来决定任务是否执行或者执行的方式。对于这样的情况,仅有顺序结构控制是不够的,需要选择结构。
Python中的if语句实现了选择结构控制,还可以使用if-elif结构来实现多分支控制。与其他程序设计语言相比,Python中没有switch语句,但是可以通过其他方式获得类似switch语句功能的效果。
Python中的选择结构使用if和else关键字来构造,语法如下:
if 条件:
条件为真时要执行的语句块
else:
条件为假时要执行的语句块
选择结构根据条件的判断结果来决定执行哪个语句块。在任何一次运行中,两个分支的语句块只执行其中的一个。不可能两个语句块同时执行。选择结构执行完毕,继续执行其后的语句。
注意:
在实际中经常存在两张以上的选择,比如学生成绩的等级转换,一个学生的成绩可以转换为5个不同的等级。Python中提供了if-else语句的扩展。
if-elif-else语法格式如下:
if 条件1:
语句块1
elif 条件2:
语句块2
......
elif 条件n:
语句块n
else:
语句块n+1
执行过程说明如下:
在if-else语句的缩进块中可以包含其他if-else语句,称为嵌套if-else语句。在嵌套的选择结构中,根据对齐的位置来进行else与if的配对。简单的形式如下:
if 条件1:
if 条件2:
语句块1
else:
语句块2
else:
语句块3
执行过程说明如下:
C语言或Java语言都支持switch多分支结构,但是Python没有提供switch关键字。然而在有些情况下,类似于switch结构的代码的清晰性和可读性要强于if多分支结构。
在Python中可以通过字典方式模拟类似的结果,其实现方法分为两步:首先,定义一个字典。字典是由键值对组成的集合。字典的使用方式见下一章,其次,调用字典的get()函数获取相应的表达式。
一个Python支持的算术运算符(+、-、*、/、%、//、^)的简单计算器的代码如下:
import re
print('简单计算器')
str=input('请输入只有一个运算符的式子(如5+3):')
p=re.compile(r'\d+')
op1=int(p.findall(str)[0])
op2=int(p.findall(str)[1])
q=re.compile(r'\W+')
opt=q.findall(str)[0]
if((opt=='/' or opt=='//' or opt=='%') and op2==0):
print('除数为0,非法!')
exit(0)
#定义运算字典,po是字典的名字,字典中用逗号隔开的是键值对
po={
'+':op1+op2,
'-':op1-op2,
'*':op1*op2,
'/':op1/op2,
'^':op1^op2,
'%':op1%op2,
'//':op1//op2
}
result=po.get(opt)
print('{0}{1}{2}={3}'.format(op1,opt,op2,result))