零基础学编程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 条评论
登录 后参与评论

相关文章

来自专栏java工会

一分钟搞明白java8中的lambda|文末红包

1875
来自专栏点滴积累

geotrellis使用(三十六)瓦片入库更新图层

前言 Geotrellis 是针对大数据量栅格数据进行分布式空间计算的框架,这一点毋庸置疑,并且无论采取何种操作,其实都是先将大块的数据切割成一定大小的小数据(...

3028
来自专栏牛客网

京东提前批研发面经

【每日一语】真实人生中,我们往往在大势底定无可更改时才迟迟进场,却又在胜败未分的浑沌中提早离席。——翁贝托·埃科《开头与结尾》

982
来自专栏web前端教室

javascript 红皮高程(16)

位操作符的内容有些难度,并且也不常用。 从这几天的文章阅读量可以看出来,阅读的人比较少。 但学习这事,从来都是一件艰苦的事情,从来不轻松。 也许难懂,多看几遍就...

1726
来自专栏杨建荣的学习笔记

复杂SQL性能优化的剖析(一)(r11笔记第36天)

今天本来是处理一个简单的故障,但是发现是一环套一环,花了我快一天的时间。 开始是早上收到一条报警: 报警内容: CPUutilization is too hi...

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

关于Lorem ipsum

Wikipedia上的解释是,这只是一段用来测试排版效果的占位文字,没有实际的含义。据说,16世纪的时候就有人开始用了。当时的某个印刷工人,从古罗马政治家西塞罗...

661
来自专栏腾讯IVWEB团队的专栏

重构代码的Tricks

js的设计模式是针对于整体代码的设计是否合理,给出了一些具体的解决办法。 而重构代码就是依赖于设计模式而实现的一个必要手段,可以说设计模式就是重构代码的目标,但...

2481
来自专栏JavaQ

三分钟学习分布式ID方案

在分布式系统中,当数据库数据量达到一定量级的时候,需要进行数据拆分、分库分表操作,传统使用方式的数据库自有的自增特性产生的主键ID已不能满足拆分的需求,它只能保...

902
来自专栏小詹同学

【记录帖】从零打卡刷Leetcode——No.007

小詹此记录贴的读者越来越少了,也许是小詹总结的不够好欢迎留言区提出宝贵的意见!也欢迎和小詹一起定期刷leetcode,每周一和周五更新一题,每一题都吃透,欢迎一...

993
来自专栏用户2442861的专栏

近一个月的面试总结 分类:JAVA

本文转载自:http://blog.csdn.net/pistolove/article/details/46753275

482

扫描关注云+社区