
Python学习笔记
文章平均质量分 71
Python从小白到大白
Rabbit_Gray
这个作者很懒,什么都没留下…
展开
-
解决python安装包需要Microsoft C++ Build Tools问题
python在安装一些需要从C源码编译的包的时候会报错说你没有 Microsoft Visual C++ 14.0或者更高版本。error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/如果不想安装庞大的VS,可以选择只安装编译器组件Micr原创 2021-11-16 13:33:38 · 17889 阅读 · 22 评论 -
Python中的 for循环 到底是个啥?迭代协议、可迭代对象、迭代器对象梳理
一个类的定义如果包含了__iter__() 方法,那么这个类创建出来的对象就叫做一个Iterable对象。(可迭代的对象)一个类的定义如果包含了__iter__()方法和__next__()方法,那么这个类创建出来的对象就叫做一个Iterator对象。(迭代器对象)一个类的定义如果包含了__iter__() 方法,那么这个类创建出来的对象自动成为Iterable类的一个实例。一个类的定义如果包含了__iter__()方法和__next__()方法,那么这个类创建出来的对象Iterator对象的一个实例原创 2021-01-12 18:31:41 · 302 阅读 · 0 评论 -
利用python自动解析摩斯电码音频文件
问题来源做CTF的MISC题的时候,遇到一个题,给了一个音频文件,下载下来在耳机中一听,显然是在右声道里边隐藏了一段摩斯电码。以往都是手动一点一点记录下摩斯电码,然后丢进摩斯电码转换程序里得到加密信息,可是手动记录一不留神就有可能出错,有没有自动化方法呢?自动化方法1. 预处理音频把音频文件的右声道音轨的摩斯电码部分提取出来,保存成一个新的音频文件。2. 观察摩斯电码音频的实时频谱图我们将音频数据分成许多小部分(这里以512字节为个一小部分),对于这一小部分的时序数据经过傅里叶变换变为频域原创 2020-05-17 18:31:41 · 13424 阅读 · 12 评论 -
多线程发号器:一个例子理解多线程中变量共享带来的混乱【附解决办法:线程锁的讲解】
前言程序中使用多线程技术是充分利用CPU的好办法,利用好的话可以大大加速程序的任务处理效率,但是一些细节不注意的话,就会造成一些隐藏的问题。场景我们现在在服务器上跑着一个程序,这个程序是用来处理新用户注册的,由于我们的网站很受欢迎,用户注册量超高速增长,会有很多用户在同一时间点上注册。为了减少用户等待时间,我们在注册程序里使用多线程技术来同时服务多个用户的注册请求。每个用户注册的时...原创 2020-03-14 20:20:47 · 271 阅读 · 0 评论 -
游戏素材处理:利用Python把多个序列帧合并为一个大序列图
目录问题来源代码解决游戏素材的整理是一件挺麻烦的事情,但是只要用好了工具,便可以事半功倍。问题来源从网上找了一些游戏特效素材,其中包括很多批序列帧图集一部分特效素材是所有子帧都拼在一张大图上的,而另一部分是若干个单独的序列帧图片这样使用起来极其不方便,需要把资源的形式统一。最终决定还是把零散的多个序列帧图片拼成一个大图比较方便管理。代码解...原创 2020-02-02 18:10:01 · 4047 阅读 · 1 评论 -
PyGame中的脏矩形优化技术
目录问题脏矩形优化 (Dirty Rectangle)原理一、获得屏幕需要重绘的区域二、在上一帧绘制的区域用对应区域的背景图片覆盖三、在新的位置上绘制兔子四、代码实现半成品游戏中的实践进一步优化一些提示问题这几天在尝试用pygame写一个小游戏。当我在给游戏加上一个背景图片,游戏最大帧率一下子降低了近一半!原因是我一直采用全屏重绘的方式来更新屏幕图像...原创 2020-02-01 21:07:51 · 2667 阅读 · 0 评论 -
一起来理解Python中的装饰器的本质
目录函数是一个对象装饰器的本质带参数的装饰器总结函数是一个对象Python中万物皆对象,即使是数字、字符串、函数、方法、类、模块其中和本文关系最大的是,函数也是对象于是乎一个函数对象就可以用来作为一个“值”来被传递,作为另一个函数的参数、另一个函数的返回值不过严谨一些来说,其实传递的是函数对象的引用,即没有把这个函数在内存中所占的那块空间的数据复制到...原创 2020-01-22 13:53:54 · 1932 阅读 · 2 评论