本文为霍格沃兹测试开发学社学员学习笔记分享
原文链接:https://ceshiren.com/t/topic/27722
try/except语句捕捉异常。try/except 语句用来检测 try 语句块中的错误,从而让 except 语句捕获异常信息并处理。file = open("data.txt","r")
try:
# 写入数据时可能会有问题
file.write("写入的数据")
except IOError as err:
print("文件不能写入", err)
file.close()
except 分别捕捉异常。Exception异常类型来处理所有的异常,如果有多个时, Exception必须放在最后捕捉该异常,否则无法处理到其它异常。file = open("data.txt","r")
try:
# 写入数据时可能会有问题
# file.write("写入的数据")
# print(a)
# print(3 / 0)
# print([][10])
print("hello" + 100)
except IOError as err:
print("文件不能写入", err)
except NameError:
print("标识符没有定义")
except ZeroDivisionError:
print("除数不能为0")
except IndexError:
print("下标越界了")
except Exception:
print("程序运行出错,请检查代码")
file.close()
else 在处理代码无异常时的后续操作。try:
n = input("请输入一个数字:")
num = int(n)
except Exception:
print("元素无法转换为数字")
else:
print("转换后成功",num)
finally 处理无论异常是否发异,都要执行的代码,一般用来完成清理工作。try:
file = open("data.txt","r")
# file.write("A")
except Exception:
print("文件操作报错")
finally:
print("文件已关闭")
file.close()
编写一个Python程序,可以执行加法、减法、乘法和除法操作。用户可以输入两个数字和运算符,然后计算并输出结果。实现计算器的功能(+、-、*、/),并处理异常情况,比如:输入的不是数字、除数为0等。
def operation(number_1,symbol,number_2):
match symbol:
case "+":
return number_1 + number_2
case "-":
return number_1 - number_2
case "*":
return number_1 * number_2
case "/":
if number_2 == 0:
raise Exception("除数不能为0!")
else:
return number_1 / number_2
case _:
raise Exception(f"您输入的运算符{symbol}有误!")
def calculator():
try:
number_1 = int(input("请输入第一个数字:\n"))
symbol = input("请输入+ - * /其中一个运算符:\n")
number_2 = int(input("请输入第二个数字:\n"))
except Exception:
print("请输入整数数字!")
else:
try:
result = operation(number_1, symbol, number_2)
except Exception as err:
print(err)
else:
print(f"您输入的计算结果为:{result}")
if __name__ == '__main__':
calculator()