2009-06-04 6 views
0

, j'ai récemment commencé python apprendre ... Je suis en train d'écrire un petit script qui extrait des informations à partir d'un csv et je dois être en mesure d'informer un utilisateur d'une entrée incorrectepiégeage d'erreur lorsqu'un utilisateur entre incorect informations

par exemple

l'utilisateur est invité pour son numéro d'identification, le numéro d'identification est quelque chose de r1 à r5 Je voudrais que mon script pour pouvoir dire à l'utilisateur qu'ils ont entrée quelque chose de mal par exemple, si l'utilisateur entre a1 ou r50, l'utilisateur doit être averti qu'il a entré les mauvais paramètres. Comment puis-je faire cela?

i ont examiné déclarations def, mais je ne peux pas sembler saisir toute la syntaxe en python .... (je ne sais pas toutes les commandes ... paramètres et d'autres choses)

toute aide serait très beaucoup apprécié = D

while True: 
    import csv 
    DATE, ROOM, COURSE, STAGE = range (4) 
    csv_in = open("roombookings.csv", "rb") 
    reader = csv.reader (csv_in) 
    data = [] 
    for row in reader: 
     data.append(row) 
    roomlist = raw_input ("Enter the room number: ") 
    print "The room you have specified has the following courses running: " 
    for sub_list in data: 
     if sub_list[ROOM] == roomlist: 
      Date, Room, Course, Stage = sub_list 
      print Date, Course 
+0

Quels livres ou des tutoriels utilisez-vous pour apprendre la syntaxe? Si nous connaissons la référence/didacticiel que vous utilisez actuellement, nous pouvons en suggérer une meilleure. –

+0

hmm, bien il est tout simplement une feuille de triche au hasard un ami m'a donné, peut-être il serait utile si je peux mettre ce que j'ai jusqu'à présent while True: \t import csv \t DATE, CHAMBRE, COURS, STAGE = plage (4) \t csv_in = open ("roombookings.csv", "RB") \t lecteur = csv.reader (csv_in) \t data = [] \t pour la rangée dans le lecteur: \t \t données.append (ligne) \t roomlist = raw_input ("Entrez le numéro de la chambre:") \t print "La chambre que vous avez spécifié a les cours suivants en cours d'exécution:" \t pour sub_list des données: \t \t si sub_list [CHAMBRE] = = roomlist: \t \t \t date, Chambre, cours, étape = sub_list \t \t \t date d'impression, Cours –

+0

échouent, totalement ruiné mon formatage lol! –

Répondre

1

Je ne suis pas sûr de ce que demandez-vous, mais si vous souhaitez vérifier si l'utilisateur est entré id correct, vous devriez essayer des expressions régulières. Regardez Python Documentation on module re. Ou demander à Google pour "re python"

Voici un exemple qui va vérifier l'entrée de l'utilisateur:

import re 

id_patt = re.compile(r'^r[1-5]$') 
def checkId(id): 
    if id_patt.match(id): 
     return True 
    return False 

HTH, salutations.

EDIT: Je lis que vous êtes question à nouveau, voici un peu plus de code: (pâte juste en dessous de fragment de code précédent)

validId = False 
while not validId: 
    id = raw_input("Enter id: ") 
    validId = checkId(id) 

Par ailleurs, il pourrait être écrit de manière assez courte, mais ce morceau de code devrait être plus facile à comprendre pour quelqu'un de nouveau à Python.

+0

merci pour toute l'aide! = D ces réponses m'ont beaucoup aidé!, Je pense que je suis enfin en train de saisir ce script .. im horrible à la programmation –

1

Sérieusement, lisez un tutoriel. Le official est plutôt bon. J'aime aussi this book pour les débutants.

import csv 

while True: 
    id_number = raw_input('(enter to quit) ID number:') 

    if not id_number: 
     break 

    # open the csv file 
    csvfile = csv.reader(open('file.csv')) 
    for row in csvfile: 
     # for this simple example I assume that the first column 
     # on the csv is the ID: 
     if row[0] == id_number: 
      print "Found. Here's the data:", row 
      break 
    else: 
     print "ID not found, try again!" 

EDIT Maintenant que vous avez ajouté le code, mettre à jour l'exemple:

import csv 
DATE, ROOM, COURSE, STAGE = range(4) 

while True: 
    csv_in = open("roombookings.csv", "rb") 
    reader = csv.reader(csv_in) 
    roomlist = raw_input("(Enter to quit) Room number: ") 
    if not roomlist: 
     break 
    print "The room you have specified has the following courses running: " 
    for sub_list in reader: 
     if sub_list[ROOM] == roomlist: 
      print sub_list[DATE], sub_list[COURSE] 
+0

merci pour toute l'aide! = D ces réponses m'ont beaucoup aidé!, Je pense que je suis enfin en train de maîtriser ce script .. im horrible à la programmation –

Questions connexes