Python竟能画这么漂亮的花,帅呆了(代码分享)


Posted in Python onNovember 15, 2017

Python竟能画这么漂亮的花,帅呆了(代码分享)

阅读本文大概需要3分钟

关于函数和模块讲了这么久,我一直想用一个好玩有趣的小例子来总结一下,同时也作为实战练习一下。

趣味编程其实是最好的学习途径,回想十几年前我刚毕业的时候,第一份工作就给手机上写app,当时觉得非常好玩,那个是时候还是用symbian系统,熬了好几个通宵用j2me写了一个坦克大战,到现在还记得当程序运行的时候坦克互战的情景,真的是蛮兴奋的。

好吧一下子扯远了,我们还是回到正题:我想来想去,决定要找一个好玩有趣的例子来总结,总于被我找到了,这个例子只有20几行代码,非常适合初学者.

我们先来看一下效果图:

Python竟能画这么漂亮的花,帅呆了(代码分享)

1.引入模块

Python标准库里有一个非常有趣可以画画的小模块叫turtle(海龟),我们先引入这个模块

import turtle#从标准库里面引入turtle
def draw_art():
window=turtle.Screen()#获得一个窗口句柄
window.bgcolor("blue")#把背景设为蓝色
window.exitonclick()#当点击一下窗口会自动关闭
draw_art()#调用函数

有关turtle模块的使用方法,大家可以参考:

Python竟能画这么漂亮的花,帅呆了(代码分享)

2.画一个小海龟出来

第一步我们已经把窗口创建好了,你可以认为是一个画布已经ok了,下面我们要让主角登场了,把海龟画出来.

import turtle
def draw_art():
window=turtle.Screen()
window.bgcolor("blue")
#创建一个Turtle的实例这里用了类的概念,实例化一个Turtle。类的概念后面文章会讲
brad=turtle.Turtle()
brad.shape("turtle")#形状是一个海龟除了画海龟还可以画箭头,圆圈等等
brad.color("orange")#颜色是橙色
brad.speed('fast')#画的速度是快速
window.exitonclick()#当点击一下窗口会自动关闭
draw_art()#调用函数

Python竟能画这么漂亮的花,帅呆了(代码分享)

3.画一个海龟走两步的图

我们让海龟在图上走100步,然后再往下45度走100步

import turtle
def draw_art():
window=turtle.Screen()
window.bgcolor("blue")
brad=turtle.Turtle()#创建一个Turtle的实例
brad.shape("turtle")#形状是一个海龟除了画海龟还可以画箭头,圆圈等等
brad.color("orange")#颜色是橙色
brad.speed('fast')#画的速度是快速
brad.forward(100)#向前走100步
brad.right(45)#然后海龟头向右转45度
brad.forward(100)#继续向前走100步
brad.right(135)#然后有向右转135度
window.exitonclick()
draw_art()#调用函数

Python竟能画这么漂亮的花,帅呆了(代码分享)

4.画出一个菱形

刚才我们已经画来2边,一个完整的菱形还差2边,所以我们只需要把刚才走的路循环一下,把刚才的几步抽象成一个小函数(把代码抽取成一个独立的函数,是重构经常用的技巧),然后循环2次,就搞定了.

import turtle
def draw_diamond(turt):
for i in range(1,3):
turt.forward(100)#向前走100步
turt.right(45)#然后海龟头向右转45度
turt.forward(100)#继续向前走100步
turt.right(135)#然后有向右转135度
def draw_art():
window=turtle.Screen()
window.bgcolor("blue")
brad=turtle.Turtle()#创建一个Turtle的实例
brad.shape("turtle")#形状是一个海龟除了画海龟还可以画箭头,圆圈等等
brad.color("orange")#颜色是橙色
brad.speed('fast')#画的速度是快速
draw_diamond(brad)#抽象一个新的函数,专门画菱形
window.exitonclick()
draw_art()#调用函数

Python竟能画这么漂亮的花,帅呆了(代码分享)

5.画出一朵漂亮的花

前面的4步我们已经可以画出一个菱形了,其实这个菱形是我们要画一个花瓣,接着我们主要把菱形向右旋转10度,然后继续画一个花瓣出来,这样循环一周360度,就花出一个漂亮的花了,最后当海龟回到花心的时候,我们把海龟的头向右转90度,花一根长的线就大功告成了.是不是等不急,快来看源码吧

import turtle
def draw_diamond(turt):
for i in range(1,3):
turt.forward(100)#向前走100步
turt.right(45)#然后海龟头向右转45度
turt.forward(100)#继续向前走100步
turt.right(135)#然后有向右转135度
def draw_art():
window=turtle.Screen()
window.bgcolor("blue")
brad=turtle.Turtle()#创建一个Turtle的实例
brad.shape("turtle")#形状是一个海龟除了画海龟还可以画箭头,圆圈等等
brad.color("orange")#颜色是橙色
brad.speed('fast')#画的速度是快速
for i in range(1,37):#循环36次
draw_diamond(brad)#单画一个菱形也就是花瓣
brad.right(10)#旋转10度
brad.right(90)#当花全部花完一周后,把海龟的头向右转90度
brad.forward(300)#花一根长的线
window.exitonclick()
draw_art()#调用函数

然后运行就是开头的图了,是不是很酷啊~~

总结

以上就是本文关于Python竟能画这么漂亮的花,帅呆了(代码分享)的全部内容,希望对打击有所帮助。感兴趣的朋友可以继续参阅本站:

如有不足之处,欢迎留言指出。

Python 相关文章推荐
python为tornado添加recaptcha验证码功能
Feb 26 Python
使用Python的Tornado框架实现一个简单的WebQQ机器人
Apr 24 Python
Python实现程序的单一实例用法分析
Jun 03 Python
pandas重新生成索引的方法
Nov 06 Python
使用python实现mqtt的发布和订阅
May 05 Python
解决Python计算矩阵乘向量,矩阵乘实数的一些小错误
Aug 26 Python
Python Django中间件,中间件函数,全局异常处理操作示例
Nov 08 Python
python解析命令行参数的三种方法详解
Nov 29 Python
Python+numpy实现矩阵的行列扩展方式
Nov 29 Python
Python如何使用函数做字典的值
Nov 30 Python
把vgg-face.mat权重迁移到pytorch模型示例
Dec 27 Python
基于python实现上传文件到OSS代码实例
May 09 Python
Python中turtle作图示例
Nov 15 #Python
Django原生sql也能使用Paginator分页的示例代码
Nov 15 #Python
使用Python的turtle模块画图的方法
Nov 15 #Python
python绘制铅球的运行轨迹代码分享
Nov 14 #Python
Python实现句子翻译功能
Nov 14 #Python
简述:我为什么选择Python而不是Matlab和R语言
Nov 14 #Python
Python与R语言的简要对比
Nov 14 #Python
You might like
详解:――如何将图片储存在数据库里
2006/12/05 PHP
php 需要掌握的东西 不做浮躁的人
2009/12/28 PHP
PHP JS Ip地址及域名格式检测代码
2013/09/27 PHP
PHP CURL获取cookies模拟登录的方法
2013/11/04 PHP
PHP使用Memcache时模拟命名空间及缓存失效问题的解决
2016/02/27 PHP
php mysql_list_dbs()函数用法示例
2017/03/29 PHP
php实现简单四则运算器
2020/11/29 PHP
Javascript 跨域访问解决方案
2009/02/14 Javascript
Javascript 面向对象之重载
2010/05/04 Javascript
Ext中下拉列表ComboBox组件store数据格式用法介绍
2013/07/15 Javascript
jquery+ajax实现注册实时验证实例详解
2015/12/08 Javascript
JS基于onclick事件实现单个按钮的编辑与保存功能示例
2017/02/13 Javascript
JS匿名函数和匿名自执行函数概念与用法分析
2018/03/16 Javascript
Angular学习笔记之集成三方UI框架、控件的示例
2018/03/23 Javascript
用ES6写全屏滚动插件的示例代码
2018/05/02 Javascript
Jquery实现无缝向上循环滚动列表的特效
2019/02/13 jQuery
微信小程序如何引用外部js,外部样式,公共页面模板
2019/07/23 Javascript
谈谈JavaScript中的垃圾回收机制
2020/09/17 Javascript
javascript canvas封装动态时钟
2020/09/30 Javascript
基于ant design日期控件使用_仅月份的操作
2020/10/27 Javascript
Android Q之气泡弹窗的实现示例
2020/06/23 Python
Python钉钉报警及Zabbix集成钉钉报警的示例代码
2020/08/17 Python
复古风格的女装和装饰品:ModCloth
2017/12/29 全球购物
台湾流行服饰购物平台:OB严选
2018/01/21 全球购物
德国运动营养和健身网上商店:Myprotein.de
2018/07/18 全球购物
教育专业个人求职信
2013/12/02 职场文书
给水工程专业毕业生自荐信
2014/01/28 职场文书
2014年三万活动总结
2014/04/26 职场文书
上课不认真检讨书
2014/09/17 职场文书
应届毕业生求职信范文
2015/03/19 职场文书
后天观后感
2015/06/08 职场文书
食堂卫生管理制度
2015/08/04 职场文书
2016廉洁从政心得体会
2016/01/19 职场文书
小公司融资,商业计划书的8切记
2019/07/15 职场文书
mysql 如何获取两个集合的交集/差集/并集
2021/06/08 MySQL
Python实现随机生成迷宫并自动寻路
2021/06/13 Python