重要函数(python自带、双下方法、加密)

python自带函数

  反射、map、filter、sort和sorted、zip

内置方法(双下)

加密函数

  base64、md5、sha1

前端加密函数

  base64、md5、sha1

 

一、python自带函数

反射(hashttr,getattr)

map

Python中的map函数应用于每一个可迭代的项,返回的是一个结果list。如果有其他的可迭代参数传进来,map函数则会把每一个参数都以相应的处理函数进行迭代处理。map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回。

有一个list, L = [1,2,3,4,5,6,7,8],我们要将f(x)=x^2作用于这个list上,那么我们可以使用map函数处理。

L = [1,2,3,4,] 
def pow2(x): 
    return x*x 
list(map(pow2,L))

#结果:[1, 4, 9, 16] 

filter

filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。

例如,要从一个list [1, 4, 6, 7, 9, 12, 17]中删除偶数,保留奇数,首先,要编写一个判断奇数的函数:

def is_odd(x):
    return x % 2 == 1

#然后,利用filter()过滤掉偶数:

list(filter(is_odd, [1, 4, 6, 7, 9, 12, 17]))

#结果[1, 7, 9, 17]

sort和sorted

用List的成员函数sort进行排序,在本地进行排序,不返回副本;

用built-in函数sorted进行排序(从2.4开始),返回副本,原始输入不变;

 

sorted(iterable, key=None, reverse=False)

参数说明:
iterable:是可迭代类型;
key:传入一个函数名,函数的参数是可迭代类型中的每一项,根据函数的返回值大小排序;
reverse:排序规则. reverse = True  降序 或者 reverse = False 升序,有默认值。
返回值:有序列表

 

#列表按照其中每一个值的绝对值排序

l1 = [1,3,5,-2,-4,-6]
l2 = sorted(l1,key=abs)

 

zip

 zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。

>>>a = [1,2,3]
>>> b = [4,5,6]
>>> c = [4,5,6,7,8]
>>> zipped = zip(a,b)     # 打包为元组的列表
[(1, 4), (2, 5), (3, 6)]
>>> zip(a,c)              # 元素个数与最短的列表一致
[(1, 4), (2, 5), (3, 6)]
>>> zip(*zipped)          # 与 zip 相反,*zipped 可理解为解压,返回二维矩阵式
[(1, 2, 3), (4, 5, 6)]

二、加密函数

1.base64

Python内置的base64模块可以实现base64、base32、base16、base85、urlsafe_base64的编码解码,python 3.x通常输入输出都是二进制形式,2.x可以是字符串形式。

base64模块的base64编码、解码调用了binascii模块,binascii模块中的b2a_base64()函数用于base64编码,binascii模块中的a2b_base64()函数用于base64解码。

import base64
s = 'hello, world'
base64.b64encode(bytes(s, 'ascii'))
b'aGVsbG8sIHdvcmxk'
base64.b64decode(base64.b64encode(bytes(s, 'ascii')))
b'hello, world'

2.md5

Python2.x中有md5模块,此模块调用了hashlib模块,python3.x已中将md5取掉,直接通过调用hashlib模块来进行md5。Python2.x可以直接使用unicode字符,但3.x中必须使用二进制字节串。

import hashlib
m = hashlib.md5()
m.update(b'hello, world!')
m.hexdigest()
'3adbbad1791fbae3ec908894c4963870'

3.sha1

类似于MD5

import hashlib
m = hashlib.sha1()
m.update(b'hello, world!')
m.hexdigest()
'1f09d30c707d53f3d16c530dd73d70a6ce7596a9'

三、前端加密函数

1.base64

<script type="text/javascript">
    $("#doBase64").click(
        function () {
            var test2Val = $("#test2").val();
            var bas = new Base64();
            //加密
            var hash = bas.encode(test2Val);
            $("#enbase64").val(hash);
            //解密
            var str = bas.decode(hash);
            $("#debase64").val(str);
        });
</script> 

2.md5

<script type="text/javascript">
    $("#doMd5").click(
        function () {
            var test1Val = $("#test1").val();
            var hash = hex_md5(test1Val);
            $("#md5").val(hash);
        });
</script> 

3.sha1

<script type="text/javascript">
    $("#doSha1").click(
        function () {
            var test3Val = $("#test3").val();
            var hash = hex_sha1(test3Val);
            $("#sha1").val(hash);
        });
</script>

  

 

posted @ 2019-05-24 21:02  海予心  阅读(133)  评论(0编辑  收藏  举报