2009-06-04 2 views
0

Итак, я недавно начал изучать python ... Я пишу небольшой скрипт, который извлекает информацию из csv, и мне нужно иметь возможность уведомлять пользователя о некорректном вводеОшибка захвата, когда пользователь вводит информацию об установке

, например

пользователю предлагается его идентификационный номер, номер идентификатор ничего от r1 до r5 я хотел бы мой сценарий, чтобы иметь возможность сообщить пользователю, что у них есть вход что-то неправильно , например, если пользователь вводит a1 или r50, пользователь должен быть уведомлен о том, что они вводят неправильные параметры. Как мне это сделать?

я посмотрел в заявление четкости, но я не могу понять весь синтаксис питона .... (я не знаю, все команды ... параметры и прочее)

любой помощь будет очень высоко ценится = 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

Какие книги или учебники вы используете, чтобы узнать синтаксис? Если мы знаем, какую ссылку/учебник вы используете сейчас, мы можем предложить лучший вариант. –

+0

хмм, ну это просто какой-то случайный шпаргалка друг дал мне, может быть, это поможет, если я ставлю то, что я до сих пор в то время как True: \t импорт CSV \t ДАТА, ROOM, КОНЕЧНО, ЭТАП = диапазон (4) \t csv_in = открыт ("roombookings.csv", "RB") \t читателя = csv.reader (csv_in) \t данные = [] \t для строки в читателе: \t \t данных.присоединять (строка) \t RoomList = raw_input ("Введите номер комнаты:") \t Print "указанный имеют следующие курсы работают номер:" \t для sub_list в данном: \t \t если sub_list [ROOM] = = RoomList: \t \t \t Дата, номер, курс, Стадия = sub_list \t \t \t печать Дата, курс – 2009-06-04 11:48:30

+0

неудачу, он полностью разрушил мое форматирование лол! – 2009-06-04 11:49:35

ответ

1

Я не уверен, что вы просите, но если вы хотите, чтобы проверить, если пользователь ввел правильный идентификатор, вы должны попробовать регулярные выражения. Посмотрите на Python Documentation on module re. Или спросите Google для «питона» повторно

Вот пример, который будет проверять ввод пользователя:

import re 

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

НТН, привет.

EDIT: Я читал вы снова вопрос, вот еще какой-то код: (просто вставьте его ниже предыдущего фрагмента кода)

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

Кстати, это может быть написано в довольно короткий путь, но этот кусок кода должен быть проще понять для кого-то нового для Python.

+0

спасибо за помощь! = D, эти ответы мне очень помогли! Я думаю, им наконец удалось схватить этот скрипт .. im ужасно в программировании – 2009-06-04 12:27:43

1

Серьезно, прочитайте учебник. official один довольно хорош. Мне также нравится this book для начинающих.

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 Теперь, когда вы добавили код, я обновляю пример:

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

спасибо за помощь! = D эти ответы помогли мне много !, я думаю, что им наконец удалось схватить этот скрипт .. im ужасно в программировании – 2009-06-04 12:25:56