零基础学编程015:画些有趣的图案

从《零基础学编程014:小海龟做画》中我们学会了基本的做图命令,只需要用上循环语句,就可以画出比较复杂的图案来,比如:

from turtle import *

for i in range(255) :
    forward(50 + i)
    left(100)

这里总共循环255次,每次步子迈得大了一点点,每走一步之后左转100度,画出来的图案就是这样:

小海龟走得是不是太慢?可以按组合键CTRL + C 中断程序的运行,在for语句前加上speed(9) 可以让小海龟以最快的速度做画。不过中断之后,屏幕上已经被画乱了,需要用reset() 清空画布。完整的代码是:

from turtle import *

reset()   # 把画布清空,小海龟回到初始点
speed(9)  # 最快速度为9,最慢速度为1
for i in range(255) :
    forward(50 + i)
    left(100)

这里写了2行注释,程序员为了让别人或者是几个月之后的自己能够看懂程序,会加上一些解释说明。这是一种良好的编程习惯,黑客只要看你写过的注释,基本就能判断出你的编程水平。Python中的单行注释非常简单,在#符号之后的全是注释,只是给人类阅读的,计算机会忽略这些字符。

把旋转角度从100换成99,可以得到不同的图案:

还可以加点颜色变化,请自行试验:

from turtle import *

reset()
speed(9)

for i in range(255) :
    colormode(255)    # 颜色分量值不超过255
    pencolor(i, i, i) # 画笔颜色会越来越淡
    forward(50 + i)
    left(99)

colormode(255)表示红、绿、蓝三种配色的值不超过255。

pencolor( )设置画笔的颜色,后面三个参数为R、G、B三分量,即红、绿、蓝。

练习:试着运行下面的代码,看看出现什么图案?

import turtle from turtle import * def part( total, length, breadth, col ): angleInc = 360/total width( breadth ) color( col ) for i in range(total): forward( length ) left( angleInc ) def rosette( total, length, width, color, angleInc ): for i in range( int(360/angleInc) ): part( total, length, width, color ) left( angleInc ) turtle.setup( 300, 300, 20, 20 ) turtle.speed(9) rosette(10,40,1,"blue",36) rosette(5,80,1,"red",36) turtle.exitonclick()

--- END ---

原文发布于微信公众号 - 申龙斌的程序人生(slbGTD)

原文发表时间:2017-01-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏ytkah

html5开发制作,漂亮html5模板欣赏,H5网站建设

html5是什么? HTML5 是下一代的 HTML(超文本标记语言,网页的组成部分),HTML5是web开发世界的一次重大的改变,能适配pc、手机等各终端,跨...

9116
来自专栏何俊林

一个电商项目【拉手团购】购物App(已开源)

图:青岛八大关 之前很多人在后台问,是否有商城或电商项目推荐,今天推荐一款myxh开源的【拉手团购】购物App,基本上涵盖电商项目中所有功能。开源不易,大家多多...

3055
来自专栏星流全栈

2016 JavaScript 技术栈展望

1584
来自专栏Nian糕的私人厨房

Vue2.0 数据抓取及Swiper组件开发

本次的系列博文的知识点讲解和代码,主要是来自于 黄轶 在慕课网的 Vue 2.0 高级实战-开发移动端音乐WebApp 课程,由个人总结并编写,其代码及知识点...

994
来自专栏互联网杂技

react+redux+webpack教程1

经历了EXT、YUI时代,又经历了Angular时代,我们正在步入React时代。 前端开发框架凭借JS极其灵活强大的特性模样越来越“怪异”,正是这怪异让我们对...

3395
来自专栏抠抠空间

vue简介

1830
来自专栏前沿技墅

漫谈前端性能本质 突破React应用瓶颈

侯策:硕士毕业于法国国立高等电信学校。曾任职于BePATIENT集团,负责互联网+医疗平台的研发。曾任职于法国能源和苏伊士集团,参与欧洲天然气运输和费用系统的研...

1441
来自专栏FreeBuf

Chrome XSS审计之SVG标签绕过

在一年前,在我的私人Twitter账户 brutal secret ,我分享了一个有趣的方法来通过审计绕过chrome 的xss过滤器。我们将从黑盒测试的角度...

3235
来自专栏阮一峰的网络日志

也许,DOM 不是答案

有一个词"手机网站"(mobile web),指供手机浏览的网站,但它是不存在的。 人们提到"移动互联网"的时候,其实专指另外一样东西:手机App。 ? 一、W...

3285
来自专栏腾讯云商业智能分析团队的专栏

制作地图及常见问题

地图在制作报表中很常见,主要功能是展示区域信息,如展示区域销售信息,用户区域分布情况等。本文介绍一下地图的制作步骤及常见的问题。

1461

扫码关注云+社区