《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 = 28dis_y -= 28for k in range(4):turtle.goto(dis_x, dis_y)turtle.pendown()turtle.circle(20, steps=4)turtle.penup()dis_x += 28turtle.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 = 28dis_y -= 28for 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 += 28turtle.goto(dis_x, dis_y)turtle.pendown()turtle.circle(20, steps=4)turtle.penup()dis_x += 28turtle.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哈哈

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/46153.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【JavaScript】解决 JavaScript 语言报错:Uncaught SyntaxError: Unexpected token

文章目录 一、背景介绍常见场景 二、报错信息解析三、常见原因分析1. 缺少必要的语法元素2. 使用了不正确的字符或符号3. JSON 格式错误4. 字符串未正确闭合 四、解决方案与预防措施1. 检查语法元素2. 正确使用符号和字符3. 修正 JSON 格式4. 字符串闭合 五、示例代码和实践建议…

android13 文件管理器无法安装apk 奔溃问题

总纲 android13 rom 开发总纲说明 目录 1.前言 2.我们简单写个apk测试下 3.排查客户apk 4.frameworks源码排查 5.编译验证 6.彩蛋 1.前言 客户提供的文件管理apk不能安装apk文件,一点击就奔溃。 2.我们简单写个apk测试下 private void installApk(File apkFile) {i…

映美精黑白相机IFrameQueueBuffer转halcon的HObject

映美精黑白相机&#xff0c;用wpfhalcon开发取图 1.到官网下载&#xff0c;开发包 1sdk 2c开发例子 3c#开发例子 引入TIS.Imaging.ICImagingControl35.dll 3.ICImagingControl使用这个类控制相机 /// <summary> /// 相机控制 /// </summary> public ICImagingC…

MySQL的插入(DML)

1.给指定字段添加数据 这个就是&#xff0c;想插入所对应的字段&#xff0c;就插入所对应的数值。先把字段列出来&#xff0c;不一定是全部的字段&#xff0c; 然后插入想要的值&#xff0c;注意&#xff0c;只能插入一行。 INSERT INTO 表名 (字段1,字段2,.....) VALUES(值…

将swagger注解导入apifox的IDEA配置

在使用IDEA开发中&#xff0c;经常需要将后端接口导出到Apifox&#xff0c;以便于测试。将swagger注解内容导出到Apifox中&#xff0c;需要进行以下设置: file->settting打开对话框&#xff0c;选择Other Settings -> Apifox Help&#xff0c;如下图&#xff1a; 2.选…

【软件测试】自动化测试常用函数 -- 详解

一、WebDriver API 一个简单自动化脚本的构成&#xff1a; 脚本解析 # coding utf-8 from selenium import webdriver import time browser webdriver.Firefox() time.sleep(3) browser.get("http://www.baidu.com") time.sleep(3) browser.find_element_by_id(…

数据实时化是必要还是偏见?

数据实时化是必要还是偏见&#xff1f; 一、前言二、数据仓库的起源三、数据架构的演进四、数据实时化的必要性五、总结 本文主要基于数据仓库的起源和数据架构的演进来聊聊&#xff0c;数据实时化是否真的必要&#xff1f;是"过度优化"、“实时偏见"还是"…

【数据结构】手写快速排序

一、理念 什么是快速排序&#xff1f; 首先确立pivot&#xff0c;比如下图位于末尾 然后i遍历3到6 在3的时候&#xff0c;j指向i前面一位 如果3<5(pivot)&#xff0c;那么j&#xff0c;同时将i与j指向的交换&#xff0c;第一次交换是原地不动 一直到遇见9&#xff0c;…

数据结构和算法(0-1)----递归

定义​ 递归是一种在程序设计中常用的技术&#xff0c;它允许一个函数调用自身来解决问题。递归通常用于解决那些可以被分解为相似的子问题的问题&#xff0c;这些问题的解决方式具有自相似性。在数据结构和算法中&#xff0c;递归是一种重要的解决问题的方法&#xff0c;尤其是…

处于群晖Docker中的HomeAssistant监控宿主机CPU温度

处于群晖Docker中的HomeAssistant监控宿主机CPU温度 解决方案 在configuration.yaml中添加&#xff1a; sensor: - platform: filename: "Host Temperature" # 可以自定义file_path: /sys/class/hwmon/hwmon0/temp1_inputvalue_template: "{{ int(value)/100…

taro小程序terser-webpack-plugin插件不生效(vue2版本)

背景 最近在做公司内部的小程序脚手架&#xff0c;为了兼容老项目和旧项目&#xff0c;做了vue2taro,vue3taro两个模板&#xff0c;发现terser-webpack-plugin在vue2和vue3中的使用方式并不相同&#xff0c;同样的配置在vue3webpack5中生效&#xff0c;但是在vue2webpack4中就…

sql monitoring 长SQL ASH AWR 都没有 未Commit or export to csv

Duration 4小时&#xff0c; Database Time 22.5&#xff0c; Session Inactive&#xff0c; 1.未Commit原因, 2.慢慢导出成csv文件&#xff1f; How is v$session status INACTIVE and v$sql_monitor status EXECUTING concurrently 2641811 Posts: 8 Jan 11, 2016 6:47P…

git安装使用gitlab

第一步&#xff1a;下载git 第二步&#xff1a;安装 第三步&#xff1a;配置sshkey 第四步&#xff1a;处理两台电脑的sshkey问题 第一步下载git 网址&#xff1a;Git点Downloads根据你的操作系统选择对应的版本&#xff0c;我的是Windows&#xff0c;所以我选择了Windows …

Apple Intelligence将如何重新定义iPhone上的Siri使用方式|TodayAI

经过多年的讨论和批评&#xff0c;苹果&#xff08;Apple&#xff09;终于在今年秋季承诺推出更智能版本的数字助理Siri。此次更新得益于苹果智能&#xff08;Apple Intelligence&#xff09;&#xff0c;这是公司推出的生成式AI产品&#xff0c;并与OpenAI合作开发。 Siri将迎…

css画半圆画圆弧

利用border-radius和border完成&#xff1a; <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>test</title> <style> .semicircle {width: 100px;height: 50px;border-radius: 0 0 50px 50px;background:…

springboot系列教程(一):简介与入门案例(含源码)

一、SpringBoot简介 SpringBoot继承了Spring优秀的基因&#xff0c;上手难度小简化配置&#xff0c;提供各种默认配置来简化项目配置内嵌式容器简化Web项目&#xff0c;简化编码 Spring Boot 则会帮助开发着快速启动一个 web 容器&#xff0c;在 Spring Boot 中&#xff0c;只…

【性能测试】第二节.loadrunner工具介绍(LR)

文章目录 前言一、VUG&#xff1a;虚拟用户发生器 1.1 实现作用 1.2 创建一个新的性能测试脚本 1.3 打开LR自带的web系统 1.4 编写性能测试脚本流程方法 1.5 性能测试脚本的增强二、Controller 2.1 基础功能介绍 2.2 Design 2.3 Run三…

手把手教你在Overleaf的IEEE模板中用ref.bib加入引用

手把手教你在Overleaf的IEEE模板中用ref.bib加入引用 文章目录 1. 杂话2. 具体步骤2.1 创建ref.bib文件2.2 加入引用2.3 在tex文件中导入引用 1. 杂话 大伙儿应该都用过Latex和Overleaf吧&#xff0c;具体是个啥东西我就不说了哈。Overleaf上面的在这里IEEE 会议官方模板。之前…

安防监控视频平台LntonCVS视频融合共享平台智慧消防实现远程集中视频监控方案

近年来&#xff0c;电力系统内变电站着火事件频发&#xff0c;这对消防安全管理提出了严峻挑战。我国消防安全基础设施不完善、管理机制不健全、应急处置能力不足及公众消防安全意识淡薄等问题&#xff0c;严重制约了消防安全的提升。因此&#xff0c;加强变电站的消防安全管理…

【C++】 List 基本使用

C List 基本使用 基本概念 list 是一个序列容器&#xff0c;它内部维护了一个双向链表结构。与 vector 或 deque 等基于数组的容器不同&#xff0c;list 在插入和删除元素时不需要移动大量数据&#xff0c;因此在这些操作上具有较高的效率。然而&#xff0c;访问列表中的特定…