您好我有一个代码块在这里,打算读的输入变量:不知道为什么Python的readlines方法()不在这里工作了
if __name__ == "__main__":
data = list(map(int, sys.stdin.readlines().split()))
n, capacity = data[0:2]
values = data[2:(2 * n + 2):2]
weights = data[3:(2 * n + 2):2]
opt_value = get_optimal_value(capacity, weights, values)
print("{:.10f}".format(opt_value))
然后自定义get_optimal_value(容量,重量,值)将被执行。输入例:
3 50
60 20
100 50
120 30
它应该做到以下几点:
n = 3
capacity = 50
values = [60,100,120]
weights = [20,50,30]
但是,代码不进行后,我在上面输入数字输入和没有给我结果。这意味着数字不会被读入变量,列表也不会被制定。我尝试将我的代码放入一个自动错误检查器中;它告诉我:
AttributeError: 'list' object has no attribute 'split'
这是为什么,我该如何修改我的代码?
附加问题:数字读数是否自动知道停止位置,即当它检测到空间并且没有后续数字时?我假设代码会在读取所有输入数据后立即执行函数并计算结果,在流程方面是否正确?我觉得在输入输入后缺少'步骤'来通知代码'计算'。
'readlines方法()'返回一个字符串列表(每行一个字符串)。你可以将它改为'read()',它将整个文件读入一个字符串,然后可以用split()分割。 – Meyer