![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python
岚漾忆雨
这个作者很懒,什么都没留下…
展开
-
python2 与 python3的区别(逐渐发掘)
输出: python2 print — 作为一个关键字 python3 print() — 作为一个函数除法: / 号在py2中的结果是整数,在py3中的结果是浮点数 py2中如何实现整数除法的结果为浮点数呢?引入模块from __future__ import division原创 2017-01-18 10:19:23 · 577 阅读 · 0 评论 -
彻底搞清Python协程
基础协程实现方法协程的实现主要靠的是yield关键字,yield的作用挂起当前函数,将yield后面的值当做返回给调用生成器的地方;能够在唤醒生成器函数的时候,回复代码继续紧接着从上次执行的地方执行(可以接受额外的参数)def func1(n): for i in range(n): print('func1:before yield,i=%d' % i)...原创 2018-03-20 14:33:48 · 574 阅读 · 0 评论 -
Python变量查找LEGB原则
两种类型首先要知道Python的基本数据类型分为2种,可变以及不可变类型。 可变类型list dict set 不可变类型 number tuple string变量访问LEGBL-Local(function);函数内的名字空间E-Enclosing function locals;外部嵌套函数的名字空间(例如closure)G-Global(module);函数定...原创 2018-04-08 14:39:42 · 1766 阅读 · 0 评论 -
实现Linux tail -f功能
循环这个比较好像,不停的去读文件,读到就打印出来f = open('a','r')print(f.read(),end='')while True: try: print(f.read(),end='') except KeyboardInterrupt: f.close() breakCPU占用100%,不是一个...原创 2018-03-28 22:29:31 · 5361 阅读 · 3 评论 -
Python元类
python中的类type这个方法有什么用?首先纠正一个错误,type并非一个方法,而是一个类(扎心了老铁)。>>> type(dict)<class 'type'>>>> type(type)<class 'type'>>>> type(object)<class 'type'&am原创 2018-03-31 21:16:43 · 349 阅读 · 0 评论 -
Python闭包
本文需要您有Python变量查找的知识,如果您不知道,可以参考上篇博文Python变量查找LEGB原则 构成闭包的条件外函数中定义了内函数内函数使用了外函数的变量外函数的返回值是内函数的引用以下是一个简单的闭包的定义def outer(): b = 1 def inner(): #外部函数内定义了内部函数 print(b) #内部函数使用...原创 2018-04-08 21:02:36 · 257 阅读 · 0 评论 -
Python __call__ 方法
这篇博文比较简单,就不分那么多的层次。 实现了__call__方法的对象,相当于重载了(),可以实现调用功能。 egclass A(): def __call__(self,name): print("%s is running!" % name)>>> a = A()>>> a("people")people is ...原创 2018-04-01 21:52:52 · 11133 阅读 · 0 评论 -
Python实现累加函数
这个需求比较奇怪,要求实现Sum和MagaSum函数,实现以下功能Sum(1) =>1Sum(1,2,3) =>6MegaSum(1)() =>1MegaSum(1)(2)(3)() =>6实际上Sum就是Python自建的sum函数,它支持变参,变参怎么实现,自然是*args,所以很容易写出雏形: Sumdef Sum(*args): count = 0 for i in原创 2018-04-15 20:50:14 · 63368 阅读 · 1 评论 -
Python装饰器
很多时候,我们需要对已经实现的功能进行扩展,即增加新的功能,那么,最容易想到的就是就是对原有功能进行修改,这个时候免不了要修改原始代码,但面向对象编程的一个思想是开放封闭原则,即:开放:对扩展开发封闭:对已实现的功能模块已实现的功能可以被扩展,不能被修改需求来了现在有一个函数def do(msg): print(&quot;do %s...&quot; % msg)现在要...原创 2018-04-10 18:20:13 · 326 阅读 · 0 评论 -
Python推导式
Python中一共有三种推导式,做一个简述。 推导式的结构开始符号 处理结果 迭代对象 过滤条件 结束符号列表推导式读取输入的内容并转成整数。[int(x) for x in sys.stdin.readline().split() if x != '\n']开始符号:[ 结束符号:] 处理结果:int(x) 迭代对象:for x in sys.stdin.read...原创 2018-04-22 10:23:44 · 377 阅读 · 0 评论 -
Python异步IO
本文是我看了http://python.jobbole.com/88291/后加上自己的一些感想所创我们都知道,IO比CPU慢很多个数量级,而传统的IO,是阻塞型的,CPU花在等待IO上的时间很多,那么想要提高并发量,选择解决CPU在等待IO上花费的大量时间是一个比较好的出路。 先来看一个阻塞型IO的例子。同步阻塞下载程序该脚本的功能是下载10个网页。import s...原创 2018-04-24 23:53:57 · 562 阅读 · 0 评论 -
浅析WSGI
关于Python的web application,可以参考PEP-3333。另外,我还找到了一篇翻译,英文有困难的童鞋可以点这里。WSGIPython Web Server Gateway Interface,翻译过来时Python web服务器网关接口,实际上就是一种协议,我们的应用(Django,Flask)实现了WSGI,就可以配合实现了WSGI(uWSGI,gunicorn)的服务...原创 2018-05-04 13:58:49 · 3293 阅读 · 0 评论 -
mako模板基础
mako模板算是Python里面比较出色的一个模板了,它宣称有比Jinja2更快的解析速度已经更多的语法支持,本篇博客对它的使用做一个小结。安装使用pip可以方便的安装# 无需root权限,安装到用户目录下 pip install mako --user #python2pip3 install mako --user #python3使用Template通过f...原创 2018-06-03 22:01:58 · 7455 阅读 · 0 评论 -
观察者模式以及Python3的实现
何为观察者模式例子引出问题现在有一颗苹果树,以及两个人,一个是负责种树的人,一个是负责吃苹果的人。如果苹果树病了,种树的人要去治疗树,否则什么也不干;如果树结果了,吃苹果的人要去吃,否则什么也不干;那么如果苹果树的状态发生变化,种树者和食果者都要去得知树的状态,决定自己是否该行动。但是,两个人都不可能知道什么时候树产生变化,而时时刻刻去查看树的变化显然是不理想的。解决...原创 2018-03-13 16:00:46 · 1178 阅读 · 0 评论 -
Python变量赋值,浅拷贝,深拷贝区别
从C说起在C语言里,普通变量进行赋值,赋的是值,数组赋值,赋的是地址 egint a = 10;int b = a;==>a=b=10a = 20;==>a=20≠b=10char c[10] = "apple";char *d = c;==>c=d->"apple"c[0] = 'b';==>c=d=>"bpple"在Pyt..原创 2018-03-12 22:32:41 · 411 阅读 · 0 评论 -
编写Python3的C扩展
为何要编写C扩展保护核心代码解决性能瓶颈创建C一些特有的东西环境:Linux .13.9-300.fc27.x86_64Python 3.6.3开始目标这次我么来实习制作Python3的扩展,实现两个功能:求一个整数的绝对值求一个字符串的逆序用c实现这个功能:int my_abs(int n){ if(n<0) ...原创 2018-03-11 22:17:36 · 3781 阅读 · 0 评论 -
python高阶函数
map && reducemap接收一个函数名和一到多个可迭代序列。将序列的值逐个赋值到函数中处理并生成新的迭代器。#单参数函数>>> map(abs,range(-3,4))[3, 2, 1, 0, 1, 2, 3]#多参数函数>>> map(pow,range(3),[2,2,2])[0, 1, 4]reducereduce把一个函数作用在一个序列[x1, x2, x3, …]上,这个原创 2017-02-27 22:12:26 · 577 阅读 · 0 评论 -
python容器
list可变数组tuple不可变数组dict键值对(key-value)的字典(dictionary)初始化:a={‘lyt’:90}添加:a[‘zxw’]=91访问:a[key] 不存在会出错a.get(key) 不存在返回Nonea.get(key,val1) 不存在返回指定的val1 ####判断:>>>key in aTrue/False删除:a.pop(key) 存在返原创 2017-01-22 11:31:29 · 410 阅读 · 0 评论 -
学习python时遇到的函数/方法
import time time.time() 当前秒数,精确到小数点后7位import random random.random() 生成0-1之间的随机数。原创 2017-03-02 21:01:15 · 611 阅读 · 0 评论 -
python总结——高级特性
python中有许多高级的特性,可以使我们减少很多代码量。切片切片可以实现列表、字符串等的截取 写法: L=[1,2,3,4,5,6,7,8] l[初始位置(为0可省略,可为负):终止位置(不包含次位置):间隔量(默认为1)]>>> L[1, 2, 3, 4, 5, 6, 7, 8, 9]>>> L[0:1][1]>>> L[-1:0][]>>> L[-1:][9]>>> L[原创 2017-02-26 17:24:54 · 407 阅读 · 0 评论 -
Python开发web服务器——留言板
本次博客的主题:留言板,希望能给大家一些帮助。另外本篇需要以上篇《搭建简易服务器》为基础。所需知识python3flask基础操作sqlite3数据库操作基础为何是sqlite3?相较于现在大火的mysql,sqlite3有以下优点: 免安装 免配置 数据库文件易转移 语法与mysql极其相似(python库操作方式也几乎相同) 故而选sqlite作为学习web开发存储的数据库是十分方便的原创 2017-04-22 13:26:06 · 6902 阅读 · 1 评论 -
编译安装pypy,让py飞起来
什么是pypy PyPy是Python开发者为了更好的Hack Python创建的项目。此外,PyPy比CPython更灵活,易于使用和试验,以制定具体的功能在不同情况的实现方法,可以很容易实施。该项目的目标是,让PyPy比C实现的Python更为容易的适应各个项目和方便裁剪。——维基百科 简单来说,pypy解释py文件可以跑得更快安装环境linux x86_64 fedora24下载地原创 2017-06-19 17:54:14 · 14768 阅读 · 7 评论 -
使用PIL生成用户头像缩略图
引言近来在用Django做一个二手发布网站,需要实现用户注册之类,其中定然少不了用户头像了。但由于自己单枪匹马,没有一个前端大手帮忙写页面,所以也没奢求用户可以在前端自行对图片进行剪裁,想也个比较low的办法,把用户上传的图片的中心内容截出来作为图片实现from PIL import Image,ImageDraw,ImageFont,ImageFilter#创建缩略图,参数为图片的完整路径(判断是原创 2017-08-08 11:12:04 · 879 阅读 · 0 评论 -
解决系统缺失pip3
环境fedora25 已安装python2.7及python3.5 已安装python-pip及python3-pip问题开始时候pip3是能用的,但后来似乎是更换了内核或者是升级了全部软件包导致pip3失效。解决办法去python官网下载PyPi导航栏搜索pip,下载.tar.gz的源码,命令tar -zxf pip-9.0.1.tar.gz解压,进入pip目录,执行 python3原创 2017-04-13 23:02:57 · 4733 阅读 · 1 评论 -
python开发web服务器——搭建简易网站
目标用已有的丰富图片资源建一个看图网站条件开发语言:python3库:flask :一个开源的python web服务器框架 jinja2:flask默认的模板引擎编辑器:推荐pycharm一个最简单的web服务器python给我们提供了一个接口:WSGI:Web Server Gateway Interface 它只要求Web开发者实现一个函数,就可以响应HTTP请求。而不用触到TCP连接、原创 2017-04-09 12:06:19 · 43419 阅读 · 3 评论 -
python住你微信跳一跳拿高分
前言最近微信的跳一跳很火,大家看到排行榜上几百上千的分数,再看看自己百分左右的分数肯定很难过,我手残怪我吗?没关系,如果你跟着我来,也能让你分数霸榜。原理首先大家是有一个直观感受,根据两个箱子距离的不同,需要按压的时间也是不一样的,一般来说,一个大胆的猜测是按压时间和距离是成正比的。这是我们的工作原理:在跳一跳页面截图计算出初始点和终点的距离想办法测出距离与按压时间的系数想办法让手机按压指定原创 2018-01-04 20:54:33 · 3239 阅读 · 1 评论 -
Python特性学习——可迭代对象,迭代器(重新修正)
以前学习python都是马马虎虎,导致很多特性只是知道完全不会用,现在将他们重新学习可迭代对象(Iterable)简单来说,所有可以放入for循环中的对象都是可迭代对象,如列表,元组,字符串,字典…如何判断对象是否是可迭代对象?实际上,只要实现了__iter__方法的对象就是可迭代对象,这个方法用来返回迭代器本身(特别重要)。 eg:>>>...原创 2018-01-02 19:16:42 · 905 阅读 · 0 评论 -
python函数参数
Python函数参数默认参数def func0(name='lyt'): print(name)func0();-->lytfunc0('zxw')-->zxw一个坑点由于默认参数在函数定义第一次被解释器解释时,便计算出了默认参数,因此,如果默认参数是可变类型(列表,字典),则可能不会按照预期的想法进行。def func1(l = []...原创 2018-03-08 16:00:34 · 202 阅读 · 0 评论 -
哈希表的实现
哈希表的实现何为哈希表简单来说,哈希表是一种存储结构,它存储的数据是 key:value 类型的。通过空间换时间的方法来加快查询速度,具体思想是如下:使用一个较大的一维数组存储value,这个数组为Array实现一个哈希函数,使得hash(key)的值在上一步的一维数组下标范围内如此,对于任意的key:value,使用hash(key),之后就可以知道value在数组中存储的下标,存取...原创 2018-10-09 20:17:14 · 524 阅读 · 0 评论