python

Python  Asyncio模块实现的生产消费者模型的方法

2021-02-27
asyncio的关键字说明 event_loop事件循环:程序开启一个无限循环,把一些函数注册到事件循环上,当满足事件发生的时候,调用相应的协程函数 coroutine协程:协程对象,指一个使用async关键字定义的函数,它的调用不会立即执行函数,而是会返回一个协程对象,协程对象需要注册到事件循环,由事件循环调用. task任务:一个协程对象就是一个原生可以挂起的函数,任务则是对协程进一步封装,其中包含了任务的各种状态 future:代表将来执行或没有执行的任务结果.它和task上没有本质上的区

python中openpyxl和xlsxwriter对Excel的操作方法

2021-02-27
前几天,项目中有个小需求:提供Excel的上传下载功能,使用模块:openpyxl 和 xlsxwriter,这里简单记录一下. 1.简介 Python中操作Excel的库非常多,为开发者提供了多种选择,如:xlrd. xlwt.xlutils.xlwings.pandas. win32com.openpyxl.xlsxwriter等等. 其中: 前三个一般混合使用,对Excel读写操作,适合旧版Excel,仅支持 xls 文件: win32com 库功能丰富,性能强大,适用于Windows:

利用python实现汉诺塔游戏

2021-02-27
本文实例为大家分享了python实现汉诺塔游戏的具体代码,供大家参考,具体内容如下 一.汉诺塔 汉诺塔问题是一个经典的递归问题,对于这个问题,我们可以把它简单的去看成是如何用n-1去表示n. 在A,B,C三个柱子上,我们先假设A柱上只有两个盘子,那么很简单,只需要把最上面的那个盘子移到B柱上,再把A柱上最下面的盘子移到C柱上,最后把B柱的盘子移到C柱就可以了. 假设我们有n个盘子,那么可以把最下面的盘子看成是第n个盘子,而我们要做的是把上面n-1个盘子移到B柱上,再把第n个盘子移到C柱.我们可以

利用python实现后端写网页(flask框架)

2021-02-27
如何用python做后端写网页-flask框架 什么是Flask安装flask模块Hello World更深一步:数据绑定后端传入数据从前端获取数据 数据库连接screen创建后台查看删除后台 结束 什么是Flask Flask是一个使用 Python 编写的轻量级 Web 应用框架.其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 .Flask使用 BSD 授权.以下程序均在自己服务器上运行(在vs code利用ssh进行连接) 安装flask模块 首先使用pip进行

详解Django中的FBV和CBV对比分析

2021-02-27
在学习Django过程中在views.py进行逻辑处理时接触到了两种视图的书写风格,FBV和CBV FBV 指 function based views,即基于函数的视图 CBV 指 class based views,即基于类的视图 基于类的视图相较于基于函数的视图可以更加便利的实现类的继承封装等.在日常使用的时候,二者的区别主要在于对于request的请求方法的处理方式 FBV 我们通过函数传入的request的method来判断客户端发起的是什么请求,并进行相应的操作,返回相应的数据. d

python SOCKET编程基础入门

2021-02-27
一.UDP编程 1.客户端Client:发起访问的一方. 2.服务器端 3.server段编程 (1)建立socket,socket是负责具体通信的一个实例 (2)绑定,为创建的socket指派固定的端口和IP地址 (3)接受对方发送内容 (4)给对方发送反馈,此步骤为非必须步骤 4.Client端编程 (1)建立通信的socket (2)发送内容到指定服务器 (3)接受服务器给定的反馈内容 5.模拟一下这个过程 (1)我们先建立一个服务器的函数 #服务器案例 import socket ​ #

python装饰器代码深入讲解

2021-02-26
python装饰器就是用于扩展原函数功能的一种函数,这个函数特殊的地方就是它的返回值也是一个函数,使用Python装饰器的一个好处就是:在不需要修改原函数代码的情况下,给函数增加新的功能. 先来看个例子: def say(): print('Nice day') say() # 这个函数的输出为: Nice day 现在,我想在输出Nice day的前面再打印一行****************,类似下面的效果: **************** Nice day 一般情况下,我可以修改上面的代

彻底解决pip下载pytorch慢的问题方法

2021-02-26
前言   在使用pip install下载package的时候,换成国内的镜像源可解决速度慢的问题,但pytorch还是很慢,这几天尝试了一种新方法,可以彻底解决这个问题.先附上国内的一些镜像源吧: https://pypi.douban.com/simple/ # 使用豆瓣源 http://mirrors.aliyun.com/pypi/simple/ # 阿里云 https://pypi.mirrors.ustc.edu.cn/simple/ # 中国科技大学 http://pypi.dou

python 制作本地应用搜索工具

2021-02-26
一.准备工作 请确保已经安装tkinter.pyperclip.threading 二.预览 1.启动 这是程序启动的主界面. 2.运行 搜索之后的界面. 3.结果 选择应用,右击鼠标复制它的下载链接. 三.设计思路 四.源代码 本次还是将GUI和搜索引擎分离开来,只要下面两个py文件在一个文件夹,结合已有的数据库就能实现上述功能. 4.1 GUI.py from tkinter import * from tkinter import ttk from tkinter import messa

python爬虫scrapy框架之增量式爬虫的示例代码

2021-02-26
scrapy框架之增量式爬虫 一 .增量式爬虫 什么时候使用增量式爬虫: 增量式爬虫:需求 当我们浏览一些网站会发现,某些网站定时的会在原有的基础上更新一些新的数据.如一些电影网站会实时更新最近热门的电影.那么,当我们在爬虫的过程中遇到这些情况时,我们是不是应该定期的更新程序以爬取到更新的新数据?那么,增量式爬虫就可以帮助我们来实现 二 .增量式爬虫 概念: 通过爬虫程序检测某网站数据更新的情况,这样就能爬取到该网站更新出来的数据 如何进行增量式爬取工作: 在发送请求之前判断这个URL之前是不是

python lambda的使用详解

2021-02-26
1. lambda语法 lambda argument_list: expression lambda是Python预留的关键字,argument_list(参数列表)和expression(关于参数的表达式)由用户自定义. 2. lambda使用简单示例 lambda x, y: x*y:函数输入是x和y,输出是它们的积x*y lambda:None:函数没有输入参数,输出是None lambda *args: sum(args); 输入是任意个数的参数,输出是它们的和(隐性要求是输入参数必须

python re模块常见用法例举

2021-02-26
我们在用re模块时,根据不同的使用需求,我们要挑选不同的函数来匹配.考虑到大家初学python,在对于方法的学习上,小编推荐以常见的方法为主要学习目标.本篇所带来的是re.sub和re.compile两种函数,下面就这两个部分分别展开讲解,具体内容如下展开. 1.re.sub re.sub用于替换字符串中的匹配项.下面一个例子将字符串中的空格 ' ' 替换成 '-' : import re text = "JGood is a handsome boy, he is cool, clever,

python线程优先级队列知识点总结

2021-02-26
Python 的 Queue 模块中提供了同步的.线程安全的队列类,包括FIFO(先入先出)队列Queue,LIFO(后入先出)队列LifoQueue,和优先级队列 PriorityQueue. 1.说明 这些队列都实现了锁原语,能够在多线程中直接使用,可以使用队列来实现线程间的同步. 模块中的常用方法如下: Queue.qsize() 返回队列的大小 Queue.empty() 如果队列为空,返回True,反之False Queue.full() 如果队列满了,返回True,反之False Q

python常量折叠基础知识点讲解

2021-02-26
1.概念 所谓常量折叠,指的是在编译时就查找并计算常量表达式,而不是在运行时再对其进行计算,从而会使运行时更加精简和快速. 2.实例 在 Python 中,我们可以使用反汇编模块(Disassembler)获取 CPython 字节码,从而更好地了解代码执行的过程. 当使用dis模块反汇编上述常量表达式时,我们会得到以下字节码: >>> import dis >>> dis.dis("day_sec = 24 * 60 * 60") 0 LOAD_C

利用Opencv实现图片的油画特效实例

2021-02-26
一.方法原理(步骤) 1.将彩色图片转换为灰度图片(调用opencv的cvtColor()方法): 2.将图片分割为若干个小方块,后面会统一小方块中每一个像素的灰度值: 3.将0-255的灰度值划分为几个等级,并把上一步处理的结果映射到这些范围内.例如0-255一共256个灰度等级,把它划分为四个段,即每段有64个灰度等级(0-63为第一段,64-127为第二段,128-191为第三段,192-255为第四段): 4.找到每个小方块中,最多灰度等级的所有像素,并求这些像素的均值: 5.用上一步得

python FTP编程基础入门

2021-02-26
一.FTP工作流程 1.客户端链接远程主机上的FTP服务器 2.客户端输入用户名和密码(或者"anonymous"和电子邮件地址) 3.客户端和服务器进行各种文件传输和信息查询操作 4.客户端从远程FTP服务器退出,结束传 二.FTP文件表示 1.分三段表示FTP服务器上的文件 2.HOST:主机地址,类似于ftp.mozilla.org,以ftp开头 3.DIR:目录,表示文件所在本地的地址,例如:pub/andorid/focus/1.1 4.File:文件名称,例如:Klar-1

详解python的xlwings库读写excel操作总结

2021-02-26
一.总结(点击显示或隐藏总结内容) 一句话总结: xlwings 是 Python 中操作Excel的一个第三方库,支持.xls读写,.xlsx读写,操作非常简单,功能也很强大 1.xlwings 中的逻辑:应用->工作簿->工作表->范围 对应的代码? 应用:一个应用(一个xlwings程序):app = xw.App(visible=True, add_book=False) 工作簿(book):excel文件(excel程序):wb = app.books.add() 工作表(sh

如何用Python进行时间序列分解和预测

2021-02-26
预测是一件复杂的事情,在这方面做得好的企业会在同行业中出类拔萃.时间序列预测的需求不仅存在于各类业务场景当中,而且通常需要对未来几年甚至几分钟之后的时间序列进行预测.如果你正要着手进行时间序列预测,那么本文将带你快速掌握一些必不可少的概念. 目录 什么是时间序列? 如何在Python中绘制时间序列数据? 时间序列的要素是什么? 如何分解时间序列? 经典分解法 如何获得季节性调整值? STL分解法 时间序列预测的基本方法: Python中的简单移动平均(SMA) 为什么使用简单移动平均? Pyth

python中使用asyncio实现异步IO实例分析

2021-02-26
1.说明 Python实现异步IO非常简单,asyncio是Python 3.4版本引入的标准库,直接内置了对异步IO的支持. asyncio的编程模型就是一个消息循环.我们从asyncio模块中直接获取一个EventLoop的引用,然后把需要执行的协程扔到EventLoop中执行,就实现了异步IO. 2.实例 import asyncio @asyncio.coroutine def wget(host): print('wget %s...' % host) connect = asynci

pytorch __init__、forward与__call__的用法小结

2021-02-26
1.介绍 当我们使用pytorch来构建网络框架的时候,也会遇到和tensorflow(tensorflow __init__.build 和call小结)类似的情况,即经常会遇到__init__.forward和call这三个互相搭配着使用,那么它们的主要区别又在哪里呢? 1)__init__主要用来做参数初始化用,比如我们要初始化卷积的一些参数,就可以放到这里面,这点和tf里面的用法是一样的 2)forward是表示一个前向传播,构建网络层的先后运算步骤 3)__call__的功能其实和fo