R和Python中的无限for循环
您好,我对R和Python不熟悉,只是想理解为什么下面的代码没有给出无限值:R和Python中的无限for循环,python,r,for-loop,infinite-loop,Python,R,For Loop,Infinite Loop,您好,我对R和Python不熟悉,只是想理解为什么下面的代码没有给出无限值: in R : for (i in 1:10) { print(i) i=5 } 结果: [1] 1 [1] 2 [1] 3 [1] 4 [1] 5 [1] 6 [1] 7 [1] 8 [1] 9 [1] 10 0 1 2 3 4 5 6 7 8 9 在Python中: for i in range(10): print(i) i = 5 结果: [1] 1 [1] 2 [1] 3 [1
in R :
for (i in 1:10) {
print(i)
i=5
}
结果:
[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] 6
[1] 7
[1] 8
[1] 9
[1] 10
0
1
2
3
4
5
6
7
8
9
在Python中:
for i in range(10):
print(i)
i = 5
结果:
[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] 6
[1] 7
[1] 8
[1] 9
[1] 10
0
1
2
3
4
5
6
7
8
9
当我们在每次迭代i到5之后设置值时,它应该进入无限循环。
请帮助我理解
提前谢谢。
阿什什合法的问题和不公平的否决票 在
R
中,for循环中的i
的行为就好像它在每次迭代时从另一个环境中存储、递增和重新加载一样(可能是这样),并非所有语言都是这样,但在R
中是这样的
从R地狱
:
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
>用于(1:3中的i)f
+猫(“我是”,我,“nn”)
+i,因为for语句会在循环的顶部重置它。您可能会将i
重置为5
,但在for
循环重置i
后,它会立即重置为范围内的下一个值。首先,这将是生成无限循环的最糟糕方式,其次,for循环不会以这种方式工作@朱利安,差不多已经解释过了!即使stackoverflow不是这样工作的,您也要求同时在R和python中创建无限for循环,而没有指定为什么需要无限循环。她可能只需要简单的评论。使用而在不中断条件的情况下使用循环,它将work@Gahan,我只是想了解循环是如何工作的。