您好我有一個代碼塊在這裏,打算讀的輸入變量:不知道爲什麼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