Python


  1. Python依赖管理的一些思考

    前言 之前一直比较抵触用 Python ,很大一部分原因是觉得 Python 项目的环境管理比较混乱。Node.js 有 Npm 包管理工具,通过 package.json 配置项目依赖,最多再通过 nvm 来进行环境切换;Java 有 Maven Gradle 来进行包管理和项目依赖配置,并体现在 pom.xml 和 build.gradle 等中。而 Python 相比编程语言有时更体现了脚本语言的特性,系统化和标准化程度都不太高。很多 Python 项目上来就是怼代码,没有声明依赖、配置…

    Python, Conda, Linux, Tools阅读全文

  2. 利用Graph-tool进行图的可视化处理

    前言 最近恶心的项目中期检查,我被分配到做社交图的分析,然而事实上我并不知道弄啥。虽然不是我自己答辩,但是考虑到还是不要太坑dalao,我决定不管怎样至少得搞点图撑撑场面免得尴尬,这几天就赶鸭子上架倒腾了下graph_tool这个专门用于对图进行可视化的python库。虽然网上中文资料不足,但是他的英文文档还是非常全面的,很多设计的小细节也在文档里提及了,非常简单容易上手。下面就从一个初学者的记录下我的学习历程。 安装 虽然是个python库,但是毕竟是要做大量数据计算的,因此graph…

    Python, Tools, Graph-tool, BigData阅读全文

  3. Python多核编程分析

    简述 之前一直都用python的多线程库(比如threading)来写一些并发的代码,后来发现其实用这个方法写的程序其实并不是真正的并行(parrallel)计算,而只是利用单个CPU进行的并发(concurrency)计算。因此,多线程也仅仅只在处理一些被频繁阻塞的程序时才会有效率上的提升,比如网络爬虫里等待http返回等;而在CPU使用密集的程序里使用多线程反而会造成效率的下降。那么为什么python不把threading库设计成并发的线程呢?这是因为python本身有一个全局翻译锁,叫G…

    Python阅读全文

  4. PyQt5编写桌面程序入门

    前言 捣鼓了半天,终于把用python写界面的一套玩意大体上搞清楚了。一开始一直在纠结用什么python IDE适合进行桌面程序开发,很多PyQt发布网站都推荐用Eric这个编辑器,然而我自己试了下发现界面很一般,而且搞不好还会在安装配置的过程中搞出很多麻烦。而实际上,稍微研究一下也能发现PyQt5也并不是和Eric绑定的东西,他其实就是一个python库,完全可以直接用任意的文本编辑器来写,因此我还是选择了比较方便的PyCharm。 环境安装 为了使用PyQt5,我们最好还是使用pyt…

    Python, Qt阅读全文

  5. Python类变量和成员变量的使用注意点

    之前在用python写一个项目,发现一个很恶心的bug,就是同由一个类生成的两个实例之间的数据竟然会相互影响,这让我非常不解。后来联想到java的类有类变量也有实例变量,因此翻阅了相关资料,发现python也有类似的类变量和实例变量,比如下面的代码中: class A: x = 0 def __init__(self): self.y = 0 x就是类变量,y就是实例变量。 原则上是没有错的,但是实际用的时候就发现一些恶心的问题(也就是我找了三天的bug)…

    Python阅读全文

  6. Django框架基础

    Django框架大概是python web框架中最有名的一个了,由于学习需要得用python搞个网页出来,那就学学这个喽。 入门级的介绍我是参考自强学堂的简单教程,总的来说讲的还是蛮清楚的。 下面简单记录下搭建过程,其实也是非常容易上手。 安装 当然可以去django官网下载源码直接$sudo pip install Django,而且版本也比较新。 相比下源码直接用来说,用pip安装能自动的把常用的命令对应的放在/usr/local/bin/等里面而不是扎堆放在一起,因此非常方便随…

    Python, Django阅读全文

  7. 好动校园理论考试破解(2/2)

    现在已经分析清楚了,就这么点玩意,照着之前分析出来的接口用python写个小脚本就行了。 hack.py #coding:utf-8 import urllib2,cookielib,urllib,json,sys,time login_system_url="http://appsrv.ihodoo.com/login" login_exam_url="http://appsrv.ihodoo.com/auth/exam/enterIndex?"…

    Spider, Python阅读全文

  8. 好动校园理论考试破解(1/2)

    背景 不知道从什么时候开始,学校的体育理论考试搞成了下载一个app然后在这上面考。。。本来觉得没什么,然后突然爆出这个app有一坨bug,安卓端多选题只能提交一个答案(后来发现原因是多选题提交答案时的while循环里多写了一个break。。。),导致分数奇低。虽然后来做了一个紧急修复,但从这也能看出开发人员的尿性。。。再后来,有个专门搞app的同学说他能够刷到满分,我稍微想了下,这种考试型app的逻辑能够被破解,无非有两个方法:第一种就是记录所有模拟题库中的题目和答案,然后比对考题进行提交;第…

    Spider, Python阅读全文

  9. 结合连通块平均分割以及投影矫正的验证码分割算法

    在上一节 中记录了基于投影的验证码矫正算法的实现。通过矫正,我们可以比较好的将倾斜的字符归一成较为规整的字符,接下来我们需要对矫正后的字符进行分割。简单的方法大概是投影法了,但是很明显,这样做的可靠性并不够。我们也可以找到整张图的最左端和最右端然后平均分割,但是在字符大小不一样的情况下效果也太好。还有个朴素的方法就是找连通块,但是由于存在字符粘连问题,连通块也不能完全区分字符。那么我这里就结合后两种方法,先进行连通块分割,对于能分割的字符直接进行后续处理,对于不能分割的字符再用平均分割的方法分割…

    Computer Vision, Python, OpenCV阅读全文

  10. 用投影法矫正字符旋转

    这是段简单的代码,目的是处理旋转验证码的问题,主要思想就是通过将字符以45°到135°的角度投影下来,得到一系列的投影范围,然后得到这当中投影长度最小的一个角度。这个角度我们就可以简单的把他看成是字符的偏转角。然后用这个角度通过仿射变换得到矫正后的字符。 代码 #coding=utf-8 import cv2,os,sys,Image,math import numpy as np from pylab import * %matplotlib inline def getBinary(…

    Computer Vision, Python, Machine Learning, MathJax阅读全文