随笔分类 -  python

摘要:logging的日志分为5个级别分别为debug(), info(), warning(), error(), critical() 先来看一下简单的代码: logging.basicConfig(filename='example.log', level=logging.INFO, format='%(asctime)s %(message)s', datefmt='%Y-%m-%d %H:%M... 阅读全文
posted @ 2016-03-22 11:49 黄小墨 阅读(248) 评论(0) 推荐(0)
摘要:加密算法: SHA1,SHA224, SHA256, SHA384, SHA512 , MD5 1. md5 import hashlib m = hashlib.md5() m.update(b"Hello") #加密 m.update(b"It's me") #再加密一句 print(m.digest()) #二进制 print(m.hexdigest()) #16进制... 阅读全文
posted @ 2016-03-14 00:06 黄小墨 阅读(358) 评论(0) 推荐(0)
摘要:数量词的贪婪模式与非贪婪模式 正则表达式通常用于在文本中查找匹配的字符串。Python里数量词默认是贪婪的(在少数语言里也可能是默认非贪婪),总是尝试匹配尽可能多的字符;非贪婪的则相反,总是尝试匹配尽可能少的字符。例如:正则表达式"ab*"如果用于查找"abbbc",将找到"abbb"。而如果使用非贪婪的数量词"ab*?",将找到"a"。 re.compile() >>> exp = re.... 阅读全文
posted @ 2016-03-13 23:46 黄小墨 阅读(324) 评论(0) 推荐(0)
摘要:data = [10, 4, 33, 21, 54, 3, 8, 11, 5, 22, 2, 1, 17, 13] ''' 思路:有多少个元素就循环多少次,每次循环从第一个元素开始与它后面的元素比较,如果比后面的大,就交换,第次循环最大的数就会被放在最后,那下一次循环就少遍历一位数。 ''' for j in range(len(data)-1): for i in range(len... 阅读全文
posted @ 2016-03-13 23:07 黄小墨 阅读(417) 评论(0) 推荐(1)
摘要:1. 使用\r , 让其始终在行首输出,实现进度条 import sys, time ''' 使用\r 来实现进度条的效果,\r 是光标移到行首但不换行。 假设文件大小为60,一下下载1, 下载到60就是100% ''' j = '#' for i in range(1, 61): num = str(int((i/60) * 100)) #得到百分比, int去... 阅读全文
posted @ 2016-03-13 22:53 黄小墨 阅读(836) 评论(0) 推荐(0)
摘要:1. random.random() 随机小数 >>> random.random() 0.6633889413427193 2. random.randint(1,9) 1-9之间随机生成一位数 >>> random.randint(1,9) 2 >>> random.randint(1,9) 2 >>> random.randint(1,9) 8 >>> random.... 阅读全文
posted @ 2016-03-13 22:21 黄小墨 阅读(556) 评论(0) 推荐(0)
摘要:1. datatime.date.today() 当前日期 >>> import datetime >>> datetime.date.today() datetime.date(2016, 3, 13) 2. datetime.datetime.now() 当前时间 >>> datetime.datetime.now() datetime.datetime(2016, 3, ... 阅读全文
posted @ 2016-03-13 22:10 黄小墨 阅读(300) 评论(0) 推荐(0)
摘要:import time 1. time.gmtime() 显示当前structtime,格林时间 >>> import time >>> time.gmtime() time.struct_time(tm_year=2016, tm_mon=3, tm_mday=13, tm_hour=12, tm_min=48, tm_s ec=25, tm_wday=6, tm_yday=73, ... 阅读全文
posted @ 2016-03-13 21:16 黄小墨 阅读(376) 评论(0) 推荐(0)
摘要:sys.argv 命令行参数list, 第一个元素是程序本身路径 sys.exit(n) 退出程序,退出时输入信息n sys.version 获取python解释程序的版本信息 sys.maxint 最大int值 sys.path 返回块搜索路径,初始化时使用pythonpath环境变量的值 sys.platform 返回操作系统平台名称 sys.stdout.write(‘pl... 阅读全文
posted @ 2016-03-13 20:43 黄小墨 阅读(518) 评论(0) 推荐(0)
摘要:os.getcwd() 获取当前工作目录 os.chdir(‘dirname’) 改变当前脚本的工作目录 os.curdir 返回当前目录名,即“.” os.pardir 返回当前目录的父目录名,即”..” os.makedirs(‘dirname’) 创建目录,dirname可以带路径,如果中间有目录不存在,则会一起创建 os.mkdir(‘dirname’) 创建目录,不递归 ... 阅读全文
posted @ 2016-03-13 20:05 黄小墨 阅读(302) 评论(0) 推荐(0)
摘要:接下来修改一下上一篇的login,将用户名传递给验证函数。 def login(func): #接收一个函数作为参数 def inner(name): print("用户验证通过。。。。") return func(name) #将函数返回 return inner #返回inner函... 阅读全文
posted @ 2016-02-28 23:51 黄小墨 阅读(205) 评论(0) 推荐(0)
摘要:由于函数也是一个对象,既然是对象就可以将它赋给变量,通过变量来调用该函数 def now(): print('2016-01-01') f = now #注意,这里不能带(),函数带上()表示执行函数的意思 f.() #这里带上括号了,就是执行该函数,通过变量f调用 2016-01-01 函数有一个__name__方法,... 阅读全文
posted @ 2016-02-28 23:38 黄小墨 阅读(250) 评论(0) 推荐(0)
摘要:首先我们假设一个情景:一个人做包子,一次只能做一个;来了两个吃包子的,做包子做好了包子依次分给两个吃包子的。 先上代码: import time ''' 一个做包子吃包子模型,一个做包子的,两个吃包子的,包子一个一个做,做好后依次分给两个吃包子的吃货 ''' def chibaozi(name): while True: baozi = yield pr... 阅读全文
posted @ 2016-02-28 20:33 黄小墨 阅读(898) 评论(0) 推荐(0)
摘要:迭代器是访问集合元素的一种方式。迭代器适合遍历一些巨大或无限的集合,比如几个G的文件。迭代器具有以下特点: 1. 访问者不需要关心迭代器内部的结构,只需通过__next__()方法不断取下一个内容 2. 不能随机访问集合中的某个值,只能从头到尾依次访问 3. 访问只能向前,不能后退 4. 便于循环比较大的数据集合, 节省内存 比如: with open("test.txt", 'r') as f:... 阅读全文
posted @ 2016-02-28 20:20 黄小墨 阅读(312) 评论(0) 推荐(0)
摘要:import copy copy.copy() 浅拷贝 copy.deepcopy() 深拷贝 >>> import copy >>> a1 = 123 >>> a2 = a1 >>> a3 = copy.copy(a1) >>> a4 = copy.deepcopy(a1) >>> print(id(a1),id(a2),id(a3),id(a4)) 1967314832 196731... 阅读全文
posted @ 2016-02-25 00:39 黄小墨 阅读(235) 评论(0) 推荐(0)
摘要:队列分为双向队列和单向队列: 对于双向队列,同样需要先import collections 创建队列 >>> import collections >>> d = collections.deque() >>> type(d) 向队列中添加元素 >>> d.appendleft("1") #从左边添加 >>> print(d) deque(['1']) >>> d.append('2'... 阅读全文
posted @ 2016-02-25 00:06 黄小墨 阅读(676) 评论(0) 推荐(0)
摘要:计数器:Counter 在使用计数器之前需要先 import collections >>> import collections >>> obj = collections.Counter("abcde") >>> print(obj) Counter({'b': 1, 'a': 1, 'c': 1, 'e': 1, 'd': 1}) #分别统计每个字符出现的次数 >>> ty... 阅读全文
posted @ 2016-02-24 23:19 黄小墨 阅读(1542) 评论(0) 推荐(0)
摘要:集合就是把不同的元素组织在一起,但在集合中不允许有重复的元素。 >>> a = set() #创建集合 >>> type(a) 集合中不允许出现重复的元素 >>> a.add('jack') #向集合中添加元素 >>> print(a) {'jack'} >>> a.add("jack") #再次向集合中添加同样的元素 >>> print(a... 阅读全文
posted @ 2016-02-24 22:46 黄小墨 阅读(328) 评论(0) 推荐(0)
摘要:frozenset() 定义一个不能添加修改的集合 >>> s = frozenset() >>> s.add("aaa") Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 阅读全文
posted @ 2016-02-16 01:05 黄小墨 阅读(344) 评论(0) 推荐(0)
摘要:>>> abs(-1) #绝对值,小数也可以,不能是其它字符 1 >>> all([1,2,3,4,5,6,7]) #如果传入的列表所有元素都为真,则True True >>> all([1,2,3,4,5,6,0]) #如果列表中有一个元素不为真,则False False >>> any([1,2 阅读全文
posted @ 2016-02-04 15:38 黄小墨 阅读(228) 评论(0) 推荐(0)