2016-09-28 3 views
1

Ich arbeite an einem Projekt für meine Schule und ich frage mich, ob es eine Möglichkeit gibt, eine Rangliste in Python zu erstellen? Ich bin ziemlich neu in Python und bis jetzt, was ich getan habe, ist die Eingabe des Benutzers und speichern Sie es in einer Textdatei. Ich bin mir nicht sicher, wie ich weitermachen soll. Jede Hilfe wird geschätzt, danke!Wie machst du eine Rangliste in Python?

x = 0 

Name = [None]*1000 
Class = [None]*1000 
Score = [0]*100 

# opens the text file called text_file 
text_file = open("write.txt","a") 

# puts in the values of the highest scores and "saves it" by closing and opening the file 
def write_in_file(): 
    global text_file 
    text_file.write(Name[x]) 
    text_file.write("\n") 
    text_file.write(Class[x]) 
    text_file.write("\n") 
    text_file.write(Score[x]) 
    text_file.write("\n") 
    text_file.write("\n") 
    text_file.close() 
    text_file = open("write.txt","a") 

# asks for player data and puts highest value in a file 
for i in Name: 
    Name[x] = input("Name:") 
    Class[x] = input("Class:") 
    Score[x] = input("Score:") 
    write_in_file() 
    print(Score) 
    x += 1 
+0

Könnten Sie auch die gewünschte Ausgabe von diesem Post? Sollte es Namen nach Punkten sortieren? –

+0

Haben Sie eine bestimmte Sache, die Sie versuchen zu tun? – Holloway

+0

Entspannen Sie sich und lassen Sie uns durch die Logik denken. Ihr Endziel ist es, die Noten zwischen verschiedenen Benutzern zu vergleichen und nach ihren Zahlen zu sortieren. Also, 1. Wie werden Sie neue Benutzer einfügen? 2. Wie werden Sie neue Klassen einfügen? 3. Wie werden Sie Benutzer aus der gleichen Klasse/anderen Klasse vergleichen? 4. Wie werden Sie die Benutzer bewerten? Entspannen Sie sich, denken Sie und versuchen Sie Ihr Bestes. – PSone

Antwort

1

Sie können pandas für die Erstellung einer Bestenliste Tabelle verwenden. Hier ist ein Beispiel:

import pandas as pd 

df = pd.DataFrame({'Name': ['x','y','z'], 
        'Class': ['B','A','C'], 
        'Score' : [75,92,56]}) 
print (df) 

Out[3]: 
    Class Name Score 
0  B x  75 
1  A y  92 
2  C z  56 


# changing order of columns 
df = df.reindex_axis(['Name','Class','Score'], axis=1) 

# appending 
df.loc[3] = ['a','A', 96] 

print (df) 

Out[15]: 
    Name Class Score 
1 y  A  92 
3 a  A  96 
0 x  B  75 
2 z  C  56 

# sorting 
df = df.sort(['Class', 'Score'], ascending=[1, 0]) 

print (df) 

Out[16]: 
    Name Class Score 
3 a  A  96 
1 y  A  92 
0 x  B  75 
2 z  C  56 
Verwandte Themen