2024-05-20 00:05:48 发布
网友
嗨,我对R和Python还不熟悉,只是想理解为什么下面的代码没有给出无穷大的值:
in R : for (i in 1:10) { print(i) i=5 }
结果:
在Python中:
for i in range(10): print(i) i = 5
0 1 2 3 4 5 6 7 8 9
当我们在每次迭代i到5之后设置值时,它应该进入无限循环。 请帮助我理解。在
提前谢谢。 灰烬
合法的问题和不公平的否决票!在
在R中,i在for循环中的行为就好像它是在每次迭代时从另一个环境中存储、递增和重新加载的(可能是这样),并不是所有语言都是这样,但在R中是这样的。在
R
i
来自R Inferno:
R Inferno
8.1.64迭代是神圣不可侵犯的
在下面的循环中,“i”有两个用法。在
> for(i in 1:3) f + cat("i is", i, "nn") + i <- rpois(1, lambda=100) + cat("end iteration", i, "nn") + g i is 1 end iteration 93 i is 2 end iteration 91 i is 3 end iteration 101
在循环体中创建的i在迭代期间使用,但是 不会更改开始下一个迭代的i。这不同于 其他语言(包括S+)。在
这证明了R很难混淆,但这样的代码肯定会混淆 人类。所以要避免。在
合法的问题和不公平的否决票!在
在
R
中,i
在for循环中的行为就好像它是在每次迭代时从另一个环境中存储、递增和重新加载的(可能是这样),并不是所有语言都是这样,但在R
中是这样的。在来自
R Inferno
:8.1.64迭代是神圣不可侵犯的
在下面的循环中,“i”有两个用法。在
在循环体中创建的i在迭代期间使用,但是 不会更改开始下一个迭代的i。这不同于 其他语言(包括S+)。在
这证明了R很难混淆,但这样的代码肯定会混淆 人类。所以要避免。在
相关问题 更多 >
编程相关推荐