等效于嵌套c ++样式的Python循环

时间:2018-07-06 18:32:57

标签: python python-3.x iterator

在c ++中

for (auto i = min; i < sqrt_max; i++ ) {
    for (auto  j = i; i*j <= sqrt_max; j++) {

我正在尝试在python中做同样的事情

for i in enumerate(range(min, sqrt_max  + 1)):
    for j in enumerate(range(min, i * j < sqrt_max + 1)):

我得到undefined name j

1 个答案:

答案 0 :(得分:0)

  1. 不要在两个循环中都使用enumerate(..)enumerate采取的措施是为其参数中的每个index, element返回一对element
  2. 您不能像以前那样使用j,因为它仅在for循环体内定义。

您想要的东西如下:

for i in range(min, sqrt_max):  # i will not take the value of sqrt_max.
    for j in range(i, 1 + sqrt_max//i):  # i is defined here within range, but j is not.
        ...