程序的控制结构
单分支结构
分支结构是根据判断条件结果而选择的不同向前路径的运行方式,单分支是最简单的方式
如果……则……
猜数 据
guess = eval(input())
if guess ==99:
print("猜对了")
二分支结构
根据条件判断的不同,而选择不同向前路径的一种结构
猜数字的例子
guess = eval(input())
if guess==99:
print("猜对了")
else:
print("猜错了")
二分支结构除了if else结构之外,还有紧凑的结构,他是仅仅适用于表达简单的逻辑的
表达式1是指,如果条件成立了我们返回表达式1的信息,要是条件不成立,就是执行条件2 的
改变为紧凑形式
guess=eval(input())
print("猜{}了".format("对"if guess==99 else"错"))
注意在紧凑形式中,if else所对应的输出不是语句,而是表达式,但是表达式是语句的一部分
语句是带赋值形式的,
有等号构成的语句,但是if else是不支持带赋值符号的语句,只支持表达式的形式,也就是语句的一部分,所以在其中要
注意表达式的使用,而不是语句的使用
多分支结构
多分支是根据多个条件,而选择不同语句块运行的一种分支结构
典型方式是保留字if elif 和else
实例:对不同分数分级的问题
score=eval(input())
if score>=60:
grade="D"
elif score>=70:
grade="C"
elif score>=80:
grade="B"
elif score>=90:
grade="A"
print ("输入成绩属于级别{}".format(grade))
注意多条件之间的包含关系
注意变量取值范围的覆盖关系
这段代码的运行是正确的,但是关系是错误的
他的先后关系以及包含关系出现了错误,所以要进行修改
条件判断及组合
操作符对条件进判断,并且产生真或假的结果
操作符
实例:
guess = eval(input())
if guess>99 orguess<99:
print("猜错了")
else:
print("猜对了")
解读:当用户输入的数字我么可以利用条件guess>99 or guess<99 来决定返回用户对和错的结果,在这行条件判断中, 既使用了条件操作符也使用了保留字,只要用户输入的条件中数字是>99或者<99就是错误的,否则就是对的
程序的异常处理(分支结构的一种)
num =eval(input("请输入一个整数"))
print(num**2)
首先我们获得用户的一个输入,然后对输入的整数进行平方操作
就操作来说是没有问题的,但是用户未必会按照提示输入整数,,当用户没有输入整数时,会产生异常,怎么处理呢??
要是产生异常,就会产生异常信息,那么出现的异常信息有是
在第二行中有个地方已经表明了异常发生的代码行数
是因为在input函数中输入了非整数的信息,在eval去掉引号后发生了错误
他发生在代码的第一行,整个信息的最后表明了异常内容和异常内容提示
一场内容是NameError 是命名出现了错误,再看提示:abc是没有被定义的,因为开始的时候是没有定义abc但是却输入了abc
用try 和except解决出现的异常,要是不出现异常,就执行语块1要是出现异常,就执行语块2
try:
<语块一>
except<异常类型>:
<语块二>
实例:
try:
num=eval(input("请输入一个整数"))
print(num**2)
except:
print(""输入不是整数)
可以直接在except后面增加异常的类型,例如刚刚是NameError
标注异常类型后,仅响应该异常,异常类型名字等同于变量,是自己定义的异常处理类型的高级方法
try:
<语块一>
except:
<语块二>
else:
<语块三>
finally:
<语块四>
要是不出现异常就执行语句块1,出现异常就执行语句块2
finally 对应的语句块4一定执行
else对应的语句块3在不发生异常时执行