2016-01-26 3 views
0

J'ai travaillé sur un code qui demande à l'utilisateur d'insérer six sujets qu'ils avaient à l'école aujourd'hui. Je veux qu'ils insèrent six sujets dans une seule ligne de texte et je ne peux pas télécharger le fichier CSV pour des raisons personnelles.Utilisateur saisissant six sujets dans une seule ligne de texte en Python après l'importation du fichier CSV

EST ICI MON CODE DE COURANT:

import csv 
with open('teachers.csv') as csvfile: 
readCSV = csv.reader(csvfile, delimiter=',') 

subjects = [] 
teachers = [] 

for row in readCSV: 
    subject = row[0] 
    teacher = row[1] 

    subjects.append(subject) 
    teachers.append(teacher) 

text = input("Please insert all the subjects you had today at school(separated by one space): ") 

subjects = text.split(' ') 

if len(subjects) > 6: 
print("too much subjects") 

for s in subjects: 
    teacherdex = subjects.index(text) 
    theteacher = teachers[teacherdex] 

    print("The teachers of", text, "are", theteacher) 

Après avoir appuyez sur F5 pour exécuter le code, et insérez les six sujets, je continue à obtenir cette erreur:

Traceback (most recent call last): 
    File "H:/Year 10/Computing/A453/Task Practice/TeachersTask5.py", line 23, in <module> 
teacherdex = subjects.index(text) 
ValueError: 'Maths Science English Computing Psychology Sociology' is not in list 

S'il vous plaît aider. Je vous remercie!

Répondre

0

Notez que vous avez déjà décomposé votre seule ligne de texte en text en une liste appelée subjects que vous êtes en train d'itérer. Vous revenez alors à utiliser text plutôt que votre nouvelle liste. Essayez:

for s in subjects: 
    teacherdex = subjects.index(s) 
    theteacher = teachers[teacherdex] 

    print("The teachers of", s, "are", theteacher) 
+0

Il fonctionne, mais il affiche tous les sujets dans les lignes. Je veux qu'il dise: L'enseignant de l'informatique est Rebecca. Mais il affiche tous les sujets que j'ai entrés et ensuite il affiche l'enseignant pour le premier sujet. –

+0

@JasonCole J'avais besoin de corriger une seconde référence à 'text' désolé. L'édition devrait fonctionner maintenant. – roganjosh

+0

Merci cela fonctionne. Merci beaucoup l'homme. Je marque votre réponse correcte. –