[Python]
一刀不二
这个作者很懒,什么都没留下…
展开
-
Beautifulsoup 小用
用 beautifulsoup 爬了下伯克利大学 programming languages and compilers 的课件import reimport requestsfrom bs4 import BeautifulSoupr = requests.get( "http://inst.eecs.berkeley.edu/~cs164/fa11/lectures/in原创 2016-02-08 13:57:29 · 577 阅读 · 0 评论 -
Python Dijkstra算法
( VISIT_WHITE, VISIT_GRAY, VISIT_BLACK ) = ( 0, 1, 2 )NO_ROAD = 1 << 31 class CityNode: def __init__( self ): self.m_iDist = 1 << 31 self.m_iParent = 0 self.m_visit = VI原创 2014-02-01 17:24:32 · 1768 阅读 · 0 评论 -
Python 实现 Prim算法
def prim( graph, vertex_num ): INF = 1 << 10 visit = [False] * vertex_num dist = [INF] * vertex_num preIndex = [0] * vertex_num for i in range( vertex_num ): minDist = INF + 1 nextIndex = -1原创 2014-01-22 18:35:52 · 5773 阅读 · 0 评论 -
Python's Third Part Lib
http://www.lfd.uci.edu/~gohlke/pythonlibs/原创 2014-10-03 20:36:50 · 735 阅读 · 0 评论 -
二维凸包 Graham 算法
三点以下的情况就不写了Python:import mathclass Point( object ): def __init__( self, x, y ): self.x = x self.y = y def __cmp__( self, other ): if self.y < other.y:原创 2014-09-12 23:46:06 · 1329 阅读 · 0 评论 -
Python 多级排序
class C( object ): def __init__( self, x1, x2, x3 ): self.x1 = x1 self.x2 = x2 self.x3 = x3 def __cmp__( self, other ): if self.x1 < other.x1:原创 2014-09-12 12:25:19 · 1636 阅读 · 0 评论 -
Pygame 打方块
import tracebackimport randomimport pygamefrom pygame.locals import *pygame.display.init()pygame.font.init()sizes = { "screen" : ( 300, 480 )}colors = { "font" : ( 138, 69, 252 ),原创 2014-09-09 17:43:26 · 1740 阅读 · 0 评论 -
Havel--Hakimi定理判断可图化 python
list1 = [ 4, 7, 7, 3, 3, 3, 2, 1 ]list2 = [ 5, 4, 3, 3, 2, 2, 2, 1, 1, 1 ]def havel_hakimi_algo( degree_list ): degree_list.sort( reverse = True ) print degree_list for degr原创 2014-05-02 23:55:30 · 2299 阅读 · 0 评论 -
python中lambda的另类使用
Lambda挺强大,有兴趣的人看下关于lambda的理论,就清楚邱奇编码的实现了。带if/else:( lambda x, y: x if x 科里化:( lambda x: ( lambda y: ( lambda z: x + y + z )( 1 ) )( 2 ) )( 3 )递归:func = lambda n: 1 if n == 0 e原创 2014-05-17 13:36:14 · 7609 阅读 · 0 评论 -
python 装饰器与AOP
无高见1.缓存from functools import wrapslineseq = '==' * 20def memo( func ): cache = {} @wraps( func ) def wrapper( *args ): result = cache.get( args ) if resul原创 2014-05-27 20:33:55 · 2047 阅读 · 0 评论 -
Householder 变换与 QR 分解
import randomimport copyEPS = 0.00001class MatrixException( Exception ): passclass Matrix( object ): def __init__( self, rows, cols, values_list = None, description = None ):原创 2015-07-27 08:33:16 · 10029 阅读 · 0 评论 -
Flask Ajax Demo
Python Code:from flask import Flask, jsonify, request, render_templateapp = Flask( __name__ )@app.route( "/", methods = [ "POST", "GET" ] )def index(): if request.method == "POST":原创 2015-06-01 00:01:57 · 5706 阅读 · 2 评论 -
中介者模式 python
class Infantry( object ): def __init__( self, mediator, name ): self.name = name self.mediator = mediator def send( self, msg ): self.mediator.send( msg, self )原创 2015-05-21 17:48:41 · 984 阅读 · 0 评论 -
神器 Brython —— 将 python 当做客户端脚本使用
对于看见 JS 代码就很痛苦的我来说,Brython 就像是福音,希望它发展顺利! from browser import document, alert import math alert( "Hello World" )原创 2015-04-14 18:15:30 · 5719 阅读 · 0 评论 -
python 设计模式学习 —— 原型模式
class Point( object ): __slots__ = ( "x", "y" ) def __init__( self, x, y ): self.x = x self.y = yp1 = Point( 3, 6 )import sysp2 = getattr( sys.modules[__name__], "Point原创 2015-03-27 17:01:06 · 811 阅读 · 0 评论 -
Project Euler 92
0.57s,import itertoolsimport timedef conquer(): ans = 0 DIGIT_LIMIT = 7 ITER_STR = "0123456789" sum_square = lambda ss: sum( int( s ) ** 2 for s in str( ss ) ) fact = lambda n原创 2014-12-12 22:02:54 · 997 阅读 · 0 评论 -
区域的个数(坐标离散化)
始终觉得秋叶拓哉书上那段代码,没有起到离散化的作用啊?估计是我智障吧。。。肯定是。compress 后的 X,Y 坐标绘制的 field 和原来的地图一样啊。import pprintdef compress( li1, li2, size, nums ): vec = [] vec1 = [] for i in xrange( nums )原创 2014-11-19 16:21:15 · 1814 阅读 · 2 评论 -
pygame 初记
import tracebackimport pygamefrom pygame.locals import *pygame.display.init()sizes = { "screen" : [ 640, 480 ]}colors = { "screen" : ( 255, 255, 255 )}screen = pygame.display.set_m原创 2014-09-09 11:15:42 · 1082 阅读 · 0 评论 -
pygame.draw.line
import tracebackimport mathimport pygamefrom pygame.locals import *pygame.display.init()pygame.font.init()sizes = { "screen" : ( 300, 480 )}colors = { "line" : ( 255, 255, 255 ),原创 2014-09-09 14:27:27 · 5863 阅读 · 0 评论 -
psycopg2 ImportError: DLL load failed
setup.py install 报错 error: command 'mt.exe' failed: No such file or directory 或者 Unable to find vcvarsall.bat于是 用 setup.py insall build --compiler=mingw32担心没装 mingw32,但是喜悦地发现以前装原创 2014-08-25 01:10:16 · 2354 阅读 · 0 评论 -
Python 词法分析 识别数字
这是自己无聊想出来的诡异写法,挺好玩,天马行空,哈哈。用字典替代if/else,字符串执行命令,挺易读的。( LETTER, DIGIT, POINT, OTHER, POWER, PLUS, MINUS ) = ( 0, 1, 2, 3, 4, 5, 6 )( END, NULL ) = ( -1, -1 )( ICON, FCON ) = ( 0, 0 )w = n = p =原创 2014-03-12 22:46:33 · 1651 阅读 · 0 评论 -
生产者消费者 协同程序 python
生成器和普通函数有些区别,比如生成器不用return返回,而用yield来返回一系列元素除非“召唤”生成器的next(),否则函数体里面不会执行任何代码块,上下文环境保存着。虽然不需要明确定义__iter__()和next()方法,但是它本身包含这个方法。当想要结束一个协程时,使用close()方法即可,close会在协程中引发GeneratorExit异常,这时候可以通过try/ex原创 2014-05-04 15:52:47 · 1202 阅读 · 0 评论 -
Python 线段树求区间覆盖
max_size = 100class Node( object ): def __init__( self ): self.left = -1 self.right = -1 self.sum_num = 0 def __str__( self ): return '[%s,%s,%s]'%( s原创 2014-03-06 18:21:18 · 2595 阅读 · 0 评论 -
关于Python中的json
import jsonclass Person( object ): def __init__( self, name, age ): self.name = name self.age = age def __repr__( self ): return 'class %s, name: %s, age: %s原创 2014-03-19 16:13:26 · 903 阅读 · 0 评论 -
蚁群算法求解旅行商问题 python
这组数据,刚开始只运行到2879m,于450m差的比较远,后来发现是路径距离算错了,再后来变成了1789m,发现是初始化点没选择,改了下,最后运行结果是440m。python有点慢,需要运行一段时间。import randomimport copyimport timeimport sys( ALPHA, BETA, RHO, Q ) = ( 1.0, 2.0, 0.原创 2014-04-12 15:41:01 · 10468 阅读 · 5 评论 -
Python 不同对象比较大小
?:>>> 1 < [ 1 ]True>>> int < listTrue>>> dict < int < listTrue>>> int < mapFalse后来几经周折,和 Fireboo 讨论了下,是1.不同对象(除了 number 之外),是按照 type names 比较,2.当相同类型对象不支持适当比较的时候,采用 address 比较3.l原创 2014-08-05 10:49:22 · 4551 阅读 · 0 评论 -
状态压缩动态规划 -- 棋盘问题 POJ 1321
DFS太慢,用SCR好点点Python 只有 22 行,其实可以更短,但是得排成很长很长的一行while True: table = [ [ 0 for j in range( 300 ) ] for i in range( 12 ) ] table[0][0] = 1 boardsize, chessnum = map( int, raw_input().spli原创 2014-06-21 19:37:32 · 1547 阅读 · 0 评论 -
Python 图论工具
networkx:一个用Python语言开发的图论与复杂网络建模工具,内置了常用的图与复杂网络分析算法,可以方便的进行复杂网络数据分析、仿真建模等工作。依赖工具:numpy pyparsing datautil matplotlib networkx 采用随机图做个实验:from random im原创 2014-06-17 20:20:47 · 6850 阅读 · 0 评论 -
python in操作引发 TypeError
在看 networkx 源码的时候觉得疑惑,为什么外层 for 要注意 TypeError,里面就不用,同样是 in,一直纠结 node 是不是有问题,比如 node 不可以被迭代什么的,那么里面应该也可能触发 TypeError 啊,后来发现 n 若是不可以被哈希的,也会触发,作者目的其实是想针对 n 的性质。比如:原创 2014-06-30 23:56:33 · 947 阅读 · 0 评论 -
python property属性
可以检查参数,一直没注意这个语言特性,忽略了很多细节,感谢 vitroxclass Person( object ): def __init__( self, name ): if not isinstance( name, str ): raise TypeError( '...' ) else:原创 2014-07-01 01:57:53 · 1119 阅读 · 0 评论 -
简单图模板 Graph
仿写 networkx 的功能# -*- coding: cp936 -*-''' 简单图 Graph:要求: 关于节点: 功能1.add_node: 通过 add_node 一次性加一个节点 字符串,数字,任何可以被哈希的 python 对象都可以当做节点原创 2014-06-30 16:50:28 · 2793 阅读 · 0 评论 -
python 逻辑推理编程解决八皇后
可以和Haskell , Prolog 一样做到模式匹配,建立逻辑推到规则,描述问题,得出答案。from pyDatalog import pyDatalogpyDatalog.create_atoms( 'N, N1, X, Y, X0, X1, X2, X3, X4, X5, X6, X7' )pyDatalog.create_atoms( 'ok,queens, nex原创 2014-07-19 21:29:17 · 3202 阅读 · 0 评论 -
Python 线段树
原本打算将线段树的show_tree_struct可以完全显示为树形的,distance的设置太麻烦,就省略了。 from math import powclass SegmentTree( object ): def __init__( self, left, right ): self.left = int( left ) self原创 2014-03-06 12:52:43 · 4130 阅读 · 0 评论