分支结构的使用
Python的代码都是一条一条语句顺序执行,这种代码结构通常称之为顺序结构,然而仅有顺序结构显然是不能解决问题的,比如我们设计了一个游戏,游戏第一关通关条件是玩家获得1000分,那么在完成本局游戏后,我们要根据玩家得到分数来决定究竟是进入第二关还是告诉玩家’Game Over’这里就会产生两个分支,而且这两个分支只有一个被执行,这就是我们的分支结构。
if else语句的使用
在Python中,要构造分支结构可以使用if
、elif
和else
关键字。所谓关键字就是有特殊含义的单词,像if
和else
就是专门用于构造分支结构的关键字。
简单的分支结构 if else
的结构构成为:
if 表达式:
print("表达示为真")
else:
print("表达式为假")
复杂的分支结构if elif else
的结构构成为:
if 表达式1:
print("表达式1为真,我执行")
elif 表达式2:
print("表达式1为假,我为真,我执行,不执行后面的语句")
elif 表达式3:
print("表达式1和表达式2都为假,我为真,我执行,不执行后面的语句")
else:
print("他们都为假,终于轮到我执行了")
嵌套分支,对上面分支的中和利用例如判断是否通关以后还要根据你获得的宝物或者道具的数量对你的表现给出等级,那么我们就需要在if
或者elif
或者else
的内部构造出一个新的分支结构,我们称之为嵌套的分支结构。例如:
if 表达式1:
if 表达式2:
print("如果表达式1和2都是真的,我执行")
elif 表达式3:
print("如果表达式1是真的,表达式2是假的,我执行")
else:
print("如果表达式1真的,表达式2和3是假的,我执行")
else:
print("如果表达式1是假的,我执行")
嵌套结构中的嵌套层次多了之后会严重影响代码的可读性,所以尽量不使用嵌套结构。
练习
英制单位英寸与公制单位厘米互换
1厘米等于2.54英尺
value = float(input("请输入长度:"))
# eval是将input当中的输入转换成该有的格式
unint = eval(input("请输入单位:"))
if value == "in" or value == "英尺":
print("%f英寸:%f厘米"%(value,value*2.54))
elif value == "cm" or value == "厘米":
print("%f厘米:%f英寸"%(value,value/2.54))
else:
print("请输入有效的单位")
百分制成绩转换为等级制成绩
要求:如果输入的成绩在90分以上(含90分)输出A;80分-90分(不含90分)输出B;70分-80分(不含80分)输出C;60分-70分(不含70分)输出D;60分以下输出E。
num = int(input("请输入成绩:"))
if num >= 90:
print("A")
elif num >= 80:
print('B')
elif num >= 70:
print('C')
elif num >= 60:
print('D')
else:
print('E')
输入三条边长,如果能构成三角形就计算周长和面积
提示:面积可以根据周长进行计算s = p*(p-a)(p-b)(p-c)
a = float(input('请输入第一条边:'))
b = float(input('请输入第二条边:'))
c = float(input('请输入第三条边:'))
if a+b>c or a+c>b or b+c>a:
p = a + b +c
area = (p*(p-a)*(p-b)*(p-c))**0.5
print('周长为%f:,面积为%f'%(p,area))
else:
print('不能构成三角形,请输入正确的边数!')