代码演示:
a = 3
assert(a>1)
print("断言成功,程序继续向下执行")
print("a执行")
b = 7
assert(b>10)
print("断言失败,程序报错")
print("b执行")
执行结果:
断言成功,程序继续向下执行
a执行
Traceback (most recent call last):
File "D:/PycharmProjects/python/zidian.py", line 6, in <module>
assert(b>10)
AssertionError
我们看到,当条件为true时,断言成功,程序会继续向下执行。当条件为 false 触发异常,断言失败,程序报错
如果我们将断言失败的放在上面,a是否还会执行
代码演示:
b = 7
assert(b>10)
print("断言失败,程序报错")
print("b执行")
a = 3
assert(a>1)
print("断言成功,程序继续向下执行")
print("a执行")
执行结果:
Traceback (most recent call last):
File "D:/PycharmProjects/python/zidian.py", line 2, in <module>
assert(b>10)
AssertionError
可以看到,当断言失败的时候,程序将不会再执行下面的代码。
异常都不会被程序处理,都以错误信息的形式展现出来
代码演示:
a = 1/0
print(a)
执行结果:
Traceback (most recent call last):
File "D:/PycharmProjects/python/zidian.py", line 1, in <module>
a = 1/0
ZeroDivisionError: division by zero
代码演示:
a = 3
b = '5'
c = a + b
print(c)
执行效果:
Traceback (most recent call last):
File "D:/PycharmProjects/python/zidian.py", line 3, in <module>
c = a + b
TypeError: unsupported operand type(s) for +: 'int' and 'str'
int 不能与 str 相加,触发异常
代码演示:
a = 3
b = s + 5
c = a + b
print(c)
执行结果:
Traceback (most recent call last):
File "D:/PycharmProjects/python/zidian.py", line 2, in <module>
b = s + 5
NameError: name 's' is not defined
代码演示:
while True print('你好')
执行结果:
File "D:/PycharmProjects/python/zidian.py", line 1
while True print('你好')
^
SyntaxError: invalid syntax
上面:函数 print() 被检查到有错误,是它前面缺少了一个冒号 : 。
语法分析器指出了出错的一行,并且在最先找到的错误的位置标记了一个小小的箭头。
代码演示:
f=open('notfound.txt', 'r')
执行结果:
Traceback (most recent call last):
File "D:/PycharmProjects/python/zidian.py", line 1, in <module>
f=open('notfound.txt', 'r')
FileNotFoundError: [Errno 2] No such file or directory: 'notfound.txt'
代码演示:
a = int("www.baidu.com")
print(a)
执行结果:
Traceback (most recent call last):
File "D:/PycharmProjects/python/zidian.py", line 1, in <module>
a = int("www.baidu.com")
ValueError: invalid literal for int() with base 10: 'www.baidu.com'
代码演示:
while True:
try:
x = int(input("请输入一个数字: "))
break
except ValueError:
print("您输入的不是数字,请再次尝试输入!")
执行效果:
请输入一个数字: python
您输入的不是数字,请再次尝试输入!
请输入一个数字: 6
代码演示:
s = input('请输入除数:')
try:
result = 20 / int(s)
print('20除以%s的结果是: %g' % (s , result))
except ValueError:
print('值错误,您必须输入数值')
except ArithmeticError:
print('算术错误,您不能输入0')
else:
print('没有出现异常')
执行结果:
请输入除数:10
20除以10的结果是: 2
没有出现异常
请输入除数:0
算术错误,您不能输入0
代码演示:
s = input('请输入除数:')
try:
result = 20 / int(s)
print('20除以%s的结果是: %g' % (s , result))
except ValueError:
print('值错误,您必须输入数值')
except ArithmeticError:
print('算术错误,您不能输入0')
else:
print('没有出现异常')
finally:
print('这句话,无论异常是否发生都会执行。')
执行效果:
请输入除数:10
20除以10的结果是: 2
没有出现异常
这句话,无论异常是否发生都会执行。
请输入除数:0
算术错误,您不能输入0
这句话,无论异常是否发生都会执行。
代码演示:
a = 10
if a > 5:
raise Exception('a 不能大于5。a的值为: {}'.format(5))
执行效果:
Traceback (most recent call last):
File "D:/PycharmProjects/python/zidian.py", line 3, in <module>
raise Exception('a 不能大于5。a的值为: {}'.format(5))
Exception: a 不能大于5。a的值为: 5
raise 唯一的一个参数指定了要被抛出的异常。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。