用python画漂亮图-大部分人都不知道-Python竟能画这么漂亮的花,帅呆了
阅读本文大概需要3分钟
关于函数和模块讲了这么久,我一直想用一个好玩有趣的小例子来总结一下,同时也作为实战练习一下。
趣味编程其实是最好的学习途径,回想十几年前我刚毕业的时候,第一份工作就给手机上写app,当时觉得非常好玩,那个是时候还是用symbian系统,熬了好几个通宵用j2me写了一个坦克大战,到现在还记得当程序运行的时候坦克互战的情景,真的是蛮兴奋的。
好吧一下子扯远了,我们还是回到正题:我想来想去,决定要找一个好玩有趣的例子来总结,总于被我找到了,这个例子只有20几行代码,非常适合初学者.
我们先来看一下效果图:
1.引入模块
Python标准库里有一个非常有趣可以画画的小模块叫turtle(海龟),我们先引入这个模块
import turtle#从标准库里面引入turtle
def draw_art():
window=turtle.Screen()#获得一个窗口句柄
window.bgcolor("blue")#把背景设为蓝色
window.exitonclick()#当点击一下窗口会自动关闭
draw_art()#调用函数
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()#调用函数
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()#调用函数
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()#调用函数
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吧长按下方的二维码即可关注
用python画漂亮图-大部分人都不知道-Python竟能画这么漂亮的花,帅呆了相关推荐
- 以下哪个不是python财经数据接口工具_这7种Python的全新玩法,大部分人都不知道!...
Python第三方模块众多,下面我介绍一些比较实用而又有趣的模块,主要分为爬虫.数据处理.可视化.机器学习.神经网络.股票财经.游戏这7个方面,主要内容如下: 创一个小群,供大家学习交流聊天 如果有对 ...
- python3.7和3.8的区别-Python 3.8 新功能来一波(大部分人都不知道)
Python 是一门广受好评的编程语言,每个版本的更新都会对开发社区带来一定影响.近日,Python 3.8 已进入 beta 2 版本的测试中,各项新特性已经添加完毕,最终版本预计于今年 10 月发 ...
- python易学吗_所有人都说Python 简单易学,为何我觉得难?
记得刚学Python的时候,几乎所有人都说Python 入门简单易学,而对于编程零基础,只掌握Word和Excel的人来说,感觉真的好难. 有许多自学的同学,学习之前网上的教材看了,Python的书也 ...
- excel切片器_大部分人都不知道Excel切片器还能这么用,建议收藏
提到切片器,相信大家都并不陌生,但按常规思路来讲,切片器大部分是配合excel的[数据透视表]来使用的,但是(敲黑板!大家要集中精力听讲啦~)今天我和大家介绍的是无须创建数据透视表时的切片器使用方法! ...
- python高端玩法_这7种Python的全新玩法,一般人都不知道!
Python第三方模块众多,下面我介绍一些比较实用而又有趣的模块,主要分为爬虫.数据处理.可视化.机器学习.神经网络.股票财经.游戏这7个方面. 主要内容如下: 1.爬虫:相信大部分人都用Python ...
- python大神是什么样的_【Python大神秘籍Top10】这些窍门99%的人都不知道
原标题:[Python大神秘籍Top10]这些窍门99%的人都不知道 来源:GitHub 作者:Rafe Kettler 编译:三石 [新智元导读]Python神奇方法是指一些允许在自定义类中增加&q ...
- python turtle画画 30排以内_Python竟能画这么漂亮的花,帅呆了(代码分享)
阅读本文大概需要3分钟 关于函数和模块讲了这么久,我一直想用一个好玩有趣的小例子来总结一下,同时也作为实战练习一下. 趣味编程其实是最好的学习途径,回想十几年前我刚毕业的时候,第一份工作就给手机上写a ...
- python简单代码画图-Python竟能画这么漂亮的花,帅呆了(代码分享)
阅读本文大概需要3分钟 关于函数和模块讲了这么久,我一直想用一个好玩有趣的小例子来总结一下,同时也作为实战练习一下. 趣味编程其实是最好的学习途径,回想十几年前我刚毕业的时候,第一份工作就给手机上写a ...
- 用python画花瓣-Python竟能画这么漂亮的花,帅呆了(代码分享)
阅读本文大概需要3分钟 关于函数和模块讲了这么久,我一直想用一个好玩有趣的小例子来总结一下,同时也作为实战练习一下. 趣味编程其实是最好的学习途径,回想十几年前我刚毕业的时候,第一份工作就给手机上写a ...
最新文章
- 【廖雪峰Python学习笔记】面向对象编程OOP
- 记录下,我们平时开发当中不得不知道的HTTP状态码
- python脚本实例手机端-用Python实现自动化操作Android手机
- 基于PyTorch搭建CNN实现视频动作分类任务代码详解
- 折线图x轴的日期会超出_matplotlib之折线图(代码+解析)
- mysql 约束 和索引_Mysql中索引和约束的示例语句
- qstring转string
- ubuntu 上 ESP8266 HomeKit 实战(四)1路继电器 + 1个触摸开关
- 百度收录自动化提交脚本 - python
- “Vidalia tor privoxy”配置自动启动
- html表格打印分页无边框_excel怎么显示打印线-表格换页打印没有边框线
- 直方图均衡化高斯滤波
- 17 Equations That Changed the World
- 【ArcGIS】地表模型生成和显示
- kali 使用u盘安装提示“无法挂在光盘..”的解决方案
- Spring-Boot框架学习视频-百度云盘
- android x86还是arm,Android x86是否模拟ARM?(Does Android x86 emulate ARM?)
- 显卡vbios修改显示接口
- 发票、司法、扶贫,政务应用已成区块链率先落地领域?
- 【逗老师带你学IT】Windows Server NPS服务构建基于AD域控的radius认证
热门文章
- 剑指offer所有的题目总结(转)
- js 打印出来的节点多了m_前端实用技术分享—用Vue实现打印指定区域
- 「快学springboot」SpringBoot整合freeMark模板引擎
- 读书笔记 计算机系统--系统架构与操作系统的高度集成 第一章概叙
- HEXO+Github,搭建属于自己的博客
- [Django]我的第一个网页,报错啦~(自己实现过程中遇到问题以及解决办法)
- linux下命令行操作快捷键及技巧
- 把一些表单属性封装一个JSON
- 运用PhantomJS测试JavaScript
- Fibonacci斐波拉契数列----------动态规划DP