阅读本文大概需要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竟能画这么漂亮的花,帅呆了相关推荐

  1. 以下哪个不是python财经数据接口工具_这7种Python的全新玩法,大部分人都不知道!...

    Python第三方模块众多,下面我介绍一些比较实用而又有趣的模块,主要分为爬虫.数据处理.可视化.机器学习.神经网络.股票财经.游戏这7个方面,主要内容如下: 创一个小群,供大家学习交流聊天 如果有对 ...

  2. python3.7和3.8的区别-Python 3.8 新功能来一波(大部分人都不知道)

    Python 是一门广受好评的编程语言,每个版本的更新都会对开发社区带来一定影响.近日,Python 3.8 已进入 beta 2 版本的测试中,各项新特性已经添加完毕,最终版本预计于今年 10 月发 ...

  3. python易学吗_所有人都说Python 简单易学,为何我觉得难?

    记得刚学Python的时候,几乎所有人都说Python 入门简单易学,而对于编程零基础,只掌握Word和Excel的人来说,感觉真的好难. 有许多自学的同学,学习之前网上的教材看了,Python的书也 ...

  4. excel切片器_大部分人都不知道Excel切片器还能这么用,建议收藏

    提到切片器,相信大家都并不陌生,但按常规思路来讲,切片器大部分是配合excel的[数据透视表]来使用的,但是(敲黑板!大家要集中精力听讲啦~)今天我和大家介绍的是无须创建数据透视表时的切片器使用方法! ...

  5. python高端玩法_这7种Python的全新玩法,一般人都不知道!

    Python第三方模块众多,下面我介绍一些比较实用而又有趣的模块,主要分为爬虫.数据处理.可视化.机器学习.神经网络.股票财经.游戏这7个方面. 主要内容如下: 1.爬虫:相信大部分人都用Python ...

  6. python大神是什么样的_【Python大神秘籍Top10】这些窍门99%的人都不知道

    原标题:[Python大神秘籍Top10]这些窍门99%的人都不知道 来源:GitHub 作者:Rafe Kettler 编译:三石 [新智元导读]Python神奇方法是指一些允许在自定义类中增加&q ...

  7. python turtle画画 30排以内_Python竟能画这么漂亮的花,帅呆了(代码分享)

    阅读本文大概需要3分钟 关于函数和模块讲了这么久,我一直想用一个好玩有趣的小例子来总结一下,同时也作为实战练习一下. 趣味编程其实是最好的学习途径,回想十几年前我刚毕业的时候,第一份工作就给手机上写a ...

  8. python简单代码画图-Python竟能画这么漂亮的花,帅呆了(代码分享)

    阅读本文大概需要3分钟 关于函数和模块讲了这么久,我一直想用一个好玩有趣的小例子来总结一下,同时也作为实战练习一下. 趣味编程其实是最好的学习途径,回想十几年前我刚毕业的时候,第一份工作就给手机上写a ...

  9. 用python画花瓣-Python竟能画这么漂亮的花,帅呆了(代码分享)

    阅读本文大概需要3分钟 关于函数和模块讲了这么久,我一直想用一个好玩有趣的小例子来总结一下,同时也作为实战练习一下. 趣味编程其实是最好的学习途径,回想十几年前我刚毕业的时候,第一份工作就给手机上写a ...

最新文章

  1. 【廖雪峰Python学习笔记】面向对象编程OOP
  2. 记录下,我们平时开发当中不得不知道的HTTP状态码
  3. python脚本实例手机端-用Python实现自动化操作Android手机
  4. 基于PyTorch搭建CNN实现视频动作分类任务代码详解
  5. 折线图x轴的日期会超出_matplotlib之折线图(代码+解析)
  6. mysql 约束 和索引_Mysql中索引和约束的示例语句
  7. qstring转string
  8. ubuntu 上 ESP8266 HomeKit 实战(四)1路继电器 + 1个触摸开关
  9. 百度收录自动化提交脚本 - python
  10. “Vidalia tor privoxy”配置自动启动
  11. html表格打印分页无边框_excel怎么显示打印线-表格换页打印没有边框线
  12. 直方图均衡化高斯滤波
  13. 17 Equations That Changed the World
  14. 【ArcGIS】地表模型生成和显示
  15. kali 使用u盘安装提示“无法挂在光盘..”的解决方案
  16. Spring-Boot框架学习视频-百度云盘
  17. android x86还是arm,Android x86是否模拟ARM?(Does Android x86 emulate ARM?)
  18. 显卡vbios修改显示接口
  19. 发票、司法、扶贫,政务应用已成区块链率先落地领域?
  20. 【逗老师带你学IT】Windows Server NPS服务构建基于AD域控的radius认证

热门文章

  1. 剑指offer所有的题目总结(转)
  2. js 打印出来的节点多了m_前端实用技术分享—用Vue实现打印指定区域
  3. 「快学springboot」SpringBoot整合freeMark模板引擎
  4. 读书笔记 计算机系统--系统架构与操作系统的高度集成 第一章概叙
  5. HEXO+Github,搭建属于自己的博客
  6. [Django]我的第一个网页,报错啦~(自己实现过程中遇到问题以及解决办法)
  7. linux下命令行操作快捷键及技巧
  8. 把一些表单属性封装一个JSON
  9. 运用PhantomJS测试JavaScript
  10. Fibonacci斐波拉契数列----------动态规划DP