《python程序语言设计》2018版第5章第55题利用turtle黑白棋盘。可读性还是最重要的。

今天是我从2024年2月21日开始第9次做《python程序语言设计》作者梁勇 第5章

从2019年夏天的偶然了解python到2020年第一次碰到第5章第一题。彻底放弃。再到半年后重新从第一章跑到第五章,一遍一遍一直到今天2024.7.14日第9次刷第五章。

真的每次刷完第五章感觉好像一下就会了python,但然后又一下陷入了更大深渊,因为还有很多很多没有学的。

茫茫的词海,各种新技术。我却把一个13天能就业的软件,学成了禅宗流派。

没有什么可以说的。还是看第五章最后一道题吧。感谢点赞和收藏的朋友。

我将在今天开始出发前往第6章,第4次刷第6章,另外我也买了《python语言程序设计基础》作者嵩天,两个专栏将分别分享。

但行好事莫问前程。祝给位兄弟姐妹们加油。

python 复制代码
turtle.screensize(1000, 1000)
a = 26
turtle.speed(40)
for i in range(0, 8):
    turtle.penup()
    turtle.goto(a * i, 0)
    for j in range(0, 9):
        turtle.penup()
        turtle.right(45)
        turtle.pendown()
        turtle.begin_fill()
        turtle.circle(18, steps=4)
        turtle.end_fill()
        turtle.left(45)
        turtle.penup()
        turtle.goto(a * j, a * i)

turtle.hideturtle()
turtle.done()

接下来赠送看到希望的代码

这个代码成功了一些,离目标似乎进了那么一些。

python 复制代码
turtle.screensize(1000, 1000)
a = 28
turtle.speed(40)
for i in range(0, 8):
    turtle.penup()
    turtle.goto(a * i, 0)
    for j in range(0, 9):
        turtle.penup()
        turtle.right(45)
        turtle.pendown()
        turtle.circle(18, steps=4)
        turtle.left(45)
        turtle.penup()
        turtle.goto(a * j, a * i)
for k in range(0, 8,2):
    turtle.penup()
    turtle.goto(a * k, 0)
    for m in range(0, 9,2):
        turtle.penup()
        turtle.right(45)
        turtle.pendown()
        turtle.begin_fill()
        turtle.circle(18, steps=4)
        turtle.end_fill()
        turtle.left(45)
        turtle.penup()
        turtle.goto(a * m, a * k)

turtle.hideturtle()
turtle.done()

还是没有希望开始了胡乱尝试

python 复制代码
turtle.screensize(1000, 1000)
a = 26
turtle.speed(40)
for i in range(0, 8,2):
    turtle.penup()
    turtle.goto(a * i, 0)
    for j in range(0, 1):
        turtle.penup()
        turtle.right(45)
        turtle.pendown()
        turtle.circle(18, steps=4)
        turtle.left(45)
        turtle.penup()
        turtle.goto(a * j, a * i)

turtle.hideturtle()
turtle.done()
python 复制代码
turtle.screensize(1000, 1000)
a = 28
turtle.speed(40)

for i in range(0, 8):
    turtle.penup()
    turtle.goto(a * i, 0)
    for j in range(0, 1):
        turtle.penup()
        turtle.right(45)
        turtle.pendown()
        turtle.circle(18, steps=4)
        turtle.left(45)
        turtle.penup()
        turtle.goto(a * j, a * i)

#此处设置行数
for k in range(0, 8,2):
    turtle.penup()
    turtle.goto(a * k, 0)
    #此处设置步幅、不设置步幅各有变化,列数也由此设置
    for m in range(0, 1):
        turtle.penup()
        turtle.right(45)
        turtle.pendown()
        turtle.begin_fill()
        turtle.circle(18, steps=4)
        turtle.end_fill()
        turtle.left(45)
        turtle.penup()
        turtle.goto(a * m, a * k)

turtle.hideturtle()
turtle.done()

以上代码可以满足但行交替填充交替空白的

这是小发现

python 复制代码
修改j变成0,9
然后goto x轴为a*j,y轴为a*i
则就是从前往后继续画。
太棒了。
然后goto x轴为a *i,y轴为a*j 则是上下开始画

接下来请出正确答案,这个是我第7刷2023年1月的解答,我觉得比我现在的要完美的多,而且非常便于阅读。分享给大家

每次间隔很久再回来做同一道题,人整个风格都发生了变化,或者深不可测,或者一眼看到出清澈。

python 复制代码
turtle.speed(230)
dis_x = 28
dis_y = 28
turtle.penup()
turtle.right(45)
turtle.penup()
for i in range(4):
    #我也不知道自己是怎么想到的
    dis_x = 28
    dis_y -= 28
    for k in range(4):
        turtle.goto(dis_x, dis_y)
        turtle.pendown()
        turtle.circle(20, steps=4)
        turtle.penup()
        dis_x += 28
        turtle.goto(dis_x, dis_y)
        turtle.pendown()
        turtle.begin_fill()
        turtle.circle(20, steps=4)
        turtle.end_fill()
        turtle.penup()
        dis_x += 28
    
    #我最满意的设计点。
    dis_x = 28
    dis_y -= 28
    for j in range(4):
        turtle.goto(dis_x, dis_y)
        turtle.pendown()
        turtle.begin_fill()
        turtle.circle(20, steps=4)
        turtle.end_fill()
        turtle.penup()
        dis_x += 28
        turtle.goto(dis_x, dis_y)
        turtle.pendown()
        turtle.circle(20, steps=4)
        turtle.penup()
        dis_x += 28

turtle.hideturtle()
turtle.done()

PS 我今天的实际工作出的内容,跟之前的我差太多了。真的是不一样的波动

python 复制代码
turtle.screensize(1000, 1000)
a = 28
turtle.speed(40)

for i in range(0, 8):
    turtle.penup()
    turtle.goto(a * i, 0)
    for j in range(0, 1):
        turtle.penup()
        turtle.right(45)
        turtle.pendown()
        turtle.circle(18, steps=4)
        turtle.left(45)
        turtle.penup()
        turtle.goto(a * j, a * i)

#此处设置行数
for k in range(0, 8,2):
    turtle.penup()
    turtle.goto(a * k, 0)
    #此处设置步幅、不设置步幅各有变化,列数也由此设置
    for m in range(0, 1):
        turtle.penup()
        turtle.right(45)
        turtle.pendown()
        turtle.begin_fill()
        turtle.circle(18, steps=4)
        turtle.end_fill()
        turtle.left(45)
        turtle.penup()
        turtle.goto(a * m, a * k)

turtle.hideturtle()
turtle.done()

好了继续第6章。我们第6章见吧。中午没准吃自助餐。体重88.4哈哈

相关推荐
黑客-雨几秒前
从零开始:如何用Python训练一个AI模型(超详细教程)非常详细收藏我这一篇就够了!
开发语言·人工智能·python·大模型·ai产品经理·大模型学习·大模型入门
Pandaconda5 分钟前
【Golang 面试题】每日 3 题(三十九)
开发语言·经验分享·笔记·后端·面试·golang·go
加油,旭杏9 分钟前
【go语言】变量和常量
服务器·开发语言·golang
行路见知9 分钟前
3.3 Go 返回值详解
开发语言·golang
xcLeigh13 分钟前
WPF实战案例 | C# WPF实现大学选课系统
开发语言·c#·wpf
孤独且没人爱的纸鹤14 分钟前
【机器学习】深入无监督学习分裂型层次聚类的原理、算法结构与数学基础全方位解读,深度揭示其如何在数据空间中构建层次化聚类结构
人工智能·python·深度学习·机器学习·支持向量机·ai·聚类
l1x1n017 分钟前
No.35 笔记 | Python学习之旅:基础语法与实践作业总结
笔记·python·学习
NoneCoder23 分钟前
JavaScript系列(38)-- WebRTC技术详解
开发语言·javascript·webrtc
关关钧34 分钟前
【R语言】数学运算
开发语言·r语言
十二同学啊36 分钟前
JSqlParser:Java SQL 解析利器
java·开发语言·sql