其实本章不难理解,是一个关于逻辑的设计
首先,Python的分支结构分为三个:
一、单分支结构
if <条件> :
<语句块>
上代码:
guess = eval(input())
if guess == 99:
print("猜对了")
二、二分支结构
if <条件> :
<语句块1>
else :
<语句块2>
上代码:
guess = eval(input())
if guess == 99:
print("猜对了")
else :
print("猜错了")
此处介绍二分支结构的紧凑形式:
<表达式1> if <条件> else <表达式2>
上代码:
guess = eval(input())
print("猜{}了".format("对" if guess==99 else "错"))
注意:判断而选择的路径结果是表达式,而不是语句。且只适用于简单表达式的二分支结构。
三、多分支结构
if <条件1> :
<语句块1>
elif <条件2> :
<语句块2> ……
else :
<语句块N>
上代码:
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))
注意:
1、注意多条件之间的包含关系。
2、注意取值变量范围的覆盖。
需要谨慎以上两点,否则会发生逻辑错误。
异常处理
这是python的特点之一。
num = eval(input("请输入一个整数: "))
print(num**2)
如果用户没有输入整数时,产生异常怎么处理?
Traceback (most recent call last):
File "t.py", line 1, in <module> num = eval(input("请输入一个整数: "))
File "<string>", line 1, in <module>
NameError: name 'abc' is not defined
第二行的“line 1”是异常发生的代码行数,第四行的“NameError”是异常类型,其后面冒号跟着的内容是异常内容提示。
此处我们可以这样表示:
try :
num = eval(input("请输入一个整数: "))
print(num**2)
except :
print("输入不是整数")
也可以这样表示:
try :
num = eval(input("请输入一个整数: "))
print(num**2)
except NameError:
print("输入不是整数")
注:标注异常类型后,仅响应此类异常 异常类型名字等同于变量名。
所以通用模板是这样的:
异常处理 异常处理的基本使用
try :
<语句块1>
except :
<语句块2>
try :
<语句块1>
except <异常类型> :
<语句块2>
此外我们还有一种异高级常处理方法
try : <语句块1>
except : <语句块2>
else : <语句块3>
finally : <语句块4>
- finally对应语句块4一定执行
- else对应语句块3在不发生异常时执行