异常处理. 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. 简单excel导入导出

    import java.io.File;import java.io.IOException; import jxl.Cell;import jxl.Sheet;import jxl.Workbook ...

  2. Harries-高性能分布式Asp.net通信框架

    http://www.harries.cn/ 轻量级.免费.高并发的ASP.NET分布式通信框架 一.Harries简介: Harries Communication Framework 是一款基于C ...

  3. 在python程序中的进程操作

    multiprocess模块 multiprocess不是一个模块而是python中一个操作.管理进程的包. 之所以叫multi是取自multiple的多功能的意思,在这个包中几乎包含了和进程有关的所 ...

  4. Python-接口自动化(二)

    python基础知识(二) (二)常用控制流 1.控制语句 分支语句:起到一个分支分流的作用,类似马路上的红绿灯 循环语句:for while 可以使代码不断重复的执行 2.判断语句:关键字是if.. ...

  5. iOS 在工程内部创建一个静态库target

    当你在开发项目的时候需要把公用的东西打包出来,其他项目方便使用的时候,打包成静态库是你的最优选择,在工程内部开发的时候新建一个target进行静态库的开发可以使你的开发调试更加方便而不是单独新建一个工 ...

  6. 如何在Linux上清理内存缓存、缓冲与交换空间

    如何在Linux上清理内存缓存.缓冲与交换空间 与其他类型的操作系统一样,GNU/Linux已经有效的实现了内存管理,甚至更加优秀.但是如果任何进程正在吃光你的内存,并且你想清理它,Linux提供了一 ...

  7. php源代码安装

    1.在官网下载php安装源文件.版本选择5的最新稳定版. [root@trial download]# wget http://cn.php.net/distributions/php-5.5.38. ...

  8. AC Challenge(状压dp)

    ACM-ICPC 2018 南京赛区网络预赛E: 题目链接https://www.jisuanke.com/contest/1555?view=challenges Dlsj is competing ...

  9. springcloud Ribbon学习笔记二

    之前介绍了如何搭建eureka服务并开发了一个用户服务成功注册到了eureka中,接下来介绍如何通过ribbon来从eureka中获取用户服务: springcloud ribbon提供客户端的负载均 ...

  10. WEBBASE篇: 第九篇, JavaScript知识4

    JavaScript 4 练习1 <!doctype html> <html lang="en"> <head> <meta charse ...