《python程序语言设计》2018版第5章第50题利用turtle编程显示三角形图案

2024.06.18
05.50.01version

在这里插入图片描述

首先我觉得还是应该现从简单阵列来进行。非常简单。顺便回忆一下我3月份做的5.19题里那些淘气的数列

代码成功



#将i从10设计成12打印的毕竟好看
for i in range(1,12):
    #这这里给结尾的i+2效果并不好看
    for j in range(1,i):
        print(j,end=" ")
    print()

请添加图片描述
请添加图片描述

这个是过去用str和for演出的成果,现在来实际用turtle吧

先确定turtle的x,y坐标。给他们分别建立变量。

a_x = 18
a_y = 18


2024.06.25
为了排15分钟的课。写教案,写ppt 大脑宕机
现在强迫自己别玩游戏。
回来弄这个。

a_x = 18
a_y = 18

turtle.penup()
turtle.goto(a_x, a_y)

for i in range(1, 12):
    aDx = a_x + (i * 18)
    aDy = a_y + (i * 18)
    turtle.goto(aDx, -aDy)
    for j in range(1, i):
        # 在y处用正号和负号不断求索。很有意思
        turtle.goto(aDx, -(a_y + (j * 18)))
        turtle.write("{:3d}".format(j))
turtle.done()

我发现你如果在这两句间进行正负号就会得出不同的阵列,但就不是我想要的

    turtle.goto(aDx, -aDy)
    turtle.goto(aDx, -(a_y + (j * 18)))

在这里插入图片描述
在这里插入图片描述

24.06.26 success code

a_x = 18
a_y = 18

turtle.penup()
turtle.goto(a_x, a_y)

for i in range(1, 12):
    aDx = a_x + (i * 18)
    aDy = a_y + (i * 18)
    turtle.goto(aDx, aDy)
    for j in range(1, i):
        turtle.goto(-aDx, -(a_y + (j * 18)))
        turtle.write("{:3d}".format(j))
turtle.done()

在这里插入图片描述


2024.7.2
I’m go.
2024.7.3
比较偷懒。
现在我们来一步步的解答

第一以现在的代码我成功的做到了10个序列从
我发现嵌套的循环j它现在的打印方法应该是可以的。
所以真正我从i这个层次来考虑问题
经过了几次尝试都是失败
我是不是应该具象化一下,我的这些点到底是在什么位置

for i in range(1, 12):
    aDx = a_x + (i * 18)
    aDy = a_y + (i * 18)
    # 我加一个显示点位置的代码看一下他们到底再那里。
    turtle.goto(aDx, aDy)
    turtle.dot(2, "red")

此代码打出红色点并没有像我想的那样进行阵列一样的打印看来问题出在这里

经过我的努力设计了两行来显示我到底那里打印有问题,
但是pycharm的整理代码功能。让我的测试出现了一些小问题。
就是当我的代码写的不规范,或者进行代码整理。他总是将最后两句话
放到i循环中
造成打印结果好几次不动。让我很迷糊。
后来发现原来是代码的缩进被系统自动帮忙篡改了。

for i in range(1, 12):
    aDx = a_x + (i * 18)
    aDy = a_y + (i * 18)
    # 我加一个显示点位置的代码看一下他们到底再那里。
    turtle.goto(aDx, -aDy)
    #这两段用来看看我外层循环的效果
    turtle.dot(2, "red")
    turtle.write("{:3d}".format(i))
   
	turtle.hideturtle()
	turtle.done()

在这里插入图片描述

定住了。为什么。我百思不得其解,我认为我的外层循环有问题。

后来!我才发现大家仔细看这段代码的最后两行,他们怎么跑到i循环里了呢? 哦pycharm这个哥们自动帮我整理了代码。结果两段进去了。自然就循环到了一遍自然就停止了。

	turtle.hideturtle()
	turtle.done()

好了须经一场,重新测试。看来i循环设计还不错

在这里插入图片描述

下面是正确代码,谢谢大家

a_x = 18
a_y = 18

turtle.penup()
turtle.goto(a_x, a_y)

for i in range(1, 12):
    aDx = a_x + (i * 18)
    aDy = a_y + (i * 18)
    turtle.goto(aDx, -aDy)
    for j in range(1, i):
        turtle.goto((j * 18), -aDy)
        turtle.write("{:3d}".format(j))

turtle.hideturtle()
turtle.done()

在这里插入图片描述

祝大家学习愉快,多多点赞,一键三联。爱大家

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

电饭叔

谢谢各位兄弟们的关注,谢谢破费

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值