Python数组查询代码如何获取stdout标准输出而非调试输出
修改方案
你当前代码里的调试输出就是额外打印的results are :这行,删掉这行就能得到仅包含结果的标准输出。如果要更符合工程规范,还可以调整函数逻辑让它返回结果集合,由调用侧控制输出逻辑,避免函数耦合打印行为。
直接修改后的可运行代码
def getElements(arr, queries): size = arr[0] newarray = [] subarray = [] for i in range(1, len(arr)): subarray.append(arr[i]) if(i % size == 0): newarray.append(subarray) subarray = [] # 已删除调试提示行,仅打印查询结果 for q in queries: print((newarray[q[0] - 1])[q[1] - 1]) n = int(input()) arr = [] for i in range(n): arr.append(int(input())) queries = [[3, 2], [2, 1]] getElements(arr, queries)
运行后会直接逐行输出10和5,没有多余调试信息。
更规范的可复用写法
调整为函数返回结果,外部处理输出,方便后续扩展使用:
def getElements(arr, queries): size = arr[0] newarray = [] subarray = [] res = [] for i in range(1, len(arr)): subarray.append(arr[i]) if(i % size == 0): newarray.append(subarray) subarray = [] for q in queries: res.append((newarray[q[0] - 1])[q[1] - 1]) return res n = int(input()) arr = [] for i in range(n): arr.append(int(input())) queries = [[3, 2], [2, 1]] # 调用侧自主控制输出逻辑 results = getElements(arr, queries) for r in results: print(r)
内容的提问来源于stack exchange,提问作者CharlesXavier
相关产品推荐
相关产品推荐

