我的Python输出有问题
我正在尝试以
形式输入2
1 10
2 20
2是测试次数,每行代表函数使用的数字
为了能够有一个输出,我将值存储在Python的选项卡中。问题是我的标签没有正确的值。使用之前给出的值,我在查看选项卡时得到以下结果
1 2 20 5
这是我的代码,谢谢:
nbTest = input()
Tab = range(1,2*nbTest + 2)
for i in range(1,nbTest + 1):
a,b = map(int,sys.stdin.readline().split())
Tab[i] = a
Tab[i+1] = b
i = i + 1
print Tab[1], Tab[2], Tab[3], Tab[4]
答案 0 :(得分:0)
首先,您不必在python中“初始化”列表,所以
Tab = range(1,2*nbTest + 2)
是不必要的。
第二:行
i = i + 1
不执行任何操作,因为之后会立即重新分配变量i
。
第三:您应该将值元组附加到输出列表中,如下所示:
nbTest = int(raw_input())
inputs = []
for i in range(0,nbTest):
a,b = map(int, raw_input().split())
inputs.append((a,b))
print nbTest
for el in inputs:
print el[0], el[1]
答案 1 :(得分:0)
您不应该修改循环内的循环变量i
。
由于i = i + 1
循环重新分配了i
,因此for
行无效,因此您使用Tab[i+1]
覆盖上一次迭代的Tab[i]
。如果您希望i
在每次迭代时增加2,请使用range(1, nbTest+1, 2)
。
另请注意,您无需初始化列表大小,只需执行Tab=list()
,然后使用Tab += [a,b]
此外,pythons数组从0开始,因此你的范围也必须从0开始。否则,列表的第一个插槽将不会被替换。
注意如果您使用的是python3,如果希望Tab = list(range(1, 2*nbTest+2))
成为列表,则必须Tab
。