如何在Python中迭代处理下一组输入并执行求和操作?
搞定迭代求和的问题啦!
先帮你捋捋当前代码里的几个小坑:
- 你写的
add函数逻辑有点混乱,里面的循环根本没发挥作用,一进去就直接返回x+y,完全没用到store_array - 最后只调用了一次
print语句,自然只会输出第一组数字的和 j变量的管理也有点乱,全局变量和函数里的变量混在一起,没起到迭代的作用
修复后的完整代码
store_array = list() # 直接把测试用例数转成整数,省得后面重复转换 test_case = int(input()) for i in range(test_case): # 输入时直接转成整数,不用先存字符串再处理 number1 = int(input()) number2 = int(input()) # 把每组两个数存成元组,这样数组里的元素就是一对一对的,更清晰 store_array.append((number1, number2)) # 这个add函数其实很简单,就是返回两个数的和 def add(x, y): return x + y # 遍历数组里的每一对数字,调用add函数求和并输出 for pair in store_array: print(add(pair[0], pair[1]))
甚至可以更简洁(不用额外存数组)
如果你不需要保留所有输入的数字,其实连store_array都可以省掉,直接在循环里计算输出,效率更高:
test_case = int(input()) # 用_代替i,因为这里不需要用到循环变量 for _ in range(test_case): num1 = int(input()) num2 = int(input()) print(num1 + num2)
为啥原代码只输出一次?
原代码最后只执行了一次print(add(store_array[j], store_array[j+1])),而且j初始是0,所以只取了前两个元素。另外你的add函数里的循环完全是多余的,函数一进去就return x+y,循环根本没机会执行哦。
内容的提问来源于stack exchange,提问作者trravic
相关产品推荐
相关产品推荐

