我只是一个初学者程序员,只是想问是否可以接受/良好的代码混乱你的迭代器在for循环中。 示例(Python):乱七八糟在循环中的迭代
For i in range(n)
if _statement_:
i -= 1
...
我不是有一个问题或任何
,我的代码似乎工作得很好,像这样的,但我不知道这是否算作“好”的代码。
我只是一个初学者程序员,只是想问是否可以接受/良好的代码混乱你的迭代器在for循环中。 示例(Python):乱七八糟在循环中的迭代
For i in range(n)
if _statement_:
i -= 1
...
我不是有一个问题或任何
,我的代码似乎工作得很好,像这样的,但我不知道这是否算作“好”的代码。
你不惹迭代 - 您只需创建一个同名的变量,并用它做什么
>>> for a in range(5):
... print id(a)
... print a
... a -= 1
... print id(a)
... print
...
24822128
0
24822152
24822104
1
24822128
24822080
2
24822104
24822056
3
24822080
24822032
4
24822056
正如你可以看到这些都是不同变量和循环明显迭代5次。
这是一个很好的做法吗? 否。这是一种相反的东西,因为人们应该期望在循环内部,“a”在每一行中都是相同的。如果你想实际影响重复循环的数量不应该使用while
循环相反,你应该有所不同命名您的变量,像
>>> for a in range(10):
... print a
... b = a - 1
。
您提供的代码是可以接受的,但不是特别有效。您的循环将运行相同的次数,无论您是否修改i
。
>>> for i in range(5):
>>> i = i - 1
>>> print(i)
-1
0
1
2
3
当你修改变量i
,它会创建一个新的,从一个控制回路分开。
我认为修改你的迭代器的当前值是好的,并且只是一个新的变量。但我不会建议修改迭代器本身就像
my_list = [1, 2, 3, 4]
for i in my_list:
my_list.append(i+4)
会产生一个无限循环
它不会做任何事情,你的实际迭代,这只会使'i'参考其他一些变量。也就是说,它仍然会运行n次,无论你将“i”设置为等于 –
除了你有语法问题。 'range(n)'后面缺少':',对'if'块缺少意图 – Alexander