鱼C论坛

 找回密码
 立即注册
查看: 1201|回复: 9

[已解决]25课的动动手 提示把我看懵了

[复制链接]
发表于 2022-1-26 16:44:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
如图。。。
为什么TOP和LEFT初始值是0?
原始列表里的一个元素的长度为什么叫做RIGHT?
原始列表里的元素个数为什么叫做BOTTOM?

为什么转来转去,第二次遍历的时候就各种+1 -1的。。。

提示都看昏了=。=  
有没有谁能帮忙解释一下???

最后为什么LEFT比RIGHT大,TOP比BOTTOM大就结束了???


另外有没有鱼C的PYTHON交流的微信群啊。。
每次发帖询问的话还是有些不及时

谢谢各位大佬了!
最佳答案
2022-1-26 18:18:16
top 就是表示目前遍历到了多维列表的哪一行,
而 left 就是表示目前遍历到了多维列表的那一列,
而 right 表示多维列表的行数,
而 bottle 表示多维列表的列数。
所以每遍历一次,也就是转一个圈,
多维列表的列数就会少一行,所以 bottle 就会减一,
而多维列表的行数便也少一列,所以 right 也要相应的减一,
而多维列表目前遍历到的行数便也会多一行,所以 top 就要加上一,
而多维列表目前遍历到的列数便也会多一列,所以 left 就要加上一。


懂了吗?不懂可以再问!懂了就给个好评呗!!!

打字不易!请给个好评!!!
兄弟!给个好评!求求了!!!



ps:我当时为了理解,花了我一周时间,你要好好珍惜我的劳动成果啊!!!
1.png
2.png
3.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-1-26 16:45:25 | 显示全部楼层
请不要无意义灌水!
举起手来!不然我要举报了!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-1-26 16:46:49 | 显示全部楼层
本帖最后由 镜花丿水月 于 2022-1-26 16:48 编辑
python爱好者. 发表于 2022-1-26 16:45
请不要无意义灌水!
举起手来!不然我要举报了!!!


没有灌水。。。。发了带图片的帖子 说帖子找不到了。。。我就试一下文字的帖子能不能发出来 然后编辑内容。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-1-26 17:58:26 | 显示全部楼层
顶一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-1-26 18:18:16 | 显示全部楼层    本楼为最佳答案   
top 就是表示目前遍历到了多维列表的哪一行,
而 left 就是表示目前遍历到了多维列表的那一列,
而 right 表示多维列表的行数,
而 bottle 表示多维列表的列数。
所以每遍历一次,也就是转一个圈,
多维列表的列数就会少一行,所以 bottle 就会减一,
而多维列表的行数便也少一列,所以 right 也要相应的减一,
而多维列表目前遍历到的行数便也会多一行,所以 top 就要加上一,
而多维列表目前遍历到的列数便也会多一列,所以 left 就要加上一。


懂了吗?不懂可以再问!懂了就给个好评呗!!!

打字不易!请给个好评!!!
兄弟!给个好评!求求了!!!



ps:我当时为了理解,花了我一周时间,你要好好珍惜我的劳动成果啊!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2022-1-26 23:05:52 | 显示全部楼层
#把矩阵想像成一个正方形,那它有什么特征?对的它有四个面所以我们要定义它的4个面
matrix = [[1,2,3,4],
          [5,6,7,8],
          [9,10,11,12],
          [13,14,15,16]]

#防止矩阵发生改变,进行数据关联
#获取列表的行的长度并赋值给 rows
#过去列表的列的长度并赋值给 tall
tows = len(matrix)
#tows 与 tall 变量的作用:防止矩阵改变,代码无法判断运行,例如 矩阵为3*3,那么在下面代码中每一行都要 减少一个单位(-1)
tall = len(matrix[0])


left = 0  #左边
right = tall - 1 #行长

top = 0   #顶部
bottom = tows - 1  #底部

JIAYOU = []  #用来存储变量
while left <= right and top <= bottom:  #左边小于右边,顶部小于底部
    #若是我们用到range() ,它是取不到尾数的,所以我们要 + 1 ,超过范围才能取的到
    #从左往右遍历
    for col in range(left , right+1):
        JIAYOU.append(matrix[top][col])

    #从上到下遍历
    for row in range(top+1 , bottom + 1):
        JIAYOU.append(matrix[row][right])

    if left < right and top < bottom:
        #从右往左遍历
        for col in range(right-1 , left,-1):
            JIAYOU.append(matrix[bottom][col])

        #从下到上遍历
        for row in range(bottom , top , -1):
            JIAYOU.append(matrix[row][left])
    
    #当转外圈的时候部分固定的值都+1,要回到内圈的时候部分固定值都-1,这样就OK
    #判断条件是否满足
    left += 1
    right -= 1
    
    top += 1
    bottom -= 1

print(JIAYOU)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-1-26 23:13:33 | 显示全部楼层
如果你已经弄懂了上面代码,不妨在答应我一个小小的要求:1,按逆时针旋转打印 ,2,从内到外旋转打印
当然我并没有再坑你
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-1-27 09:18:11 | 显示全部楼层
python爱好者. 发表于 2022-1-26 18:18
top 就是表示目前遍历到了多维列表的哪一行,
而 left 就是表示目前遍历到了多维列表的那一列,
而 right ...

谢谢!!!已经给了最佳答案 您这一解释我就明白了是什么意思了!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-1-27 09:19:17 | 显示全部楼层
做最好的自己520 发表于 2022-1-26 23:13
如果你已经弄懂了上面代码,不妨在答应我一个小小的要求:1,按逆时针旋转打印 ,2,从内到外旋 ...

不好意思哈!!我是想知道  老污龟的提示是什么意思 然后自己想通自己敲代码。。。。谢谢哦!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-1-27 10:24:08 | 显示全部楼层
感谢兄弟好评!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 09:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表