![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python
文章平均质量分 75
showgea
这个作者很懒,什么都没留下…
展开
-
celery概述
1. 问题抛出我们在做网站后端程序开发时,会碰到这样的需求:用户需要在我们的网站填写注册信息,我们发给用户一封注册激活邮件到用户邮箱,如果由于各种原因,这封邮件发送所需时间较长,那么客户端将会等待很久,造成不好的用户体验.那么怎么解决这样的问题呢?我们将耗时任务放到后台异步执行。不会影响用户其他操作。除了注册功能,例如上传,图形处理等等耗时的任务,都可以按照这种思路来解决。 如何实现异步执行任务呢?我们可使用celery。celery除了刚才所涉及到的异步执行任务之外,还可..原创 2020-11-02 12:19:25 · 14426 阅读 · 2 评论 -
Django框架
一、Django框架简介与环境搭建Python的WEB框架有Django、Tornado、Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM、模型绑定、模板引擎、缓存、Session等诸多功能。本文笔者使用的版本为1.8.41、MVC模型先来了解一下另一种设计模式MVC,其核心思想是分工、解耦,让不同的代码之间降低耦合,增强代码的可扩展性和可移植性,实现向后兼容。MVC模式的图解 M为Model,主要是对数据库的交互,对数据库中的数据进行原创 2020-09-07 17:19:52 · 1447 阅读 · 0 评论 -
Python property
property 应用场景需要限制对象属性的设置和获取。比如学生分数为只读,或者在设置学生分数的时候有范围限制property() 参数property()的语法为:property(fget=None, fset=None, fdel=None, doc=None)fget(可选)-用于获取属性值的方法。默认为None。 fset(可选)-用于设置属性值的方法...原创 2020-04-15 16:34:43 · 196 阅读 · 0 评论 -
Python GIL
Python的GIL是什么鬼,多线程性能究竟如何转载作者:卢钧轶(cenalulu) 本文原文地址:http://cenalulu.github.io/python/gil-in-python/GIL是什么首先需要明确的一点是GIL并不是Python的特性,它是在实现Python解析器(CPython)时所引入的一个概念。就好比C++是一套语言(语法)标准,但是可以用不同的编译器来...原创 2020-04-05 15:13:44 · 315 阅读 · 0 评论 -
python time库的使用
1、time库概述time库是Python中处理时间的标准库计算机时间的表达 提供获取系统时间并格式化输出功能 提供系统级精确计时功能,用于程序性能分析time库包含三类函数 时间获取:time() ctime() gmtime() 时间格式化:strftime() strptime() 程序计时:sleep() perf_counter()2、时间获取...原创 2018-09-10 14:30:03 · 746 阅读 · 0 评论 -
python os库及第三库安装脚本
目录一、os库基本介绍1、路径操作2、进程管理3、环境参数二、第三方库安装脚本一、os库基本介绍os库提供通用的、基本的操作系统交互功能,包括windows、Mac os、linuxos库是python标准库,包含几百个函数常用路径操作、经常管理、环境参数等几类路径操作:os.path子库,处理文件路径及信息 进程管理:启动系统中其他程序 环境参数:获得...原创 2018-09-10 11:13:02 · 14549 阅读 · 0 评论 -
tesseract 安装及使用
1. 安装tesseractOCR,即Optical Character Recognition,光学字符识别,是指通过扫描字符,然后通过其形状将其翻译成电子文本的过程。对于图形验证码来说,它们都是一些不规则的字符,这些字符确实是由字符稍加扭曲变换得到的内容。tesseract下载地址:https://digi.bib.uni-mannheim.de/tesseract/进入下载页面,...原创 2018-09-12 09:49:43 · 214302 阅读 · 57 评论 -
体育竞技分析 实例
import randomdef printSummary(winA, winB): n = winA + winB print('A胜利了{}场,占比{:0.1%}'.format(winA, winA/n)) print('B胜利了{}场,占比{:0.1%}'.format(winB, winB/n))def gameOver(a, b): return ...原创 2018-09-06 11:27:06 · 1576 阅读 · 0 评论 -
文本词频统计
1、统计纯英文文本步骤:1、打开要统计的文本,只读模式即可,'r',并获取所有内容,赋值给变量txt;2、对获取的文本内容,去除文本中所有符号,并以空格代替,然后返回去除符号后的文本;3、对文本内容进行切片,默认以空格切,切完得到的所有单词赋值给变量words;4、创建一个空字典counts,遍历words,将出现在words中的单词添加到counts中,counts中第一次添...原创 2018-08-30 11:45:10 · 8686 阅读 · 3 评论 -
正则表达式
匹配单个字符\d 匹配数字\D 匹配非数字\s 匹配空格、tab\S 匹配非空格、tab\w 匹配小写字母、大写字母、数字\W 匹配非小写字母、大写字母、数字. 匹配任意一个字符(除了\n)[] 匹配[]中列举的字符例:'00\d'可以匹配'007',但无法匹配'00A'; '\d\d\d'可以匹配'010'; '\w\w\d'可以匹配'...原创 2018-11-27 11:41:12 · 195 阅读 · 0 评论 -
python selenium 常用断言的使用方法
assertEqual(a,b,[msg='测试失败时打印的信息']): 断言a和b是否相等,相等则测试用例通过。 assertNotEqual(a,b,[msg='测试失败时打印的信息']): 断言a和b是否相等,不相等则测试用例通过。 assertTrue(x,[msg='测试失败时打印的信息']): 断言x是否True,是True则测试用例通过。 assertFalse(x,[msg=...原创 2018-11-27 20:13:23 · 10543 阅读 · 0 评论 -
python selenium 时间日期控件处理
把时间控件,都当成一个普通的input框处理1. 可以直接输入值,没有readonly属性的,直接输入值就可以了2. 有readonly属性的,先用js去掉readonly属性,然后直接输入日期文本内容:3. 使用js方法输入日期:# coding:utf-8from selenium import webdriverimport timedriver = web...转载 2018-04-13 15:21:34 · 4844 阅读 · 0 评论 -
局部变量和全局变量
局部变量局部变量是在函数内部定义的变量,只能在函数内部使用 函数执行结束后,函数内部的局部变量,会被系统回收 不同的函数,可以定义相同的名字的局部变量,但是各用各的不会产生影响局部变量的作用在函数内部使用,临时保存函数内部需要使用的数据def demo1(): # 定义一个局部变量 num = 10 print("%d" % num)def de...原创 2019-01-22 16:34:15 · 295 阅读 · 0 评论 -
python smtp 发送邮件 带附件
import smtplibfrom email.mime.text import MIMETextfrom email.mime.multipart import MIMEMultipartdef send_email(): # 依次为:邮件服务器地址、端口、发件人、授权码、接收人 server = "smtp.163.com" port = 465 ...原创 2019-06-03 17:02:11 · 335 阅读 · 0 评论 -
使用socket创建一个简单的web服务器
import reimport socket# 定义一个服务函数为客户端服务def server(new_socket): # 接收请求并解码 request = new_socket.recv(1024).decode("utf-8") # 将请求分割成行 request_lines = request.splitlines() # 使用正则匹...原创 2019-06-18 11:24:30 · 1455 阅读 · 0 评论 -
threading、multiprocessing、gevent的简单使用
1、threadingimport reimport socketimport threading# 定义服务函数为客户端服务def server(new_socket): # 接收请求并解码 request = new_socket.recv(1024).decode("utf-8") # 将请求分割成行 request_lines = requ...原创 2019-06-18 17:23:00 · 508 阅读 · 0 评论 -
python wordcloud生成词云
1、安装使用wordcloud生成词云,如果是中文文本,需要手动安装三个第三方库,分别为wordcloud、jieba、scipy。jieba库用来对中文进行分词处理,scipy库用来生成词云图片。如果对这两个库不熟悉也没关系,直接按照代码,安装之后import使用即可。windows下分别在命令行输入以下命令进行安装:pip install wordcloudpip instal...原创 2018-09-04 16:55:33 · 6374 阅读 · 0 评论 -
join()方法
Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。语法join()方法语法:str.join(sequence)参数sequence -- 要连接的元素序列。返回值返回通过指定字符连接序列中元素后生成的新字符串。实例以下实例展示了join()的使用方法:>>> ls = ['python','hello...原创 2018-09-04 12:08:08 · 8203 阅读 · 0 评论 -
python学习记录——递归
递归(Recursion),在数学与计算机科学中,是指在函数的定义中使用函数自身的方法。在使用递归时,需要注意以下几点:递归就是在过程或函数里调用自身 必须有一个明确的递归结束条件,称为递归出口。注意: 切勿忘记递归出口,避免函数无限调用。实例使用递归实现阶乘计算:使用迭代实现现在,使用迭代来实现。使用迭代来实现汉诺塔游戏汉诺塔主要是有三个塔座X,Y,Z...原创 2018-07-22 14:00:24 · 283 阅读 · 0 评论 -
python学习记录——函数
1、定义一个函数你可以定义一个由自己想要功能的函数,以下是简单的规则:函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。 任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。 函数内容以冒号起始,并且缩进。 return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的re...原创 2018-07-21 13:32:43 · 198 阅读 · 0 评论 -
python学习记录——序列
1、常见序列类型包括字符串(普通字符串和unicode字符串),列表和元组。所谓序列,即成员有序排列,可通过下标访问。2、序列常用的内置方法: list(),把一个可迭代对象转换为列表 tuple(),把一个可迭代对象转换为元组 str(obj),把obj对象转换为字符串 sorted()函数对所有可迭代的对象进行排序操作...原创 2018-07-19 13:04:45 · 214 阅读 · 0 评论 -
python学习记录——文件操作
打开文件的模式有三种: r,只读模式(默认)。 w,只写模式。(不可读;不存在则创建;存在则删除内容;因为会清空覆盖原有文件的内容,一定要慎用) a,追加模式。(可读; 不存在则创建;存在则只追加内容) 注意最后要记得关闭文件:f.close()python只能将字符串写入到文本文件。要将数值数据存储到文本本件中,必须先试用函数str()将其转换为字符串格式。...原创 2018-07-24 12:42:42 · 251 阅读 · 0 评论 -
字符串常用内置函数、格式化符号含义及转义字符含义
1、字符串常用内置函数及注释:capitalize() 把字符串的第一个字符改为大写 casefold() 把整个字符串的所有字符改为小写 center(width) 将字符串居中,并使用空格填充至长度 width 的新字符串 count(sub[, start[, end]]) 返回 sub 在字符串里边出现的次数,start 和 end 参数表示范围,可...原创 2018-07-18 16:25:57 · 528 阅读 · 0 评论 -
python中字典、集合
一、字典1、字典的增删改查字典是一种映射关系容器模型,新增一个字典可以直接使用花括号({})赋值。创建空字典使用花括号({})>>> dict1 = {1:'one', 2:'two', 3:'three'}>>> dict1{1: 'one', 2: 'two', 3: 'three'}>>> dict2 = {}; ty...原创 2018-07-23 23:38:12 · 237 阅读 · 0 评论 -
python学习记录——列表、元组
一、列表1、使用方括号[]创建列表,可以为空、同一类型(数字、字符串等)、可以混合。数组下标从0开始。2、列表中增加元素方法append()方法,参数为准备插入列表的元素extend()方法,参数为列表insert()方法有两个参数,第一个参数插入参数的索引值,第二个参数为插入元素3、从列表中获取元素,跟数组一样,通过元素的索引值从列表获取单个元素,注意,列表索引值从0...原创 2018-07-18 13:00:58 · 237 阅读 · 0 评论 -
python学习记录——循环
一、循环1、循环的语句如下:2、条件表达式(三元操作符)。x=4,y=5,下图if和else语句先判断x<y,然后执行small=x;三元操作符是一样的效果。3、断言,截取小甲鱼课程截图:基本用法如下图:4、while循环,如下图。当条件为True时,会一直执行循环体,直到条件为False:5、for循环,语法如下图,循环规则和while是一样的。...原创 2018-07-17 22:27:55 · 501 阅读 · 0 评论 -
list 切片
list1 = [1,2,3,4,5]# 列表第一个元素下标索引为0>>>list1[0]1# 列表最后元素下标索引为-1>>> list1[-1]5# 从下标为2的元素开始切割,返回结果会包含下标2的元素>>> list1[2:][3, 4, 5]# 切割到下标为2,返回结果不包含下标2的元素>>&...原创 2018-08-11 23:13:49 · 5049 阅读 · 0 评论 -
迭代器和生成器
Python的数据结构:容器(container)、可迭代对象(iterable)、迭代器(iterator)、生成器(generator)、列表/集合/字典推导式(list,set,dict comprehension)的关系如下图。容器(container)容器是一种把多个元素组织在一起的数据结构,容器中的元素可以逐个地迭代获取,可以用in,not in关键字判断元素是否包含在容...原创 2018-08-07 18:05:52 · 153 阅读 · 0 评论 -
基本统计值计算
def getNum(): list1 = [] num = input('请输入一个数字,回车退出:') while num != '': list1.append(eval(num)) num = input('请输入一个数字,回车退出:') return list1def mean(numbers): sum =...原创 2018-08-29 17:12:41 · 1426 阅读 · 0 评论 -
科赫雪花
import turtledef koch(length, n): if n == 0: turtle.fd(length) else: for i in [0, 60, -120, 60]: turtle.left(i) koch(length/3, n-1)def main(): ...原创 2018-08-29 11:52:54 · 1884 阅读 · 0 评论 -
Python turtle库使用 及七段数码管绘制
turtle库介绍Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形。1、Turtle中的turtle.setup()函数用于启动一个图形窗口,它有四个参数turtle.setup(width, height, star...原创 2018-08-24 12:13:35 · 5705 阅读 · 2 评论 -
turtle 一箭穿心 代码
import turtledef curvemove():#定义函数画圆,200度 for i in range(100): turtle.right(2) turtle.forward(2) turtle.speed(10) turtle.color('red',('#F05B72'))#设置画笔及填充颜色 tur...原创 2018-08-28 10:53:47 · 8891 阅读 · 0 评论 -
天天向上的力量
r = (1+0.01)**365def dayup(df): s = 1 for i in range(366): if i%7 in [0, 6]: s = s * (1 - 0.01) else: s = s * (1 + df) return seffort = 0.01w...原创 2018-08-22 11:37:03 · 776 阅读 · 0 评论 -
文本进度条
使用sleep()模拟一个持续的进度import timen = 30print('执行开始'.center(n//2, '-'))start = time.perf_counter()for i in range(n+1): a = '*' * i b = '-' * (n - i) c = (i/n) * 100 dur = time.perf_...原创 2018-08-22 11:23:06 · 856 阅读 · 0 评论 -
python format格式化函数
Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。基本语法是通过 {} 和 : 来代替以前的 % 。 format 函数可以接受不限个参数,位置可以不按顺序。字符串格式化使用.format()方法,用户如下:<模板字符串>.format.(,逗号分隔的参数)通过位置和关键字>>> '...原创 2018-08-22 10:56:04 · 2784 阅读 · 0 评论 -
python split()函数
split():拆分字符串。针对字符串中包含相同符号,可以进行一次或多次切割#使用默认分隔符>>> s = "https://www.baidu.com/">>> s'https://www.baidu.com/'>>> s.split()['https://www.baidu.com/']#以"."为分隔符&a转载 2018-04-03 12:01:07 · 326 阅读 · 0 评论 -
python学习记录——变量、字符串、数据类型、运算符
一、变量1、使用变量之前,需要先赋值2、变量名可以包括字母、数字、下划线,不能以数字开头3、变量名应做到见名知意,如:month='July'二、字符串1、字符串就是引号内的一切东西2、转译符号的使用:如打印字符串:let's go:>>>'let\'s go'3、原始字符串,原始字符串的使用是在字符串前面加一个英文字母r,但最后一行不能带"\"符...原创 2018-07-17 12:58:30 · 290 阅读 · 0 评论