循环中简单的逻辑解释?

时间:2016-03-23 19:26:40

标签: python loops logic

我正在尝试解决与循环相关的逻辑问题。如果我有一个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

2 个答案:

答案 0 :(得分:1)

你的基本逻辑是正确的。这是你的算法:

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整除),则没有理由将它们保存到数组中。迭代仍将循环遍历这些值,但在这种情况下,不对它们执行任何操作。

答案 1 :(得分:1)

看起来您有一个列表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]