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中用PIL库批量给图片加上序号的教程
May 06 Python
Python中is与==判断的区别
Mar 28 Python
Python实现PS滤镜功能之波浪特效示例
Jan 26 Python
Python读取Excel表格,并同时画折线图和柱状图的方法
Oct 14 Python
python实现淘宝秒杀脚本
Jun 23 Python
详解Python传入参数的几种方法
May 16 Python
python保存字典和读取字典的实例代码
Jul 07 Python
python递归下载文件夹下所有文件
Aug 31 Python
Django之PopUp的具体实现方法
Aug 31 Python
python requests.get带header
May 05 Python
Python用户自定义异常的实现
Dec 25 Python
python3实现常见的排序算法(示例代码)
Jul 04 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
SONY ICF-SW55的电路分析
2021/03/02 无线电
PHP中在数据库中保存Checkbox数据(2)
2006/10/09 PHP
初级的用php写的采集程序
2007/03/16 PHP
PHP加Nginx实现动态裁剪图片方案
2014/03/10 PHP
PHP连接和操作MySQL数据库基础教程
2014/09/29 PHP
Smarty中调用FCKeditor的方法
2014/10/27 PHP
PHP闭包函数传参及使用外部变量的方法
2016/03/15 PHP
PHP中strtr与str_replace函数运行性能简单测试示例
2019/06/22 PHP
Laravel中如何轻松容易的输出完整的SQL语句
2020/07/26 PHP
JS 页面内容搜索,类似于 Ctrl+F功能的实现代码
2007/08/13 Javascript
javascript高级程序设计第二版第十二章事件要点总结(常用的跨浏览器检测方法)
2012/08/22 Javascript
详解Node.js模块间共享数据库连接的方法
2016/05/24 Javascript
AngularJS教程 ng-style 指令简单示例
2016/08/03 Javascript
js 打开新页面在屏幕中间的实现方法
2016/11/02 Javascript
js实现百度地图定位于地址逆解析,显示自己当前的地理位置
2016/12/08 Javascript
微信小程序 石头剪刀布实例代码
2017/01/04 Javascript
vuejs开发组件分享之H5图片上传、压缩及拍照旋转的问题处理
2017/03/06 Javascript
jQuery图片查看插件Magnify开发详解
2017/12/25 jQuery
Vue使用json-server进行后端数据模拟功能
2018/04/17 Javascript
vue实现计步器功能
2019/11/01 Javascript
echarts.js 动态生成多个图表 使用vue封装组件操作
2020/07/19 Javascript
一个基于flask的web应用诞生 组织结构调整(7)
2017/04/11 Python
Python使用pickle模块储存对象操作示例
2018/08/15 Python
python将txt文件读入为np.array的方法
2018/10/30 Python
Python实现合并两个有序链表的方法示例
2019/01/31 Python
关于Python作用域自学总结
2019/06/10 Python
使用Python爬虫库requests发送表单数据和JSON数据
2020/01/25 Python
HTML5注册页面示例代码
2014/03/27 HTML / CSS
html5 canvas 实现光线沿不规则路径运动
2020/04/20 HTML / CSS
全球领先的各类汽车配件零售商:Advance Auto Parts
2016/08/26 全球购物
FC-Moto瑞典:欧洲最大的摩托车服装和头盔商店之一
2018/11/27 全球购物
办公室主任职责范文
2013/11/08 职场文书
信息管理与信息系统专业求职信
2014/06/21 职场文书
爬山的活动方案
2014/08/16 职场文书
我们的节日重阳节活动总结
2015/03/24 职场文书
800字作文之大雪
2019/12/04 职场文书