1、hashlib 

1、什么叫hash:hash是一种算法,该算法接受传入的内容,经过运算得到一串hash值
 2、hash值的特点是:
2.1 只要传入的内容一样,得到的hash值必然一样=====>要用明文传输密码文件完整性校验
2.2 不能由hash值返解成内容=======》把密码做成hash值,不应该在网络传输明文密码
2.3 只要使用的hash算法不变,无论校验的内容有多大,得到的hash值长度是固定的

import hashlib

m=hashlib.md5()
m.update('hello'.encode('utf-8'))
m.update('world'.encode('utf-8'))
m.update('egon'.encode('utf-8'))
print(m.hexdigest()) #3801fab9b8c8d9fcb481017969843ed5 import hashlib m=hashlib.md5()
m.update('h'.encode('utf-8'))
m.update('e'.encode('utf-8'))
m.update('lloworld'.encode('utf-8'))
m.update('egon'.encode('utf-8'))
print(m.hexdigest()) #3801fab9b8c8d9fcb481017969843ed5 import hashlib
m=hashlib.md5()
with open(r'D:\code\SH_fullstack_s1\day18\上节课复习','rb') as f:
for line in f:
m.update(line)
hv=m.hexdigest()
print(hv) #f2a3a94efd0809e8a9c5ac8794c4bb2d
953cd74a08f4fbb7e69a4bda8dfad056 密码加盐
import hashlib
pwd='alex3714' m=hashlib.md5()
m.update('一行白鹭上青天')
m.update(pwd.encode('utf-8'))
m.update('天'.encode('utf-8')) m.update('小雨一米五'.encode('utf-8'))
print(m.hexdigest()) import hashlib m=hashlib.md5()
m.update('helloworld'.encode('utf-8'))
print(m.hexdigest()) #fc5e038d38a57032085441e7fe7010b0 m=hashlib.sha256()
m.update('helloworld'.encode('utf-8'))
print(m.hexdigest()) #936a185caaa266bb9cbe981e9e05cb78cd732b0b3280eb944412bb6f8f8f07af m=hashlib.sha512()
m.update('helloworld'.encode('utf-8'))
print(m.hexdigest()) #1594244d52f2d8c12b142bb61f47bc2eaf503d6d9ca8480cae9fcf112f66e4967dc5e8fa98285e36db8af1b8ffa8b84cb15e0fbcf836c3deb803c13f37659a60

 强制加密  

import hmac
m=hmac.new('天王盖地虎,小鸡炖模块'.encode('utf-8'))
m.update('alex3814'.encode('utf-8'))
print(m.hexdigest())

2、subprocess模块

import subprocess
import time time.sleep(500) # dos命令
# tasklist | findstr python
# taskkill /?
#D:\code>tasklist | findstr python
# python.exe 12360 Console 1 11,024 K
#
# D:\code>taskkill /F /PID 12360 # linux系统(了解)
# ps aux | grep python
# kill -9 PID import os
while True:
cmd=input('>>>: ').strip()
if not cmd:continue
# print('%s run' %cmd)
res=os.system(cmd) network.send(res) import os res=os.system('dixCVr')
print('运行结果:',res) import subprocess obj=subprocess.Popen('dir',
shell=True,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE
) print(obj) res1=obj.stdout.read()
print('正确结果1111: ',res1) res2=obj.stdout.read()
print('正确结果2222: ',res2) #只能取一次,取走了就没有了 res2=obj.stderr.read()
print('错误结果:',res2.decode('gbk'))

3、configparser模块

import configparser

config=configparser.ConfigParser()
config.read('my.ini') # secs=config.sections()
# print(secs) # print(config.options('egon')) # age=config.get('egon','age')`
# age=config.getint('egon','age')
# print(age,type(age)) # salary=config.getfloat('egon','salary')
# print(salary,type(salary)) b=config.getboolean('egon','is_beatifull')
print(b,type(b))

4、面向对象编程

1、面向过程编程
核心是”过程“二字,过程指的是解决问题的步骤,即先干什么再干什么
基于该思想编写程序就好比在编写一条流水线,是一种机械式的思维方式

优点:复杂的问题流程化、进而简单化
缺点:可扩展性差

2、面向对象
核心”对象“二字,对象指的是特征与技能的结合体,
基于该思想编写程序就好比在创造一个世界,你就是这个世界的上帝,是一种
上帝式的思维方式

优点:可扩展性强
缺点:编程的复杂度高于面向过程

5、对象与类

''''
1、类
对象是特征与技能的结合体,那类就是一系列对象相同的特征与技能的结合体 2、在现实世界中:一定先有对象,后来随着人类文明的发展总结出的类
对象是具体存在的,而类只是一种抽象概念 3、在程序中,务必保证:先定义类,后调用类来产生对象 现实生活中的对象:
对象1:
特征:
school="Oldboy"
name="马冬梅"
age=18
sex="female"
技能:
学习
选课 对象2:
特征:
school="Oldboy"
name="甜蜜蜜"
age=21
sex="male"
技能:
学习
选课 对象3:
特征:
school="Oldboy"
name="原石开"
age=22
sex="male"
技能:
学习
选课 现实生活中的老男孩学生类:
相同的特征
school="Oldboy"
相同的技能
学习
选课
'''
#1、程序中的类
class OldboyStudent:
# 用变量表示特征
school="Oldboy" # 用函数表示技能
def learn(self):
print('is learning...') def choose(self):
print('choose course...') # print('======>') # 注意:在定义类的阶段会立刻执行类体内的代码,然后将产生的名字存放于类名称空间中
# print(OldboyStudent.__dict__)
# print(OldboyStudent.__dict__['school'])
# print(OldboyStudent.__dict__['learn'])
# OldboyStudent.__dict__['learn'](123) # print(OldboyStudent.school) # OldboyStudent.__dict__['school']
# print(OldboyStudent.learn) # OldboyStudent.__dict__['learn']
# OldboyStudent.learn('xxx')
# OldboyStudent.learn('xxx') OldboyStudent.country='China'
OldboyStudent.school='偶的博爱' del OldboyStudent.country
print(OldboyStudent.__dict__) # 2、调用类,产生程序中的对象

  

4月10日 python学习总结 模块和面向对象的更多相关文章

  1. 4月8日 python学习总结 模块与包

    一.包 #官网解释 Packages are a way of structuring Python's module namespace by using "dotted module n ...

  2. 4月9日 python学习总结 模块

    1.XML模块 xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单,不过,古时候,在json还没诞生的黑暗年代,大家只能选择用xml呀,至今很多传统公司如金融 ...

  3. 5月10日 python学习总结 单表查询 和 多表连接查询

    一. 单表查询  一 语法 select distinct 查询字段1,查询字段2,... from 表名 where 分组之前的过滤条件 group by 分组依据 having 分组之后的过滤条件 ...

  4. 4月2日 python学习总结

    昨天内容回顾: 1.迭代器 可迭代对象: 只要内置有__iter__方法的都是可迭代的对象 既有__iter__,又有__next__方法 调用__iter__方法==>得到内置的迭代器对象 调 ...

  5. 4月12日 python学习总结 继承和派生

    一.继承 什么是继承:   继承是一种新建类的方式,在python中支持一个子类继承多个父类   新建类称为子类或派生类   父类可以称之为基类或者超类   子类会遗传父类的属性 2.  为什么继承 ...

  6. 4月11日 python学习总结 对象与类

    1.类的定义 #类的定义 class 类名: 属性='xxx' def __init__(self): self.name='enon' self.age=18 def other_func: pas ...

  7. 6月4日 python学习总结 初次接触jQuery

    1. jQuery是什么?是一个轻量级的,兼容多浏览器的JS库(write less, do more) 1. 是一个工具,简单方便的实现一些DOM操作 2. 不用jQuery完全可以,但是不明智. ...

  8. 5月16日 python学习总结 DBUtils模块、orm 和 cookie、session、token

    一.DBUtils模块 介绍 The DBUtils suite is realized as a Python package containing two subsets of modules, ...

  9. 5月11日 python学习总结 子查询、pymysql模块增删改查、防止sql注入问题

    一.子查询 子查询:把一个查询语句用括号括起来,当做另外一条查询语句的条件去用,称为子查询 select emp.name from emp inner join dep on emp.dep_id ...

随机推荐

  1. 利用Tensorboard可视化模型、数据和训练过程

    在60分钟闪电战中,我们像你展示了如何加载数据,通过为我们定义的nn.Module的子类的model提供数据,在训练集上训练模型,在测试集上测试模型.为了了解发生了什么,我们在模型训练时打印了一些统计 ...

  2. 05网络并发 ( GIL+进程池与线程池+协程+IO模型 )

    目录 05 网络并发 05 网络并发

  3. 通过Dapr实现一个简单的基于.net的微服务电商系统(二十)——Saga框架实现思路分享

    今天这篇博文的主要目的是分享一下我设计Saga的实现思路来抛砖引玉,其实Saga本身非常的类似于一个简单的工作流体系,相比工作流不一样的部分在于它没有工作流的复杂逻辑处理机制(比如会签),没有条件分支 ...

  4. SpringBoot+MybatisPlus+Mysql+Sharding-JDBC分库分表实践

    一.序言 在实际业务中,单表数据增长较快,很容易达到数据瓶颈,比如单表百万级别数据量.当数据量继续增长时,数据的查询性能即使有索引的帮助下也不尽如意,这时可以引入数据分库分表技术. 本文将基于Spri ...

  5. Java并发杂谈(一):volatile的底层原理,从字节码到CPU

    volatile的特性 volatile是Java中用于修饰变量的关键字,其主要是保证了该变量的可见性以及顺序性,但是没有保证原子性:其是Java中最为轻量级的同步关键字: 接下来我将会一步步来分析v ...

  6. json系列(一)cjson,rapidjson,yyjson解析示例

    前言 项目上通过消息中间件传输json格式的数据,其他接收模块需要对json格式的数据进行解析,反序列化.对json解析工具有几个关注点,一是具备解析和构造的基础功能,二是具备解析和构造的高性能,三是 ...

  7. linux的分区方法

    linux分区方法,不同的人有不同的方法,反正没有统一的方法.在分区方面,我觉得根据自己的实际情况来分是最好的.玩linux也有好几年了,下面说一下,我在分区方面的一些经验. 一,个人用 如果是个人用 ...

  8. 【C# 编码格式】 System.Text 命名空间 Encoding

    Encoding基类    System.Text.ASCIIEncoding类    System.Text.UnicodeEncoding类    System.Text.UTF32Encodin ...

  9. hadoop 无法访问50070

    windows无法访问hadoop web端口 windows hosts文件:C:\Windows\System32\drivers\etc centos防火墙没有关,关闭参考 hadoop cor ...

  10. spark conf的3种配置优先级

    在SparkConf上设置的属性具有最高的优先级,其次是传递给spark-submit或者spark-shell的属性值,最后是spark-defaults.conf文件中的属性值