学习目标:
异常处理
学习内容:
# try:
# f = open('data.txt', 'r')
# except:
# f = open('data.txt','w')
# print('报错了')
#
# print('我运行了')
# try:
# # print(num)
# # print(1/0)
# f = open('data.txt', 'r')
# except NameError as name_error:
# print(f'{name_error}')
# except ZeroDivisionError:
# print('错误类型是ZeroDivisionError')
# except Exception as e:
# print(f'错误类型是Exception{e}')
# else: # 当没有异常,就执行里面的代码
# print('没有报错')
# while True:
# num = input('请输入一个小数:')
#
# try:
# num = float(num)
# break
# except:
# print('你输入的数不是一个小数,请重新输入')
# try:
# # print(num)
# # print(1/0)
# f = open('data.txt', 'r')
# except Exception as e:
# print(f'错误类型是Exception{e}')
# else: # 当没有异常,就执行里面的代码
# print('没有报错')
# finally: # 在任何情况下都会执行
# print('我运行了')
# raise Exception('你这个代码报错了') # 抛出异常
# Exception 常规错误的基类
# 密码长度不符合
# class PasswordLengthError(Exception):
# def __init__(self,password):
# self.password = password
#
# def __str__(self):
# return f'密码{self.password}长度不满足'
#
#
# num = input('请输入一个大于3位数的密码:')
#
# if len(num) <= 3:
# raise PasswordLengthError(num)
# 断言
# assert 1 + 1 == 3, '表达式错误'
# debug # 在代码前面点击显示红点,用debug运行方式可以分步骤查看代码运行
# for i in range(10):
# print(i)
# if 1+1 == 2:
# print('true')
# else:
# print('false')
# copy 浅复制与深复制
# list1 = [1,2,3]
# list2 = list1.copy() # 浅复制 只能复制表层数据
#
# del list2[2]
# print(list1)
# dict_data = {'data':[1,2,3]}
# dict_data1 = dict_data.copy()
#
# del dict_data1['data'][2]
# print(dict_data)
# from copy import deepcopy
# # 深复制
# dict_data = {'data':[1,2,3]}
# dict_data1 = deepcopy(dict_data)
#
# del dict_data1['data'][2]
# print(dict_data)
# 迭代性 对象
# list1 = [1,2,3]
# print(list1.__dir__())
课后作业:
class PasswordLengthError(Exception):
def __init__(self,password):
self.password = password
def __str__(self):
return f'密码{self.password}长度不满足'
__module__ = 'builtins' # 将自定义错误设置为底层
def input_password():
password = input('请输入密码:')
if len(password) <= 8:
raise PasswordLengthError(password)
else:
print(password)
input_password()
学习产出:
技术笔记 1 遍