Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 12, 2014 21:52:03

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10015
Репутация: +  857  -
Профиль   Отправить e-mail  

телефонный справочник

stasvoron
почему это не правилно?
Потому что файл должен быть правильным. Программа не должна начинать работать с файлом, в котором содержится мусор. От мусора файл должна очищать программа, которая для этого предназначена.

stasvoron
люди у меня задание сделать все с csv
У тебя, к примеру, препод, который даёт тебе задание. Ты к нему подходишь и вдруг ты захотел кушать. Ты ему говоришь “дяденька, пожарь мне картошки”, а он тебе “мальчик, я те чо, повар что ли?”
У программ точно так же всё. Каждая программа только своим делом должна заниматься. Это называется функциональная прочность модуля.

Add
Сегодня там пробелы лишние, завтра там появятся лишние буквы, а послезавтра там будет вообще пустое поле, в котором номера нет. И кажется, что все эти ситуации нужно обработать. Но вопрос в том, где обрабатывать их.
Так что разделяй их, нельзя смешивать.



Отредактировано py.user.next (Окт. 13, 2014 22:57:11)

Офлайн

#2 Окт. 13, 2014 22:05:52

stasvoron
Зарегистрирован: 2014-07-19
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

телефонный справочник

в итоге все работает отлично, хотя и не совсем правильно. Но пока пусть так.
сейчас я добавил в скрип бесконечный цикл, дабы каждый раз не запускаеть его снова. Но я хочу сделать так, что бы можно было выбирать, по каким параметрам искать (что вводить, номер или имя) ниже я написал код по которому ищет и по номеру и по фамилии, но ищет только по очереди. Заранее спасибо.

import csv
while True:
    a = raw_input('Enter phone number: ')
    	
    def bible(a):
        reader = csv.reader(open("data.csv", "rb",), delimiter=';')
        name = None
        for first_name, last_name, phone in reader:
            phone = phone.strip()  
            if a == phone: 
                name = first_name, last_name
         
        if name:
            return '{} {}'.format(*name)
        else:
            return None
    
    z = bible(a)
    if a == 'exit': 
        break
    if z:
        print z
    else:
        print 'Phone not found'
    b = raw_input('Enter First_name: ')
    def bible(b):
        reader = csv.reader(open("data.csv", "rb",), delimiter=';')
        name = None
        for first_name, last_name, phone in reader:
            first_name = first_name.strip()  
            if b == first_name:
                name = last_name, phone
        if name:
            return '{} {}'.format(*name)
        else:
            return None
    
    f = bible(b)
    if a == 'exit': 
        break
    if f:
        print f
    else:
        print 'First_name not found'	
     

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version