CodeMonkey之Python关卡21~25详解(五)

。_饼干妹妹 提交于 2020-02-12 21:22:17

第21关

在这里插入图片描述
这一关依旧是对for循环的练习。
我们需要先将长颈鹿的高度降下来,才能够让蛇的长度伸长。小车才能顺利通过。

答案:

for giraffe in giraffes:
    #更改每只长颈鹿的高度
    giraffe.height = 2
    
for snake in snakes:
    #更改每条蛇的长度
    snake.length = 5

第22关

在这里插入图片描述
这一关开始介入列表索引的概念。
首先,

for index in range(3):
    print(index)

这是一个for循环,range(x)的含义即[0,1,2…,x-1]
上面循环的输出结果是:[0,1,2]
如果是range[x]呢?即是从0开始,一直到x-1,for循环在迭代这个列表的时候,会依次取出1,,再取2,再取3…最后一个取x-1。
在此关卡中,长颈鹿和蛇又分别组成了两个列表。所以长颈鹿列表中,第一个长颈鹿就可以表示为:giraffes[0]。第二个长颈鹿就可以表示为:giraffes[1]。即 列表名[元素的索引下标]。列表中,元素的索引下标从0开始数。
答案:

for index in range(3):
    print(index)
    giraffes[index].height = 3
    snakes[index].length = 5

这个执行过程是:第一个长颈鹿高度调整为3,第一条蛇长度调整为5,让后继续调整第二只长颈鹿,第二条蛇。。。以此类推。

第23关

在这里插入图片描述
这一关的最终目的,是让蛇伸长脖子,长颈鹿全部高度一致。在这个过程中,其实就是对他们的代表 giraffes[index].height 、 snakes[index].length 进行重新赋值。无非就是改变 index 的值:0、1、2、3

range 对象是一个迭代器对象,用来产生指定范围的数字序列。格式为:

range(start, end [,step]) 

生成的数值序列从start 开始,到 end结束(不包含 end)。
若没有填写start,则默认从 0 开始。step是可选的步长,默认为 1。如下是几种典型示例:

for i in range(10)

输出结果:0 1 2 3 4 5 6 7 8 9

 for i in range(3,10) 

输出结果:3 4 5 6 7 8 9

 for i in range(3,10,2)

输出结果:3 5 7 9

答案:
此题,需要的是0,1,2,3
即需要range(4) 即可。

第24关

在这里插入图片描述
这一关出现了两个运行按钮,不要慌。其实也是很简单。
先看上面部分:
在这里插入图片描述
这第一只长颈鹿的高度giraffes[0].height和第一条蛇的长度snakes[0].length是标准的。那么我们只需要让后面所有的长颈鹿的高度、蛇的长度都跟他们俩一样就行了。
但是,先不要着急,先看程序给我的前两行代码:

goal_length = snakes[0].length
goal_height = giraffes[0].height

goal 英语单词的意思是 目标 。那这两行的代码的含义就很好猜了。。目标长度、目标高度。程序将第一条蛇的长度、第一只长颈鹿的高度赋值给了他们。那么再来看下面的部分:
在这里插入图片描述
通过观察我们也能发现,正好前两条代码也适用。
那问题就很好解决了。我们只需要让所有蛇的长度都等于第一条蛇的长度,让所有的长颈鹿的高度都等于第一只长颈鹿的高度,就OK了。。
这有一点需要注意的是,不能再写数字了,因为这个一段程序要适用于两个场景,那么就一定会用到变量了。

ps:
len( ) 函数,用于返回列表中的对象数量。

 a = [1,2,3,4,5,6]
 print(len(a))

结果是 6.

答案:

goal_length = snakes[0].length
goal_height = giraffes[0].height

for index in range(len(snakes)):
    snakes[index].length = goal_length
    giraffes[index].height = goal_height

第25关

在这里插入图片描述
这一关重点考察range( )函数。
还是三个参数:

range(start, end [,step]) 

并不是所有的鲸鱼都需要喷水,只需要第3~6。所以取 rang(2,6)
第一只鲸鱼喷水的指令:whales[0].blow(5)
那以此类推,第3到第6就把0分别换成 2,3,4,5
所以这里只需要在最后添加一行鲸鱼喷水的指令就可以了。注意代码缩进。

答案:

print("range(2,6) creates the following:")
print(range(2,6))
for index in range(2,6):
    print(index)
    whales[index].blow(5) 
    "index是索引"

本文版权所有,引用请注明出处,商用必究!

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!