【问题标题】:how to step over through next iteration?如何跨过下一次迭代?
【发布时间】:2018-10-27 05:50:06
【问题描述】:
store_array = list()
test_case = input()
for i in range(int(test_case)) :
    number1 = input()
    number2 = input()
    store_array.append(int(number1))
    store_array.append(int(number2))

j=0
def add(x,y):
    for j in store_array:
        return x + y 
        j=j+1       
print(add(store_array[j],store_array[j+1]))   

到目前为止我做了什么?

测试用例-> 2

2 2 3 3

这些值存储在名称 store_array 下的列表中

它执行并打印前两个值 2 2 并显示输出 4

我怎样才能跳到接下来的两个值并打印连续的其他两个输入?

【问题讨论】:

  • 所以你想向前迈出每一个其他的价值对吗?为什么不直接将迭代器增加 2 而不是 1?
  • 试过但没有意义
  • 请更好地解释您想要实现的目标。
  • 你对 j 的缩进和使用 return 和增量都没有多大意义

标签: python-3.x algorithm math arithmetic-expressions


【解决方案1】:

听起来你想向前迈进每一个其他的价值。试试这个,看看是否有帮助。

简单的改变:

j=0
def add(x,y):
    for j in store_array:
        return x + y 
        j=j+1  
print(add(store_array[j], store_array[j+1]))  

对此:

def add(x):
    for j in range(0, len(store_array) -1, 2):
        print(x[j] + x[j+1])      

print(add(store_array))  

这可能具有您正在寻找的确切行为,但它是一个很好的起点。

【讨论】:

  • 感谢您的回答,但没有意义
  • @Thiyagu 你能解释更多吗?你是什​​么意思它没有意义?
  • 它保持不变,即使更新 j = j + 2,前两个值被打印出来,其余的留在原处
  • @Thiyagu 我的错,我误解了你想要做的事情。我编辑了我的答案,所以它应该是一个很好的起点,但不幸的是我不完全理解你想要做什么。
  • 不要更改迭代变量的值,这很容易混淆。相反,使用range 的参数去 2 by 2
【解决方案2】:

考虑“继续”语句。 它使循环跳过一些迭代。

for i in range(6):
    if i % 2 == 0:
        continue
    print(i)

它会跳过所有偶数。

【讨论】:

  • 是的,但作者可能不熟悉“继续”的概念
猜你喜欢
  • 2014-06-30
  • 1970-01-01
  • 2017-11-07
  • 2013-10-03
  • 2010-10-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-26
相关资源
最近更新 更多