条件判断及组合:
操作符:
操作符 | 数学符号 | 描述 |
---|---|---|
< | < | 小于 |
<= | ≤ | 小于等于 |
>= | ≥ | 大于等于 |
> | > | 大于 |
== | = | 等于 |
!= | ≠ | 不等于 |
用于条件组合的三个保留字:
操作符及使用 | 描述 |
---|---|
x and y | 两个都成立才成立,两个条件x和y的逻辑与 |
x or y | 一个成立就成立,两个条件x和y的逻辑或 |
not x | 条件x的逻辑非 |
and保留字代码示例如下:
guess=eval(input("请输入要猜测的数字:")) if guess>99 and guess>180: print("猜对了") else: print("猜错了")
运行界面如下所示:
如上所示,当我们输出100的时候,只满足前一个条件,不满足后一个条件,而and保留字要求两个条件同时满足才输出为猜对了,所以只满足一个的话输出为猜错了。
or保留字代码示例如下:
guess=eval(input("请输入要猜测的数字:")) if guess>99 or guess>180: print("猜对了") else: print("猜错了")
运行界面如下所示:
or保留字,只需要满足一个条件即可,所以输入为100时,只满足于前一个条件,所以即可输出,当输入为200时,两个条件都满足,也输出为猜对了。
not保留字示例代码如下:
guess=eval(input("请输入要猜测的数字:")) if not guess>180: print("猜对了") else: print("猜错了")
运行界面如下所示:
通过使用not关键字,及对条件的否定,及所猜数字不大于180即为猜对了,大于180即为猜错了。
格式如下:
if not True:#即为False,这样子的代码表达假的逻辑,不会执行语句块2,只会执行语句块1.
print("语句块2")
else:
print("语句块1")
程序的异常处理:
代码示例如下:
num=eval(input("请输入一个整数:")) print(num**2)
运行界面如下:
运行程序时,输入了字符串abc,经过eval函数处理,用户输入的abc的两侧的引号去掉,就变成了一个python语句中的变量,python语句中并没有曾经定义过变量abc,所以返回信息提示名字abc的变量是没有被定义的。
与此同时,在该运行界面中,产生异常的相关信息的第1行中的lin 1,提示了错误信息出现的行数。即:
第4行说明了异常的类型:该类型为使用了未定义的变量时引发的异常。
同时还有异常类型提示: 该提升内容为abc没有被定义。
根据这些描述,我们可以得知。第一行代码没有定义abc,所以我们输入已经定义的整数即可。
异常的类型:
程序运行时出现的异常大多继承自Exception类,而Exception类又继承自异常类的基类BaseException。
BaseException类是所有异常类型的基类,它派生了4个子类:Exception、KeyboardInterrupt、GeneratorExit和SystemExit。
其中Exception是所有内置的、非系统退出的异常的基类;
KeyboardInterrupt是用户中断执行时会产生的异常
GeneratorExit表示生成器退出异常
SystemExit表示Python解释器退出异常
Exception类内置了众多常见的异常。其中经常出现的异常类型如下:
1.NameError:是程序中使用了未定义的变量时引发的异常
如下所示:
代码示例1:
num=eval(input("请输入一个整数:"))
print(num**2)
运行如下:
**
出现的异常类型即为NameError,面对此种异常,即输入为整数,即异常显示。
代码示例2:
print(test)
运行界面:
根据错误提示信息可知,错误代码在第一行,类型为NameError,即在程序中使用了没有被定义的变量test,即只要我们对该变量定义即可。
修改的代码示例如下:
test=666 print(test)
运行界面如下:
2.IndexError:是程序越界访问时引发的异常
代码示例如下:
num_list=[] print(num_list[0])
运行界面如图:
根据异常信息提示:错误出现在代码的第二行,错误类型为程序越界。
通过程序我们可以得知,第一行代码定义了一个空列表,即里面什么也没有,而在输出的时候,却在索引列表里位置为0的数,即超越了所定义列表的界限。即出现程序越界的异常。
修改后的程序如下:
num_list=[0] print(num_list[0])
运行程序如下:
通过运行我们可知,所定义的列表里面只有一个数,即0,当我们索引列表里面位置为0的数据的时候,运行后输出0
3.AttributeError:是使用对象访问不存在的属性引发的异常。
代码如下所示:
class Car(object): pass car=Car() car.color="黑色" car.brand='五菱' print(car.color) print(car.brand) print(car.name)
运行界面如下所示:
通过给出的异常信息,我们得知异常在第八行代码,即我们在前面没有定义name,而在输出界面进行输出,没有定义即输出,出现了AttributeError错误。
修改的代码如下:
class Car(object): pass car=Car() car.color="黑色" car.brand='五菱' car.name='大众' print(car.color) print(car.brand) print(car.name)
运行界面如图:
4.FileNotFoundError:未找到指定文件或目录时引发的异常。
代码示例如下:file=open("test.txt")
运行界面如下:
根据错误提示信息,我们可以得知,错误代码在第一行,错误类型为FileNotFoundError,即没有找到test.txt文件。
在本地添加这个文件后,我们可以得到运行如下:
我们可以根据错误提示信息里面的地址找到后进行添加该文件即可,添加后,再次运行异常即可消除。