文章标题

学渣开始写学习博客……
Date 10.18
尾递归只需要在函数被调用前完成返回值的计算就行

但是……

def fact(n):
return fact_iter(n, 1)
def fact_iter(num,product):
if num ==1:
return product
return fact_iter(num-1,num*product)

fact_iter(1000,10)

运行结果却显示栈溢出

然后。。。闭包的作用是什么呢

Date 10.19

hashlib 算法 :通过一个函数将任意长度的字符串转换成一定长度的数据串

直接上用法

import hashlib
md5 = hashlib.md5()
md5.update(‘how to use md5 in ‘.encode(‘utf-8’))
md5.update(‘python hashlib?’.encode(‘utf-8’))
print(md5.hexdigest())

这里如果将
md5.update(‘how to use md5 in ‘.encode(‘utf-8’))
md5.update(‘python hashlib?’.encode(‘utf-8’))
修改为md5.update(”how to use md5 in python hashlib?’.encode(‘utf-8’))
实际输出是一样的

MD5是最常见的摘要算法,速度很快,生成结果是固定的128 bit字节,通常用一个32位的16进制字符串表示。

另一种常见的摘要算法是SHA1,调用SHA1和调用MD5完全类似

SHA1的结果是160 bit字节,通常用一个40位的16进制字符串表示。

比SHA1更安全的算法是SHA256和SHA512,不过越安全的算法不仅越慢,而且摘要长度更长。

note:不同数据通过计算得到相同摘要的可能性很小

HOMEWORK
根据md5写一段验证用户密码的代码

先import hashlib模块,再写个字典储存用户数据
import hashlib
md5 = hashlib.md5()
db = {
‘michael’: ‘e10adc3949ba59abbe56e057f20f883e’,
‘bob’: ‘878ef96e86145580c38c87f0410ad153’,
‘alice’: ‘99b1c2188db85afee403b1536010c2c9’
}

输入用户名与密码,分别判断是否在字典中并且正确
user_name = input(‘please input your user name’)
if user_name not in db.keys():
print(‘fail!’)
else:
user_code = input(‘please input your code ‘)
md5 = hashlib.md5()
md5.update(user_code.encode(‘utf-8’))
if md5.hexdigest() == db[user_name]:
print(‘login!!’)
exit(0)
else:
print(‘failed’)

大致就是这样了


接下来是itertools模块

itertools 模块提供了很多用于操作迭代对象的函数

count(1):所有自然数
cycle(’asd‘):不断重复a,s,d
repeat(‘parameter’,times)
chain():连接一组迭代对象
groupby():调出相邻重复元素放在一起形成几个列表


contextlib
一般读写文件最后都要close,写起来非常麻烦
可以用with解决
with open(path,mode) as f:
f.read

@contextmanager 的用法:
pass 先 …………
”’@contextmanager
def create_query(name):
print(‘Begin’)
q = Query(name)
yield q
print(‘End’)”’

先写作业……

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值