异常处理. try except raise
try:
代码
except 异常类:
除了错, 如何处理异常
except 异常类:
除了错, 如何处理异常
except 异常类:
除了错, 如何处理异常 else:
当程序不出错
finally:
不管出不出错, 都要执行 raise 异常类("信息") 如何自己定义异常
class 类(Exception):
pass 堆栈
import traceback
traceback.format_exc()
# print(1/0) # 报错. 程序会结束运行
# print("哈哈哈哈哈哈哈")
# 0不能作为除数 , 在程序执行的时候产生了一个错误对象.
# 系统会抛出这个错误. 如果没有人处理错误. 错误就会被喷出给用户 # 处理异常: 在python中可以通过try....except...来处理错误
# try:
# print(1/0)
# except Exception:
# print('出错了')
# print('哈哈') # 可以正常运行下去
# 所有的异常的根是Exception, 所有的异常类都会默认继承Exception
# 错误
# 打架错误 斗殴错误 赌博错误 # try:
# # print(1/0)
# f = open('哈哈哈哈', mode='r')
# # d = {[]: 123}
# except ZeroDivisionError:
# print('除以0出错了')
# except FileNotFoundError:
# print('文件不存在的错误')
# except Exception: # 兜底的
# print('其他错误')
# else: # 当try中的代码不产生任何错误的时候,会自动的执行else里的代码
# pass
# finally: # 最终,不管出错还是不出错,都要执行最后的finally 一般用来收尾
# print('哈哈哈哈哈哈哈哈哈') # 如何自己定义异常
# 随便写一个类. 这个类只要继承了Exception 这个类就是一个异常类就可以作为raise对象
# class CulException(Exception):
# pass
#
# # 如何手动抛出异常
# def cul(a, b):
# # 只能是数字相加
# if (type(a) == int or type(a) == float ) and (type(b) == int or type(b) == float):
# return a + b
# else:
# # 抛出异常
# # raise 异常类(错误信息)
# raise CulException("我没办法给你处理这样的运算")
#
#
# print(cul("就不放, 气死你",2))
#
#
# class JackException(Exception):
# pass # 写一个男澡堂子
import traceback # 用来查看堆栈信息 class GenderException(Exception):
pass class Person:
def __init__(self, name, gender):
self.name = name
self.gender = gender def xizao(self):
print(f"{self.name}在洗澡") def nan_zao_tang_zi(ren):
if ren.gender == "男":
ren.xizao()
else:
raise GenderException("性别不对. 去对门看看") # 抛异常是很重要的 try:
p1 = Person("赵亚磊", "不知道")
p2 = Person("娄鲲鹏", "男") nan_zao_tang_zi(p1)
nan_zao_tang_zi(p2)
except GenderException:
# ret = traceback.format_exc() # 查看堆栈信息, 看错误的
# print(ret)
print("出错了. 很可惜") # 错误信息叫堆栈信息

  

MD5加密
import hashlib obj = hashlib.md5(b'盐')
obj.update(b"要加密的内容")
print(obj.hexdigest())
# 加密,不可逆 相对安全
import hashlib # md5对象
# obj = hashlib.md5(b'dsadasdasdas') # 加盐
# obj.update('123456'.encode("utf-8")) # 把要加密的内容给md5
# print(obj.hexdigest()) # 拿到密文 82f69062874319af1af5024f39f62f41 def my_md5(s):
obj = hashlib.md5(b'dsadasdasdas') # 加盐
obj.update(s.encode("utf-8")) # 把要加密的内容给md5
return obj.hexdigest() # print(my_md5('123456')) # 82f69062874319af1af5024f39f62f41
# 应用
# 库里
username = 'wusir'
password = '82f69062874319af1af5024f39f62f41' uname = input('请输入你的用户名:')
upwd = input('请输入你的密码:') # 123456
if uname == username and my_md5(upwd) == password:
print('登录成功')
else:
print('登录失败')

  

异常处理,MD5的更多相关文章

  1. 巨蟒python全栈开发-第20天 核能来袭-约束 异常处理 MD5 日志处理

    一.今日主要内容 1.类的约束(对下面人的代码进行限制;项目经理的必备技能,要想走的长远) (1)写一个父类,父类中的某个方法要抛出一个异常 NotImplementedError(重点) (2)抽象 ...

  2. python之路--类的约束, 异常处理, MD5, 日志处理

    一 . 类的约束 1. 写一个父类,父类中的某个方法要抛出一个异常 NotImplementedError class Base: # 对子类进行了约束. 必须重写该方法 # 以后上班了. 拿到公司代 ...

  3. python 面向对象(五)约束 异常处理 MD5 日志处理

    ###############################总结###################### 1.异常处理 raise:抛出异常 try: 可能出现错误代码 execpt 异常类 a ...

  4. python之约束, 异常处理, md5

    1. 类的约束 1. 写一个父类. 父类中的某个方法要抛出一个异常 NotImplementedError (重点) 2. 抽象类和抽象方法 # 语法 # from abc import ABCMet ...

  5. python --- 20 约束 异常处理 MD5 日志

    一.类的约束 1.抛出异常    NotImplementedError 2.抽象方法 含有抽象方法的类是抽象类 抽象类中的方法全是抽象方法的是接口 抽象类不能创建对象 二.异常处理 处理完后代码可继 ...

  6. 20 约束 异常处理 MD5 日志

    三十九, 一.类的约束 1.抛出异常    NotImplementedError 2.抽象方法 含有抽象方法的类是抽象类 抽象类中的方法全是抽象方法的是接口 抽象类不能创建对象 二.异常处理 处理完 ...

  7. python--类的约束,异常处理,MD5加密,日志处理logging模块

    1.类的约束 在开发中,如果项目经理需要对类进行约束,可以有两种方式 1. 对子类进行约束 Base: #对子类进行约束,必须重写这个方法 # 在工作中发现了NotImplementedError之后 ...

  8. day 20 约束 异常处理 MD5

    1.类的约束(重点): 写一个父类.  父类中的某个方法要抛出一个异常  NotImplementError # 项目经理 class Base:     # 对子类进行了约束. 必须重写该方法    ...

  9. python--类的约束, 异常处理, MD5, 日志处理

    一 . 类的约束 1. 写一个父类,父类中的某个方法要抛出一个异常 NotImplementedError class Base: # 对子类进行了约束. 必须重写该方法 # 以后上班了. 拿到公司代 ...

随机推荐

  1. python全局变量

    定义函数里面的叫局部变量,出了函数外面就不能用了 局部变量函数被调用时,他的变量才生效 局部变量定义在内存里面,用完就会被释放,全局变量不会释放 当有相同名的局部变量和全局变量,函数会先找自己的变量, ...

  2. keil安装

    安装准备: 一个keil安装程序,一个注册机 安装步骤.... 软件安装: 打开C51V901.EXE 安装程序 点击Next, 同意上述证书协议 重复点击Next,知道出现finish停下. 3个多 ...

  3. 剑指Offer 28. 数组中出现次数超过一半的数字 (数组)

    题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字.例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}.由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2. ...

  4. C# 注册机功能开发,机器码设计

    前言 本文将使用一个NuGet公开的组件技术来实现机器码注册码功能开发,提供了一些简单的API,来方便的实现. 在Visual Studio 中的NuGet管理器中可以下载安装,也可以直接在NuGet ...

  5. lvs负载均衡(DR模式)

    lvs负载均衡(DR模式) 系统环境:lvs+keepalivedcentos7.5 ip:192.168.1.157 vip:192.168.1.150(主)centos7.5 ip:192.168 ...

  6. 2017-2018 ACM-ICPC, NEERC A题Automatic Door 挺棘手的模拟

    题目链接:http://codeforces.com/contest/883/problem/A 题意大致就是有一个门,有n个人有规律的来,时刻分别是a,2a,3a.....na.有m个人无规律的来, ...

  7. SpringBoot下如何配置实现跨域请求?

    一.什么是跨域请求? 跨域请求,就是说浏览器在执行脚本文件的ajax请求时,脚本文件所在的服务地址和请求的服务地址不一样.说白了就是ip.网络协议.端口都一样的时候,就是同一个域,否则就是跨域.这是由 ...

  8. C++中的指针,指针函数和函数指针

    指针是C或C++中的一大难题,因此弄懂指针对C和C++的学习有很大的帮助,最近一直在研究指针,因此写一篇随笔把心得记录一下. 简单来说指针也是一种变量,只不过指针变量所存储的不是我们直观上看到的,而是 ...

  9. mysql in 查询参数化

    mysql查询语句where条件in mysql查询语句where条件in 正常情况需要查询的语句:select *from temp where id in ('1','2','3','4','5' ...

  10. Reading Level Assessment Using Support Vector Machines and Statistical Language Models-paper

    Authors: Sarah E. Schwarm University of Washington, Seattle, WAMari Ostendorf University of Washingt ...