多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
Python精灵模块,英文名为sprites。 用from  sprites  import  *语句导入了所有命令 不要再用from turtle  import *命令了。 因为后者会覆盖前者的同名命令。 用pip install sprites命令安装sprites模块 现实情况下由于要访问国外的服务器,所以安装速度在某些地方很慢以致于安装不上 所以我们要用cmd打开管理员窗口,用下面的命令进行安装: pip install -i https://pypi.tuna.tsinghua.edu.cn/simple sprites --upgrade 上面是从清华大学服务器下载sprites模块,然后安装的,由于从国内服务器下载,所以速度非常快。 安装好后,用from sprites import Sprite,Screen语句可以导入Sprite类和Screen函数。 然后用Sprite()就能新建一只虫子,假设取名为bug,那么命令如下所示: ~~~ from sprite import Sprite,Screen ~~~ 接下来就可以让bug不断地满屏爬了。简单化一下,来一个while循环。 ![](http://h.yiniuedu.com/7a481ba673ea93f49a49993f103dc0ad) while True 代码的控制结构。它可以让同组代码不断地重复执行。bug.fd(1)可以让bug前进一个单位,bug.right(1)可以让虫子右转,简写为bug.rt(1),代码变成了像下面这样: ~~~ from sprites import Sprite,Screen ~~~ 上面的程序运行后,就能看到一只虫子爬了。如果要有更多的虫子爬,我们只要新建更多的角色即可。程序变成像下面这样了: ~~~ from sprites import Sprite,Screen ~~~ 上面goto命令和海龟画图中的goto命令是一样的,都是定位角色坐标的。上面的程序是单线程的,只有一个while循环。如果想有几个while循环同时执行的话就要使用多线程编程了。接下来我们导入Thread,用from threading import *即可。我们这里创建三个线程,每个线程的目标函数会创建一个虫子角色,然后通过while循环让名为bug的虫子不断地爬。这个函数就像下面这样: ~~~ def myt1(): ~~~ 函数定义好了,我们就能用Thread命令来创建线程了,语句如下所示: ~~~ thread1 = Thread(target=myt1) ~~~ 最后,我们只要简单地调用thread1的start方法就能启动这个线程了。 代码如下所示: ~~~ thread1.start() ~~~ 那么创建四个线程,只要定义四个函数,启动四个线程就可以了。最后,多线程虫子爬的代码如下所示: ``` """    四只bug多线程示例程序.py    本程序创建了四个线程,每个线程都会创建一个bug。    bug定位后会不断地旋转。    本程序需要Python精灵模块支持,请用cmd命令,打开管理员窗口,    然后输入以下使命令进行安装:   pip install -i https://pypi.tuna.tsinghua.edu.cn/simple sprites   --upgrade """ from threading import * from sprites import Sprite,Screen def myt1(): bug = Sprite() while True: bug.fd(1) bug.rt(1) def myt2(): bug = Sprite() bug.goto(100,100) while True: bug.fd(1) bug.lt(1) def myt3(): bug = Sprite() bug.goto(-100,100) while True: bug.fd(1) bug.lt(1) def myt4(): bug = Sprite() bug.goto(100,-100) while True: bug.fd(1) bug.lt(1) screen = Screen() # 新建屏幕对象 thread1 = Thread(target=myt1)      # 创建一个线程 thread2 = Thread(target=myt2)      # 创建一个线程 thread3 = Thread(target=myt3)      # 创建一个线程 thread4 = Thread(target=myt4)      # 创建一个线程 thread1.start()                    # 启动线程1 thread2.start()                    # 启动线程2 thread3.start()                    # 启动线程3 thread4.start()                    # 启动线程4 screen.mainloop() ``` 更高级的编程方法是可以创建一个Bug类。它继承自Sprite类。当Bug生成后会自动创建一个线程,自己爬。