python杂记
狡猾的皮球
qq871245007,有问题一起交流
展开
-
python获取上周一的日期
一.需求不论今天是周几,固定获取上周一的日期二.代码import datetimedef get_last_monday(today=None): """ 获取上周一的日期,不传today则用今天的日期 """ if not today: today = datetime.datetime.now() weekday = today.weekday() return today - datetime.timedelta(da原创 2021-03-22 15:09:17 · 2586 阅读 · 0 评论 -
python教你用骰子拼图
一、前言最近看到抖音上有人用骰子拼照片。仔细一想,这人肯定是借助了什么工具,把预览图生成好之后再拼的。我灵光一闪,赶紧用python写一个骰子拼图仿真程序,并且自己也买了3500个骰子拼了一张图,哈哈哈哈~二、效果三、代码地址代码我已经在github开源了,喜欢的可以点个star,转载请注明出处:https://github.com/zxf20180725/dice_jigsawmain.py是启动文件,直接运行就行了。如果想用自己的图片(一定要是黑白图片,可以用ps的去色功能,原创 2021-02-10 18:37:26 · 2753 阅读 · 4 评论 -
python找出仙剑二地图遮挡层图片在大地图中的坐标
使用方法:把脚本放在图片目录下,输入图片编号即可(请手动删除全黑图块)import osimport randomimport cv2import pygamedef get_small_images(dir_path, map_id): """ 获取小图文件 """ files = [] for file_name in os.li...原创 2019-01-04 16:21:05 · 560 阅读 · 0 评论 -
python装饰器实现函数注册和类装饰
一、使用装饰器实现回调函数注册class FunctionManager: def __init__(self): print("初始化") self.functions = [] def execute_all(self): for func in self.functions: func() ...原创 2018-09-25 17:05:08 · 4426 阅读 · 0 评论 -
python异步实现定时任务和周期任务
一.如何调用def f1(arg1, arg2): print('f1', arg1, arg2)def f2(arg1): print('f2', arg1)def f3(): print('f3')def f4(): print('周期任务', int(time.time()))timer = TaskTimer()# 把任务加入...原创 2018-08-23 18:23:58 · 6979 阅读 · 0 评论 -
Django获取全局request
一.问题描述 某些情景下,我们需要在任意函数内获取request,但是django并没有给我们提供获取全局request的方法。 二.解决思路 当request到达视图函数前,会经过中间件拦截。我们可以自己写一个中间件,并设计成单例模式。然后在中间件中取得当前request对象,并保存在中间件对象中。 三.代码实现middleware.py:from ...原创 2018-08-03 14:59:30 · 2569 阅读 · 5 评论 -
python跳出双层for循环
一.问题描述 在二维数组的遍历中,我们经常使用双层for循环。在某些时候,我们并不需要遍历整个二维数组。当条件满足时就应该终止for循环。但是,直接在内层循环中break并不会让外层循环也终止。 二.解决方案 使用for...else...语法解决。for i in range(5): for j in range(5): print(i,...原创 2018-08-06 14:53:07 · 15438 阅读 · 0 评论 -
python设计tcp数据包协议类
一.问题描述 在tcp编程中,最需要解决的就是粘包分包问题。所以,我们需要在每个数据包前面加上数据包的长度用以分割粘连的包。 二.包结构的设计 包的组成:包长度+数据域 包长度:用4个字节存储数据域长度,数据域长度即为其所占字节数 数据域:由若干个变量组成,如果是定长变量则不用加变量长度 定长变量:我们人为规定,传输中的int为4字节定长...原创 2018-08-10 09:58:36 · 6404 阅读 · 1 评论 -
python以16进制打印字节数组
一.问题描述 如果直接用print打印bytes的话,有时候会直接显示ascii对应的字符,看起来很蛋疼。 二.运行效果上面一行是直接用print打印的结果,很明显,第一个字节0x7b就被转换成'{'了。 三.代码 那么,如何输入上图中最后一行的格式呢,很简单:def print_hex(bytes): l = [hex(int(i)) f...原创 2018-08-09 18:04:33 · 20541 阅读 · 0 评论 -
python实现socketserver处理多连接
一.运行效果 运行效果和我上一篇文章是一模一样的:https://blog.csdn.net/qq_39687901/article/details/81531101 二.开发思路 socketserver就是对socket进行了轻量级的封装,socketserver的实现原理与我上一篇文章基本相同。 三.服务端代码import socketserver...原创 2018-08-09 14:52:36 · 6418 阅读 · 1 评论 -
python实现socket+threading处理多连接
一.运行效果 先说两句,之前我在网上找的相关文章标题上写的是处理多连接,尼玛,全是假的。网上那些,根本不能异步处理多连接,不能主动给客户端发消息。在服务端控制台输入1,查看在线人数。给指定客户端发送消息。二.开发思路 以下说的是服务端开发思路,客户端比较简单就不说了。 首先,需要明白的是socket的accept和recv这两个方法是阻塞...原创 2018-08-09 10:14:42 · 29498 阅读 · 38 评论 -
python实现字符串加密成纯数字
说明: 该加密算法仅仅是做一个简单的加密,安全性就不谈了,哈哈. 算法流程: 1.字符串以utf8编码成字节数组2.把每一个字节转换成十进制数字字符串('0'~'255')3.在每个十进制数字字符串之前加上一个长度位(长度位固定只占1个字符)4.进行数字替换,例如:(0-1,1-9,2-3,3-8,4-7,5-6,6-2,7-4,8-5,9-0) 代...原创 2018-06-21 20:34:00 · 8230 阅读 · 0 评论 -
python3.6实现的A星算法
A星算法原理: 原理我就不再赘述,可以参考这篇博客https://blog.csdn.net/hitwhylz/article/details/23089415 最近用js写了一遍,用的同样的算法,需要js代码的看这里:https://blog.csdn.net/qq_39687901/article/details/85697127代码实现: 首先添加两个通用类...原创 2018-06-20 22:28:40 · 20693 阅读 · 27 评论 -
python列表关键词参数的坑
先看运行结果:可以得出结论,函数中ls形参其实已经创建了一个列表对象,并且永久与函数绑定在一起(并不会每次调用就重新创建)。原创 2018-05-08 09:06:48 · 22863 阅读 · 0 评论