前面我们看到的程序都是顺序执行,程序在执行时是一句句往下进行的,这种一句句顺序执行的语句是程序中第一类型的语句。
程序中除了这种简单的顺序结构外,还有一种会转弯的分支结构,它可以根据执行条件来决定该执行哪些语句,不该执行哪些语句,分支语句是程序中的第二类语句。
1、条件语句格式一:if 语句
格式一:
if 条件:
语句
其中条件后面有个":"号, 执行的语句需要向右边缩进。
这种格式的含义是当条件成立时,执行指定的语句,执行完后接着执行if后下一条语句;如条件不成立,则该语句不执行,转去执行if后下一条语句,如下图:
2、条件语句格式二:if else
格式二:
if 条件:
语句 1
else:
语句 2
else后面有个":",语句1、语句2都要向后边缩进,而且要对齐。
当条件成立时,执行指定的语句1,执行完后执行if后下一条语句;
如条件不成立,执行指定的语句2,执行完后执行if后下一条语句。
如下图所示:
案例一:输入一个整数,判断它是奇数还是偶数
分析:设输入的整数是n,n%2==0则是偶数,否则为奇数
程序如下:
n=input("请输入一个整数:")
n=int(n)
if n%2==0:
print("偶数")
else:
print("奇数")
运行结果如下:
请输入一个整数:10
偶数
请输入一个整数:5
奇数
案例二:输入一个整数,输出其绝对值
分析:设输入的整数是n,如果n>=0,则输出n;如果n<0,则输出-n
程序如下:
n=input("请输入一个整数:")
n=int(n)
if n>=0:
print(n)
else:
print(-n)
运行结果如下:
请输入一个整数:5
5
请输入一个整数:-10
10
案例三:输入两个数,输出最大的一个
分析:这是求两个数中最大值的问题,设输入的数是a b,a>b时,则最大值为a,反之为b
程序如下:
a=input("请输入一个数:")
b=input("请输入一个数:")
a=float(a)
b=float(b)
if a>=b:
c=a
else:
c=b
print(c)
运行结果如下:
请输入一个数:10.9
请输入一个数:8.2
10.9
更简便程序如下:
a=input("请输入一个数:")
b=input("请输入一个数:")
a=float(a)
b=float(b)
c=a
if a<b:
c=b
print(c)
3、条件语句格式三:多分支语句
多分支语句格式如下:
if 条件1:
语句1
elif 条件2:
语句2
elif 条件n:
…
语句n
else:
语句n+1
每个条件后有":",语句1、语句2…等需要向右边缩进,而且要对齐。
当条件1成立,执行指定的语句1,执行完后,执行if后下一条语句;
当条件1不成立,判断条件2,条件2成立时,执行指定的语句2,执行完后,执行if后下一条语句;
当条件2不成立,判断条件3,…
判断条件n是否成立,条件n成立时,执行指定的语句n,执行完后,执行if后下一条语句;
当条件n不成立,执行else 后的语句n+1,执行完后,执行if后下一条语句。
如下图所示:
案例四:输入一个学生的成绩,按[90,100]、[80,89]、[70,79]、[60,69]、[0,59]的范围分别给出A、B、C、D、E的等级
分析:输入的成绩可能不合法(小于0或大于100),也可能在[90,100]、[80,89]、[70,79]、[60,69]、[0,59]其中一段内,需要用多分支if处理
程序如下:
a=input("请输入一个分数:")
a=float(a)
if a<0 or a>100:
print("不合法的分数")
if a>=90:
print("A")
elif a>=80:
print("B")
elif a>=70:
print("C")
elif a>=60:
print("D")
else:
print("E")
运行结果如下:
请输入一个分数:89
B