2016-04-25 434 views
1
file = open("resultsA.txt", "r") 
    for line in file: 
     x = line.split(",") 
     a = x[0] 
     score_one = x[1] 
     score_two = x[2] 
     score_three = x[3] 
     names = sort(a) 
     maximum = max(score_one + score_two + score_three) 
     print(names + "-" + maximum) 

我已經成功測試了這個代碼,並輸出了一組變量的最大值。不過,我一直在試圖組織變量「名」,使其輸出的所有字母但它一直沒有工作的名字,我跟此錯誤:here按字母順序排序

+3

發佈錯誤文本(運行代碼在控制檯) – jfs

+0

感謝您的快速響應。我收到的文本錯誤如下 「Traceback(最近調用最後一次): 文件」C:\ Users \ Nightly \ Desktop \ Python \ Task 3.py「,第42行,在 names = sort (a) TypeError:'str'對象不可調用「 – Nightly

回答

0

由於x[0](後來a)是第一個輸入的行,sort(a)將無法​​按預期工作。即使是sort實施缺少這裏(sort是不是一個內置的,可你的意思sorted?)

你必須建立姓名和分數的列表和排序的整個列表。

嘗試是這樣的:

file_results = open("resultsA.txt", "r") 
lines_splited=[line.strip().split(",") for line in file_results] 
lines_sorted=sorted(lines_splited, key=lambda v:v[0]) 
results=[(name, max(a,b,c)) for name, a, b, c in lines_sorted] 

for name, score in results: 
    print(name+"-"+score) 

我的測試resultsA.txt:

C,2,1,0 
A,1,2,3 
B,3,4,1 

結果運行腳本時:

A-3 
B-4 
C-2 
+0

對不起,對於遲到的響應,但這幫助我更明白我的代碼,並且能夠調整我的代碼並使其工作。非常感謝! – Nightly