运用Python的turtle库绘制等边三角形

我最先考虑以最简洁的方式来解决这个问题,也就是以最少代码来完成这个作业并且还要正确。
题目重点:运算turtle库里面的turtle.fd()和turtle.seth()函数,绘制等边三角形。
思路:fd控制长度,而seth则为方向角度(等边三角形内角和为180°且每个角均为60°且三条边相等,转的角度为:0°,120°,240°,长度就任意设一个值)

初次函数设计:

__author__ = 'Don'
import turtle
turtle.seth(0)
turtle.fd(100)
turtle.seth(120)
turtle.fd(100)
turtle.seth(240)
turtle.fd(100) 
turtle.done() #让最后图形暂停方便截图最后可以省略因题目效果已达到
这时候我发现了个问题这个函数太冗余了,相同的代码重复了三遍。这时候我就考虑到了简化这个代码,通过for 循环。

二次订正:

 __author__ = 'Don'
 import turtle
 for i in range(3):
     turtle.fd(100)
     turtle.seth((1+i)*120)
 turtle.done()
我定义一个i(increment 增值) 循环3次,这样我就可以把turtle.fd(100)一模一样的代码简化了,然后就是seth()函数的问题
i我给他设计了一个表达式((1+i)*120) 这样旋转的角度就可以满足三次i变换而更改的了。
但是我突然发现了一件秘密就是这次订正有个特别严重的问题,就是这个turtle的箭头结束方向错了,我开始想怎么设计
我考虑到这个seth()函数其实不是转三次的而是两次就够了,因为fd(forward)一开始就是默认0°向右直走的,所以一开始
设计seth()函数角度i为seth(i*120) 就更简介了且方向是正确的。

三次订正(最终):

import turtle
for i in range(3):
turtle.seth(i*120)
turtle.fd(100)

  • 30
    点赞
  • 82
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值