我正在創建一個學生評分程序:它從輸入模式開始,要求提供姓名,年齡,科學等級,數學成績和英語成績。
然後有多種可能的操作:添加學生,添加學校課程,打印每個添加的學生,以及 - 在不同主題中打印從最低到最高的結果。最後一個動作是我遇到的問題。如何在Python中對字符串列表和相關數字列表進行排序?
我失敗的原因是用戶在主菜單中輸入'4',然後詢問用戶是否要顯示學生的數學,物理或英語結果。當用戶指定他們想顯示什麼,像下面這樣就會產生:
Jill: 3
Marvin: 4
Jack: 6
Raf: 80
我知道如何通過數字與sort()函數進行排序,但我怎麼做「吉爾」走在與列表中的'3'相同的地方。
這讓我可以做這樣的事情:
for p in range(len(allStudents)):
print(allStudents[p].printName(), ":" , mathsAll[p] , "/100")
我知道我可以使用字典對於這一點,但再假設我輸入用戶名爲「吉爾」,那麼它將覆蓋第一一。
完整的代碼可以發現:http://pastebin.com/R2uGAQVg 任何幫助將不勝感激!
絕對需要您提供樣本輸入和輸出。 –
我無法對你使用的數據結構做任何猜測,但我懷疑這是不理想的。告訴我們你在做什麼,也許我們可以建議一個更好的結構,使這些任務更容易。 – TigerhawkT3
我會讓程序更簡單。假設有一個菜單隻能接收2個輸入,如果用戶輸入1,則會提示用戶輸入:有科學成績,他們的數學成績,他們的英語成績和學生的姓名。如果用戶輸入4,則它將提示用戶輸入1)數學2)科學3)英語。如果用戶輸入1,那麼它將顯示所有學生所有學生的數學結果從最低到最高。我不能只創建一個字典,因爲如果我輸入兩次相同的名字,那麼它會覆蓋。那麼,你如何創建一個不會覆蓋的字典。 – mre12345