2016-02-24 2 views
2

Tout mon code ressemble à ceci.Trier le fichier csv par ordre alphabétique

import random 
import time  
import operator 
import sys 


Class = 0 
print("Welcome to the 10 question maths quiz!")   
time.sleep(1)            
firstname = input("Please enter your first name.\n")  
time.sleep(1) 
secondname = input("Please enter your second name.\n") 
time.sleep(1) 
Class = int(input("What class are you in?\n")) 

while Class <1 or Class >3: 
    Class = int(input("What class are you in?\n")) 

input("Press enter to start the quiz.\n")     

Question = 1 
Score = 0 

while Question <11: 
    Num1 = random.randint(5,15) 
    Num2 = random.randint(5,15) 
    Ops = {'+':operator.add, 
      '-':operator.sub, 
      'x':operator.mul,} 
    Operation = random.choice(list(Ops.keys())) 

    print("Question",Question) 
    print(Num1, Operation, Num2) 
user_input = int(input()) 
if Operation == "+": 
    answer = (Num1+Num2) 
elif Operation == "x": 
    answer = (Num1*Num2) 
elif Operation == "-": 
    answer = (Num1-Num2) 
if user_input == answer: 
    print("Well done!\n") 
    Score = Score + 1 
    Question = Question + 1 
else: 
    print("Incorrect, the answer was", answer,"\n") 
    Question = Question + 1 

print("You have scored a total of",Score) 

if Class == 1: 
    myFile = open("Class1test.csv", "a") 
    myFile.write(str(firstname)) 
    myFile.write(" ") 
    myFile.write(str(secondname)) 
    myFile.write(",") 
    myFile.write(str(Score)) 
    myFile.write("\n") 
    myFile.close() 

if Class == 2: 
    myFile = open("Class2test.csv", "a") 
    myFile.write(str(firstname)) 
    myFile.write(" ") 
    myFile.write(str(secondname)) 
    myFile.write(",") 
    myFile.write(str(Score)) 
    myFile.write("\n") 
    myFile.close() 

if Class == 3: 
    myFile = open("Class3test.csv", "a") 
    myFile.write(str(firstname)) 
    myFile.write(" ") 
    myFile.write(str(secondname)) 
    myFile.write(",") 
    myFile.write(str(Score)) 
    myFile.write("\n") 
    myFile.close() 

J'ai beaucoup de issuies en ce qui concerne les fichiers csv que je ne peux pas comprendre comment im censé afficher tous les participants du jeu-questionnaire par ordre alphabétique, plus élevé au plus bas score et moyenne.

S'il vous plaît aider !!! merci pour votre temps et vos efforts!

+0

Par exemple ('|' signifiant nouvelle ligne dans le fichier csv), Sean Johnson, 4 | Adam Carey, 6 | James Holmes, 2 | Sacha Stock, 8. J'ai besoin que ceux-ci soient triés par ordre alphabétique (noms - A-Z), triés par score le plus élevé au score le plus bas (0-10) et je ne suis pas inquiet de la moyenne autant. –

Répondre

0

d'abord:

myFile = open('Class{}test.csv'.format(str(Class)), "a") 
myFile.write(str(firstname)) 
myFile.write(" ") 
myFile.write(str(secondname)) 
myFile.write(",") 
myFile.write(str(Score)) 
myFile.write("\n") 
myFile.close() 

au lieu de ces ifs ...

Et puis jeter un oeil à ce ici comment traiter les fichiers csv en python

Python CSV-Module

Et quand vous avez fini de créer le fichier csv, utilisez Excel pour le trier et calculer vos trucs avg.

ATTENTION: Vous utilisez un délimiteur obsolète (','). Veuillez utiliser ';' au lieu de séparer les colonnes.

Si vous devez vraiment utiliser ',' comme délimiteur, vous pouvez toujours ouvrir ce fichier dans Excel. Il existe un moyen "standard" de changer cela pour des outils comme Excel et Co.

Ajoutez juste sep=, comme première ligne (= séparateur)

Cordialement, Rainer

+0

Merci. J'ai ajouté la fonction csv et cela semble fonctionner. –

+0

Veuillez marquer comme résolu si cela a fonctionné. Et un autre indice, si vous avez vraiment besoin de le trier dans le csv, s'il vous plaît jeter un oeil à http://nbviewer.jupyter.org/urls/bitbucket.org/hrojas/learn-pandas/raw/master/lessons/01% 20-% 20Lesson.ipynb # Analyser-Données – Rainer