William01 发表于 2024-7-25 16:42:30

用自己的语言解释一下25课的几行代码,大家看下对不对


大家好, 在学第25课,刚好有点想法,分享出来看一下大家的看法。

代码如下:
oho=
for i in range(len(oho)):
    oho=oho*2

   
oho

oho=
oho=

oho


我自己的解释如下:
赋值oho等于
把oho里面的数值单独列出来
    列表oho等于单独列出的数值乘以2后组成的列表

执行oho
得到结果
赋值oho等于
oho列表里面的每一个数值乘以2


执行oho
得到结果

smallwh 发表于 2024-7-25 16:59:28

有一点问题
oho=
for i in range(len(oho)):
    oho=oho*2
就是对 oho * 2,乘 5 次。等价于 oho = oho * (2 ** len(oho))
赋值 oho 等于
重复执行[ oho 最开始的长度]次:
    列表 oho 等于最新的列表乘以 2 后组成的列表
下面是运行的结果:
>>> oho

Leone_YJ 发表于 2024-7-25 16:59:44

是对的

tommyyu 发表于 2024-7-25 17:02:44

2# 是对的。第三行应该改为:oho = oho * 2

William01 发表于 2024-7-25 17:07:22

smallwh 发表于 2024-7-25 16:59
有一点问题

就是对 oho * 2,乘 5 次。等价于 oho = oho * (2 ** len(oho))


你的解释看起来比我的要详细一些,但是我看不大懂。我本来还想拆解一下“for i in range(len(oho)):”, 然后归纳总结一下。但是发现以自己目前的水平,无法组织有效可读的文字,所以就直接归纳总结了。

William01 发表于 2024-7-25 17:08:05

Leone_YJ 发表于 2024-7-25 16:59
是对的

谢谢

William01 发表于 2024-7-25 17:17:07

tommyyu 发表于 2024-7-25 17:02
2# 是对的。第三行应该改为:oho = oho * 2

谢谢您的回复

smallwh 发表于 2024-7-25 17:18:35

William01 发表于 2024-7-25 17:07
你的解释看起来比我的要详细一些,但是我看不大懂。我本来还想拆解一下“for i in range(len(oho)):”,...

看来我的表述有些难理解
oho=
for i in range(len(oho)):
    oho=oho*2
这段代码如果把 for 循环改成重复的语句,是这样的:
oho=
oho=oho*2
oho=oho*2
oho=oho*2
oho=oho*2
oho=oho*2
它只能延长列表,使列表不断重复,不能把列表 oho 变成
oho=
for i in range(len(oho)):
    oho = oho * 2
这样就可以把列表 oho 变成 了

奋斗中的鱼 发表于 2024-7-25 18:02:24

确实,oho是一个列表而不是它里面的元素,oho=oho*2只是对整个列表进行操作,而没有对单独的元素进行变换。

如果要修改单独的元素,要用下标指名列表的哪一个元素,即oho,然后再操作,oho = oho*2

William01 发表于 2024-7-25 22:22:23

smallwh 发表于 2024-7-25 17:18
看来我的表述有些难理解

这段代码如果把 for 循环改成重复的语句,是这样的:


我还是不大懂。不过我觉得这是我个人的问题,毕竟刚开始学没多久,需要多看多思考,慢慢应该就会明白了。谢谢您的认真回复。
页: [1]
查看完整版本: 用自己的语言解释一下25课的几行代码,大家看下对不对