猫史档案馆


(灌水区了,勿举报)在测试社区挖了半天,找到了2篇糖醋排骨大佬之前的帖子

用户:JSR代码喵JSR代码喵查看:2 回复:5 评论:2 创建时间:2021-02-22T21:20:43


 【教程】手把手教学如何将彩色螺旋线移植到编程猫IDE

连接:https://dev-shequ.codemao.cn/community/5047

·前言·

在编程猫学了Python的布吉岛有没有上到绘制彩色螺旋线这一课,如果没学过的可以来我这里捧个瓜来这里围观。有人会想将Python的代码移到编程猫IDE编程界面,也许哈(不一定)有人不知道怎么做,我就在这里手把手教大家(dalao不感兴趣可以不围观)。我建议呢,没接触过Python的萌新可以来这看一下,学一下。我们开始吧!

·准备工作·

我们先来看一下在Python里面的螺旋线代码

↓     ↓     ↓

(看不见可以右键选择在新标签页查看图片嗷)

然后呢,运行结果大致是酱紫的

↓     ↓     ↓

好啦,给大家看了代码之后呢,我们打开编程猫IDE,自己画一个小箭头。这样我们的准备工作就完成啦!

·教程·

如要将它翻成中文,有一个要点,这非常非常重要,就是了解代码的意思!可以说,你要是没了解它的意思的话,一切准备工作全是白费。当然,我要教你们,我就将每段代码的意思都告诉你们,然后编译成编程猫IDE的语言。

===============================================================

import turtle                                                             导入海龟库

t = turtle.Pen()                                                          将t设置为海龟的钢笔

turtle.bgcolor("blabk")                                               设置背景颜色为黑色

t.speed(100)                                                                   设置海龟画画的速度为100

colors = ["red","yellow","blue","green","orange","purple"]                    颜色列表设置六种颜色

 

for x in range(200):                                                           用for循环200次

    t.pencolor(colors[x%6])                                                 用模除操作符来变换画笔颜色

    t.forward(x)                                                                   使海龟行走x步

    t.left(61)                                                                        向左旋转61度

    t.width(x/20)                                                                 设置宽度为x除20

===================================================================

以上是关于这一段代码的详细描述,就是用中文翻译出来。好啦,大家如果仔细看一下,是不是发现这些代码在编程猫都有相应的积木呢?我们先忽略模除操作符那一段,待会我会详细讲解。学过编程猫的都会通过中文来查找相应的积木,所以拼出了以下的程序。

↓     ↓     ↓

for循环在之前视频里有讲解过,其实就是刚刚设置为0,然后重复执行让它加一。但要有个度,不能没完没了的让它重复下去,还不得闹出bug?所以我们让它在x=200就停止循环,这样才能避免一直循环的bug。下面的代码上面都有了,顾名思义的道理嘛。至于落笔,其实就跟导入海龟库和设置海龟工具的效果差不多。关于速度,对不起,问技术喵。(技术喵:喵?)为什么旋转-61度呢?因为IDE的旋转效果都是往右,如果往左的话,要加个“-”号。还有,背景颜色也得纯画,毕竟没有那个积木2333。最后执行的效果如下

↓     ↓     ↓

黑白的,非常没趣对不对,彩色的才好看。但是,很多人基本上都卡在变色那一块就撒手不干了。在教学里面,有说过这一块积木:不知道大家会不会应用。这一块是变色效果的关键,这块积木其实是刚刚的模除操作符,功能相当大。大家想想,之前的变量x是不是在不断变化?没错,用x除颜色的数量!以刚刚的6为例,拼搭的效果是酱紫的,学会这个,你就快成功了!

接下来很简单,小学除法学过对吧。6当除数余数会有啥?0、1、2、3、4、5!所以我们做出以下的六个积木

↓     ↓     ↓

你快成功了,之后用六个如果的积木,把它们分别镶嵌在里面,记住前面还要套个重复执行,还有别忘了当开始被点击。在如果里面放设置画笔颜色为,那个什么颜色随便你。最后积木如下

↓     ↓     ↓

你成功了!最后给大家看运行效果

很炫彩夺目有木有,很惊艳有木有?

··

大家看不清可以放大来看,我提供了链接

放大链接:https://ide.codemao.cn/we/789196

祝大家试验成功哦

【教学】更逼真的upper函数!!!

连接:https://dev-shequ.codemao.cn/community/6327

〖·前言·〗

Hello!又是我糖醋排骨啦!唔,关于upper函数哈,我觉得嘛,还有一些小毛病。还记得前几天本糖发布的教学帖吗?大家可以发现,output列表内输出的只是字符,但是呢?训练师们想要的是字符串!还有,有些爱调皮捣蛋的萌新,喜欢在运行upper函数时输入大写字母或标点符号。大家可要知道,输入大写和标点是会转成0的啊!因为小写列表根本就没有这些项……对于这些问题,本糖冥思苦想了两天两夜,还拉上了假·猫老祖和老鱼头一起解决,他们做得都很不错呢。废话不多说,看看这个教程的更新功能吧!

更新内容

①:输出值的字符转为字符串,返回方便

②:防熊利器!将扰乱值处理!

upper() ——>小写字符串转为大写字符串的谜之函数

lower() ——>大写字符串转为小写字符串的谜之函数

〖·准备工作·〗

一个空白作品,没有任何积木,新建一个没有任何东西的角色。列表四个,分别是:大写(蓝色)、小写(蓝色)、input(红色),output(绿色),嗯......颜色大家随心订就行啦,本糖是一个注重美观的人,你按默认也无所谓,这只是教学帖呵呵……哦对了,还有新建一个变量名为message的变量!好了准备工作就这么多,准备好了吗?开始吧!

〖·FAQ·〗

Q1:糖醋排骨,编程猫导入不了ASCII值啊!怎么做upper及lower函数呢?

A1:嗯,这个问题本糖之前也想过,问的非常深奥哈。唔……是这样的,你仔细想哈,小写转大写是不是只用小写字母表和大写字母表通过积木就可以转换了啊,这个本糖待会会细讲。

Q2:糖醋,为什么要新建一个变量名为message的变量呢???

A2:啊哈,这个问题本糖觉得也可以。关于message这个变量呢,之前那个帖是不需要的,但是今天我们要通过积木来防熊,所以就有了message变量。准确来说,message变量是用来备用字符的!

Q3:糖醋,这个教程如何处理扰乱值呢?

A3:唔……这个本糖花了几个小时还拉上了假·猫老祖和老鱼头来一起解决,总算试验成功啦!主要就是将大写或者标点符号直接打印啦~

〖·教程·〗

唔……由于之前本糖删帖了,怕大家忘记,本糖重新来讲一遍哈!咳咳,大家来想一下哈,小写转大写在Python里面需要用到ASCII值(好吧其实不用2333),but,编程猫你无论用什么积木组合,都调出不了ASCII值,很多人可能因为这个而放弃。但是呢,看得再深入一点,你就会发现:小写转大写只需要用到大写字母哇!所以我们就要在大写列表中导入大写英文,这样子拼积木哦:

如果觉得敲字比较辛苦的话,你可以选择复制粘贴

大写:ABCDEFGHIJKLMNOPQRSTUVWXYZ

小写:abcdefghijklmnopqrstuv喵yz

然后,效果是这样子的:

不知道大家发现没有呢?看,大写字母中的A对应着小写字母中的a,B对应b,C对应c……也就是说:它们所在的位置是一模一样的!现在,我们拥有了一个假冒的ASCII值2333……如果位置是一样的,那就很容易办了。那么,我们第一步就要先获取训练师所输入的字符串,并把它分开成列表,好以后计算位置和判断。这句代码简单到我都不想说了2333:

哦还有,那个询问的角色一定得隐藏,不然就很尴尬了呵呵……运行来看看吧!

大家如果看不见效果,可以右键图片选择在新标签页打开图片来查看。看,程序把我输入的字符串拆解成一个个小写的字符了,这对于搜索位置与判断就比较好办了。还记得我之前提到的大写与小写的内容位置相同吗?我们要抓住这个特点,来获取字符串中每一个字符的位置:

我来给大家详细讲一下这段积木什么意思吧,为什么要重复执行input的长度那么多次呢?直接定个1-10就行了嘛。如果定1-10之间的话,会存在几个弊端:第一,计算机运行时鬼知道你输入几个字符。第二,要是我输入11个字符呢?要是我输入12个字符呢?嗯好就这两个弊端,所以我们为了保险,就循环input的长度次。好【敲黑板】,接下来这个是整个程序的“心脏”部位,这句嵌套在循环的第一段代码呢,就是用来定位的。刚刚糖醋排骨输入了chris,用到这段代码,就会将第一项转为数字,好到时转大写时能调用。那么删除input第一项呢,就是程序的“脾胃”部位,也是非常重要。假如没有了这一段代码,你的input列表会莫名其妙多出一倍的项而且转换的都是同一个数,要是这时给你同学或者朋友看那就呵呵呵呵……咳咳,所以删除也是特别需要的!那么我们来运行代码,看看自己的劳动结果吧!

快看!本糖刚才输入了chris,程序将c、h、r、i、s转为了一串喵数字:3、8、18、9、19。程序将字符一个一个转为数值了!这样,待会就可以用简单的代码来转成大写了!那么具体怎样转大写呢?翠花,上积木!

好啦,看红框这一段代码,我们也是用了列表长度的循环,别问为什么,我讲过的……好啦,那么第二个循环的里的第一个积木是有什么用呢?没错,对应大写的值的!你想想,我输入了chris,通过上面的循环,input的第一项就是3对不对,那么套进去就是大写的第3项啦!把它扔进output的末尾,然后删除input第一项,大功告成!

这就是效果图啦,是不是很简单?

class over~

 

 

 

屁!我要拖堂!!反正下一节课也是我的课,没有课间!!!大家看刚刚的那段代码:返回字符?人家要字符串!还有,这什么鬼?!

咳咳,我来给大家解析一下为什么会报错。刚刚本糖在输入框打入了“Chris”,你看,小写列表里面只有a-z的小写英文单词,小写列表对于这个C会表示一脸懵逼,所以喵给了个0。就像考试有一道题目是1+1=?,你要是回答三,3,老师觉得你错就直接扣分。所以导致后面的循环变成了大写列表的第0项,然后就报错了,因为编程猫列表的第一项序号为1,而不是其他编辑器的0哈。

那么现在我们要解决并更新之前的两个问题,我们先将转字符串解决了吧!给大家看一下积木的图片吧:

那么红框这段代码什么意思呢?我们重复执行output长度-1次,为什么要-1呢?大家想想,我们逐渐将它们拼合,那就是这样的:

初始:C,H,R,I,S

第一次:CH,R,I,S

第二次:CHR,I,S

第三次:CHRI,S

最后一次:CHRIS

所以总共是四次,就是5(字符数量)-1啦!循环的第一段积木,必须用替换,之前本糖用添加闹出了许多喵bug,还有就是替换比较易懂。设第一项为第一项与第二项的合并,就是将c替换成ch,第二项就是h啦。没有删除第二项,最后会变成CHHHH,这就很尴尬了。所以,必须得删除第二项!

那么给大家看看效果图吧:

那么好啦,output返回字符串的功能已经做好啦!现在就会开始进入烧脑阶段:防熊功能!!!

首先我们将第一个循环更新为这个样子(我把下面的循环先移出去):

看这幅图,你们知道message变量有什么用了吧,它是用来储存字符根据后面的如果来决定自己的内容是不是扰乱值。你想,每当我们转换数字时,总是放在最后一项,如果列表最后一项为0的话,程序就替换最后一项为之前储存的字符,然后删除第一项,否则里面就如果非0的话,直接删第一项。至于为什么不直接输入0而是把积木放入=旁边,我不知道……那么有了这一串代码,本糖输入Chris试试看:

看!程序监测到C不在小写字符,就直接不理它,转成C而不是0了!所以我得到了四个数字与一个字符:C,8,18,9,19。然后更新第二个循环的内容:

框内是更新后的积木,跟大家说一下什么意思吧。他会判断第一个字符是否为整数,刚刚的积木将0转换为C,C压根就不是整数,所以直接打印,不需要转换了,记住删除!

好啦,现在我打入Chris来测试一下:

看!我们的积木生效啦!现在我们把第三个循环套进去,成为完整的upper函数:

什么?你问我lower函数怎么做?很简单,修改框内的两个列表就行啦!

作品链接:https://staging-frontend.codemao.cn/work/837563

真·class over~

 


回复

上一页1 页 / 共 1下一页
白鸽ovo白鸽ovo

沙发a

点赞0


评论


萌新程序猿_yyds萌新程序猿_yyds

点赞0


评论


Architect_皮卡awaArchitect_皮卡awa

emotion_编程猫_厉害了

点赞0


评论


꧁超级炫强战斗机꧂꧁超级炫强战斗机꧂

dddddddddddd

点赞0


评论


一门鸽鸽一门鸽鸽

挖挖

点赞0


评论