02 2018 档案
摘要:# -*- coding: utf-8 -*- import hashlib ''' 加密解密 ''' #MD5是最常见的摘要算法,速度很快,生成结果是固定的128 bit字节, # 通常用一个32位的16进制字符串表示。 md5 = hashlib.md5() update = md5.update('hhhhhaaa') print(md5.hexdigest()) #SHA1的结果是160...
阅读全文
摘要:# -*- coding: utf-8 -*- import base64 from collections import namedtuple, deque, defaultdict, OrderedDict,Counter ''' tuple可以表示不变集合,例如,一个点的二维坐标就可以表示成: namedtuple是一个函数,它用来创建一个自定义的tuple对象,并且规定了tuple元素...
阅读全文
摘要:http://blog.csdn.net/sinat_29581293/article/details/52126519
阅读全文
摘要:借鉴 https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001408244819215430d726128bf4fa78afe2890bec57736000。
阅读全文
摘要:https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/0013868325264457324691c860044c5916ce11b305cb814000
阅读全文
摘要:TCP: http://www.cnblogs.com/likeyou1/p/8435120.html UDP: http://www.cnblogs.com/likeyou1/p/8435195.html
阅读全文
摘要:UDP则是面向无连接的协议。 数据包就是这种形式。比如:短信。只要数据发送出去。无需去管对方是否接收到。 使用UDP协议时,不需要建立连接,只需要知道对方的IP地址和端口号,就可以直接发数据包。但是,能不能到达就不知道了。 虽然用UDP传输数据不可靠,但它的优点是和TCP比,速度快,对于不要求可靠到
阅读全文
摘要:Socket是网络编程的一个抽象概念。Socket需要知道目标计算机的IP地址和端口号,再指定协议类型。 网络编程需要对客户端和服务器之间数据传输进行相关了解。 客户端: 大多数连接都是可靠的TCP连接。创建TCP连接时,主动发起连接的叫客户端,被动响应连接的叫服务器。 服务器: 服务器进程首先要绑
阅读全文
摘要:要编写程序来发送和接收邮件,本质上就是: 编写MUA把邮件发到MTA; 编写MUA从MDA上收邮件。 发邮件时,MUA和MTA使用的协议就是SMTP:Simple Mail Transfer Protocol,后面的MTA到另一个MTA也是用SMTP协议。 收邮件时,MUA和MDA使用的协议有两种:
阅读全文
摘要:在程序运行的过程中,所有的变量都是在内存中,比如,定义一个dict: 序列化就可以把序列化后的内容写入磁盘,或者通过网络传输到别的机器上。 反过来,把变量内容从序列化的对象重新读到内存里称之为反序列化,即unpickling。 Python提供两个模块来实现序列化:cPickle和pickle。这两
阅读全文
摘要:操作文件和目录: 操作文件和目录的函数一部分放在os模块中,一部分放在os.path模块中 os.path.join()函数:合并路径 os.path.splitext()可以直接让你得到文件扩展名 shutil模块提供了copyfile()的函数,你还可以在shutil模块中找到很多实用函数,它们
阅读全文
摘要:# encoding=utf-8 import sys reload(sys) sys.setdefaultencoding('utf-8') import os dd=None for rt, dirs, files in os.walk(u'E:\对比\web.deploy-1.0-SNAPSHOT\BOOT-INF\lib'): dd = files for rt, dirs,...
阅读全文
摘要:IO在计算机中指Input/Output,也就是输入和输出。由于程序和运行时数据是在内存中驻留,由CPU这个超快的计算核心来执行,涉及到数据交换的地方,通常是磁盘、网络等,就需要IO接口。 只要进行数据交换,网络传输等行为都会产生io操作。 同步IO:CPU等着,也就是程序暂停执行后续代码,等100
阅读全文
摘要:Python内置的“文档测试”(doctest)模块可以直接提取注释中的代码并执行测试。 doctest严格按照Python交互式命令行的输入和输出来判断测试结果是否正确。只有测试异常的时候,可以用'''表示中间一大段烦人的输出. 模块正常导入时,doctest不会被执行。只有在命令行运行时,才执行
阅读全文
摘要:个人在工作中用的不多。 编写单元测试,我们需要引入Python自带的unittest模块: 编写单元测试类: unittest中有很多方法测试类中的属性的方法。 setUp与tearDown 可以在单元测试中编写两个特殊的setUp()和tearDown()方法。这两个方法会分别在每调用一个测试方法
阅读全文
摘要:使用__slots__ 正常情况下,当我们定义了一个class,创建了一个class的实例后,我们可以给该实例绑定任何属性和方法,这就是动态语言的灵活性。先定义class: >>> class Student(object): ... pass ... 然后,尝试给实例绑定一个属性: >>> s =
阅读全文
摘要:在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类、父类或超类(Base class、Super class)。 比如,我们已经编写了一个名为student的class,有一个run()方法可以
阅读全文
摘要:内部属性不被外部访问,可以把属性的名称前加上两个下划线__,在Python中,实例的变量名如果以__开头,就变成了一个私有变量(private),只有内部可以访问,外部不能访问 改完后,对于外部代码来说,没什么变动,但是已经无法从外部访问实例变量.__name和实例变量.__score了: 这样就确
阅读全文
摘要:面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想。OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。 面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行。为了简化程序设计,面向过程把函数继续切分为子函数,即
阅读全文
摘要:关键字lambda表示匿名函数,冒号前面的x表示函数参数。 匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果。 用匿名函数有个好处,因为函数没有名字,不必担心函数名冲突。此外,匿名函数也是一个函数对象,也可以把匿名函数赋值给一个变量,再利用变量来调用该函数:
阅读全文
摘要:排序算法:对列表中的元素进行按照指定规则排序。 sorted()函数也是一个高阶函数,它还可以接收一个比较函数来实现自定义的排序。比如,如果要倒序排序,我们就可以自定义一个reversed_cmp函数: 传入自定义的比较函数reversed_cmp,就可以实现倒序排序: 对字符串进行排序,是按照AS
阅读全文
摘要:Python内建的filter()函数用于过滤序列。 和map()类似,filter()也接收一个函数和一个序列。 和map()不同的时,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。
阅读全文
摘要:reduce把一个函数作用在一个序列[x1, x2, x3...]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算,其效果就是: reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4) 可以将其看成是将一个列表中所有
阅读全文
摘要:Python内建了map()和reduce()函数。 map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回。 list [1, 2, 3, 4, 5, 6, 7, 8, 9] 将列表中每一个数值加2 可以用map()函数来实现:
阅读全文
摘要:变量可以指向函数 以Python内置的求绝对值的函数abs()为例,调用该函数用以下代码: 结论:函数本身也可以赋值给变量,即:变量可以指向函数。 如果一个变量指向了一个函数,那么,可否通过该变量来调用这个函数?用代码验证一下: 成功!说明变量f现在已经指向了abs函数本身。 函数名也是变量 那么函
阅读全文
摘要:函数式编程就是一种抽象程度很高的编程范式,纯粹的函数式编程语言编写的函数没有变量,因此,任意一个函数,只要输入是确定的,输出就是确定的, 这种纯函数我们称之为没有副作用。而允许使用变量的程序设计语言,由于函数内部的变量状态不确定,同样的输入,可能得到不同的输出,因此,这种函数是有副作用的。 函数式编
阅读全文
摘要:在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。 举个例子,我们来计算阶乘n! = 1 x 2 x 3 x ... x n,用函数fact(n)表示,可以看出: fact(n) = n! = 1 x 2 x 3 x ... x (n-1) x n = (n-1)!
阅读全文
摘要:Python的函数具有非常灵活的参数形态,既可以实现简单的调用,又可以传入非常复杂的参数。 默认参数一定要用不可变对象,如果是可变对象,运行会有逻辑错误! 要注意定义可变参数和关键字参数的语法: *args是可变参数,args接收的是一个tuple; **kw是关键字参数,kw接收的是一个dict。
阅读全文
摘要:切片:进行复制 不再改变原先的数据的基础上,对数据进行操作: 对这种经常取指定索引范围的操作,用循环十分繁琐,因此,Python提供了切片(Slice)操作符,能大大简化这种操作。 对应上面的问题,取前3个元素,用一行代码就可以完成切片: 迭代: 1.如何判断一个对象是可迭代对象呢?方法是通过col
阅读全文