摘要:
额,~!@###@$$#@ VPython是不属于标准Python库的,它是个第三方库.地址在http://www.vpython.org/.VPython可以很好地进行3D快速原型的开发.比OpenGL 之流快多了.不是一般的快("唐伯虎点秋香" 经典台词).安装什么的就不说了.很简单照着做就好了.VPytho自身带了很多的Object 可视化参考 -->http://www.vpython.org/contents/docs/visual/primitives.html.可以根据这些组合出很强大的Demo.%Python path%Lib\site-package 阅读全文
摘要:
Turtle乃龟的意思,最初属于logo语言的(没玩过)..不过后来也有别的语言支持.其一是SmallBasic,其二就是Python.一直不知道这个库竟然是Python内置的.它是基于Tk库的.用起来很简单.from turtle import *即可.简单画线.其中reset()是将整个画布清空并讲乌龟(箭头)置于原点(画布的中心). goto(70,0) 是根据当前的状态(速度,颜色,是否画线 ... )运动到(70,0)点上.turtle的坐标系跟我们学习的坐标系一样.很好学习.下面我们来画个正方形.很简单.就是前进(fd)一段距离,右转(right)90度,反复4次即可.当然画任意的 阅读全文
摘要:
额,是看http://www.maths.lth.se/na/courses/NUMA21/中看到的.首先我们定义个函数类如下.class Function(object): def __init__(self,f): self.f = f def __call__(self,x): return self.f(x)嗯,很简单,就是把一个函数拖进来而已.调用也简单.如下但是如果把上面的函数稍稍扩展下就很好玩了.完整如下:class Function(object): def __init__(self,f): ... 阅读全文
摘要:
昨天懒了没写,今天也懒了.这个是多维数组.在c/c++多维数组可以使用编译器帮你计算.但是在Python中没有这个功能.只好写类了.代码如下:class MulitArray: def __init__(self,*dimensions): assert len(dimensions) > 1 self._dims = dimensions size = 1 for d in dimensions: assert d > 0,"Dimeons must be >0" size*= d ... 阅读全文
摘要:
额,睡不着第二章的尾部还有个关于写翻转棋的,暂时先不写.下面就是直接上Set和Map了,这里使用的是最简单的方法.也就是内部使用的list先上Set不过看上去复杂都很高的.class Set: def __init__(self): self._theElements = list() def __len__(self): return len(self._theElements) def __contains__(self,element): return element in self._theElemen... 阅读全文
摘要:
下面是使用Array实现Vector.也就是Python中自带的list().代码如下:class Vector: def __init__(self): self._length = 0 self._capacity = 2 self._array = Array(self._capacity) def __len__(self): return self._length def __contains__(self,item): for v in self: ... 阅读全文
摘要:
Array2D实现好之后就是要来做一个程序了.简单测程序 `生命游戏`,当然以前发过的,不过是使用SDL+C++写的.现在直接使用Python写,代码如下.这个主要是棋盘的设定.class LifeGrid: DEAD_CELL = 0 LIVE_CELL = 1 def __init__(self,numRows,numCols): self._grid = Array2D(numRows,numCols) self.configure(list()) def numRows(self): return... 阅读全文
摘要:
今天就到了二维的了.Python中默认是没有带二维的数据结构的.二维的数据结构可以通过一维的数据组成.代码如下class Array2D: def __init__(self,numRows,numCols): self._theRows = Array(numRows) for i in range(numRows): self._theRows[i] = Array(numCols) def numRows(self): return len(self._theRows) ... 阅读全文
摘要:
好早前就想开始写了,可以一直懒没写.书参考的是<Data Structures and Algorithms Using Python>基本是照着来.估计也会把里面的题目做做.看完后打算看稍微难些的<Python Algorithms - Mastering Basic Algorithms in the Python Language>.基本是自己的学习笔记.记录下而已.扯了这么多蛋.开始.首先第一个基本的结构是一维Array(后面还有多维的).它是个静态数组.可以迭代,获取设置值.实现如下:import ctypesclass Array: def __init__ 阅读全文
摘要:
先说下IPython的创始人挂了,缅怀下吧.他同时也是另一个NX项目的作者matplotlib项目的作者.来自http://matplotlib.org/下面就说IPython把.相信很多人都用过Python,也用命令行下敲过print "hello xxx",的东西的.IPython乃是一款增强的Python命令行工具.还有个好像叫BPython的.(先不理他).IPython超强优点.(自动补全)功能.好了.先pass.(下面的自己看help)主要还是推荐IPython的另一个超强开发(演示)环境notebook.先上图:嗯.绝对NX.先说安装吧.首选安装Python 阅读全文