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获取局域网占带宽最大3个ip的方法
Jul 09 Python
python安装与使用redis的方法
Apr 19 Python
PyQt5每天必学之带有标签的复选框
Apr 19 Python
python 读取.csv文件数据到数组(矩阵)的实例讲解
Jun 14 Python
python实现列表中由数值查到索引的方法
Jun 27 Python
Pandas过滤dataframe中包含特定字符串的数据方法
Nov 07 Python
django与小程序实现登录验证功能的示例代码
Feb 19 Python
Python第三方库face_recognition在windows上的安装过程
May 03 Python
详解用python写一个抽奖程序
May 10 Python
TensorFLow 不同大小图片的TFrecords存取实例
Jan 20 Python
PyCharm如何导入python项目的方法
Feb 06 Python
Python使用Selenium模拟浏览器自动操作功能
Sep 08 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
PHP调用Linux的命令行执行文件压缩命令
2013/01/27 PHP
php创建session的方法实例详解
2015/01/27 PHP
PHP插件PHPMailer发送邮件功能
2017/02/28 PHP
仅Firefox中链接A无法实现模拟点击以触发其默认行为
2011/07/31 Javascript
js实现jquery的offset()方法实例
2015/01/10 Javascript
javascript中类的定义方式详解(四种方式)
2015/12/22 Javascript
全面解析JavaScript中apply和call以及bind(推荐)
2016/06/15 Javascript
jQuery获取attr()与prop()属性值的方法及区别介绍
2016/07/06 Javascript
老生常谈Javascript中的原型和this指针
2016/10/09 Javascript
js eval函数使用,js对象和字符串互转实例
2017/03/06 Javascript
vue-hook-form使用详解
2017/04/07 Javascript
使用Vue-Router 2实现路由功能实例详解
2017/11/14 Javascript
React Native 自定义下拉刷新上拉加载的列表的示例
2018/03/01 Javascript
解决vue js IOS H5focus无法自动弹出键盘的问题
2018/08/30 Javascript
使用vue-router切换页面时实现设置过渡动画
2019/10/31 Javascript
Javascript类型判断相关例题及解析
2020/08/26 Javascript
nestjs返回给前端数据格式的封装实现
2021/02/22 Javascript
python实现向ppt文件里插入新幻灯片页面的方法
2015/04/28 Python
Python中的默认参数详解
2015/06/24 Python
Python利用正则表达式实现计算器算法思路解析
2018/04/25 Python
78行Python代码实现现微信撤回消息功能
2018/07/26 Python
python opencv判断图像是否为空的实例
2019/01/26 Python
python将字符串转变成dict格式的实现
2019/11/18 Python
python识别验证码图片实例详解
2020/02/17 Python
浅谈Python爬虫原理与数据抓取
2020/07/21 Python
Banggood官网:面向全球客户的综合商城
2017/04/19 全球购物
Kusmi茶美国官网:优质散叶茶和茶包
2019/10/13 全球购物
JAVA和C++区别都有哪些
2015/03/30 面试题
Java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?
2012/05/30 面试题
《钱学森》听课反思
2014/03/01 职场文书
法律专业大学生职业生涯规划书:向目标一步步迈进
2014/09/22 职场文书
2014年圣诞节寄语
2014/12/08 职场文书
本科毕业论文指导教师评语
2014/12/30 职场文书
2019销售早会主持词
2019/06/27 职场文书
MySQL REVOKE实现删除用户权限
2021/06/18 MySQL
mysql创建存储过程及函数详解
2021/12/04 MySQL