循环中的简单逻辑解释?
Simple logic explanation in loop?
我正在尝试解决与循环相关的逻辑问题。如果我有一个 n 循环,比如说,50 次迭代,并且我只想提取迭代为 n+10
(值为 10、20、30、40 和 50 的值)时的值,那么什么是逻辑? (注释中的行是我的逻辑,仍然导致输出错误):
x[0] = 0
for n in xrange(0,50):
x[n+1] = x[n] + 5
#if x[n]%10==0:
#y = x[n]
print x
#print y
你的基本逻辑是正确的。这是你的算法:
For every element n between 0 and 50:
if n is evenly divisible by ten
return the value of n
不过,您的实施有点不对劲。试试这个:
x = list()
for n in range(0,50):
if n % 10 == 0: # Save the value if it's evenly divisible by ten
x.append(n)
print(x)
在 REPL 中这给出了输出:
>>> print(x)
>>> [0, 10, 20, 30, 40]
请注意,如果您不需要其他值(不能被 10 整除),则没有理由将它们保存到数组中。迭代仍将遍历这些值,但在这种情况下,不对它们执行任何操作。
您似乎有一个列表 x
并且想要设置 x
中的每个值。您还希望 y
成为 x
的子集(每第 10 个元素)。
x = [0] * 51
for n in range(50):
x[n+1] = x[n] + 5
y = x[::10]
print(y) # prints [0, 50, 100, 150, 200]
我正在尝试解决与循环相关的逻辑问题。如果我有一个 n 循环,比如说,50 次迭代,并且我只想提取迭代为 n+10
(值为 10、20、30、40 和 50 的值)时的值,那么什么是逻辑? (注释中的行是我的逻辑,仍然导致输出错误):
x[0] = 0
for n in xrange(0,50):
x[n+1] = x[n] + 5
#if x[n]%10==0:
#y = x[n]
print x
#print y
你的基本逻辑是正确的。这是你的算法:
For every element n between 0 and 50:
if n is evenly divisible by ten
return the value of n
不过,您的实施有点不对劲。试试这个:
x = list()
for n in range(0,50):
if n % 10 == 0: # Save the value if it's evenly divisible by ten
x.append(n)
print(x)
在 REPL 中这给出了输出:
>>> print(x)
>>> [0, 10, 20, 30, 40]
请注意,如果您不需要其他值(不能被 10 整除),则没有理由将它们保存到数组中。迭代仍将遍历这些值,但在这种情况下,不对它们执行任何操作。
您似乎有一个列表 x
并且想要设置 x
中的每个值。您还希望 y
成为 x
的子集(每第 10 个元素)。
x = [0] * 51
for n in range(50):
x[n+1] = x[n] + 5
y = x[::10]
print(y) # prints [0, 50, 100, 150, 200]