• 《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语言程序设计基础》作者嵩天,两个专栏将分别分享。

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

    在这里插入图片描述

    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()
    
    

    在这里插入图片描述

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

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

    
    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()
    

    在这里插入图片描述

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

    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()
    

    在这里插入图片描述

    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()
    
    以上代码可以满足但行交替填充交替空白的
    

    在这里插入图片描述

    这是小发现

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

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

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

    
    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 我今天的实际工作出的内容,跟之前的我差太多了。真的是不一样的波动

    
    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哈哈

  • 相关阅读:
    windows 远程连接mstsc到远程主机报:内部错误10010
    俄罗斯方块
    公链新贵,Aptos 的优势与生态建设
    select...for update到底是加了行锁,还是表锁?
    Text-to-SQL小白入门(八)RLAIF论文:AI代替人类反馈的强化学习
    JavaScript操作BOM&DOM
    一文看懂25个神经网络模型,神经网络模型结构图
    单元测试及其工具Junit
    vue2 + ts + vuex 构建脚手架 ( 实现一个 存储笔记功能 )
    云安全:企业上云后不可忽视的安全挑战与解决方案
  • 原文地址:https://blog.csdn.net/m0_37228426/article/details/140412652