Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 11, 2016 16:03:06

warriorofpython
Зарегистрирован: 2016-04-28
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

Словарь и вывод данных.

 pers_001 = {'name': {'last_name': 'Иванов', 'first_name': 'Иван', 'middle_name': 'Иванович'},
'address': ['г. Майкоп, ул. Коновалова д.34/1, кв.53'],
'phone': {'home_phone': '67-87-92', 'mobile_phone': '8-929-232-84-96', 'mobile_phone_2': 'Нет'}
}
pers_002 = {'name': {'last_name': 'Егоров', 'first_name': 'Егор', 'middle_name': 'Егорович'},
'address': ['г. Сочи, переулок Ромашковый д.65, кв.17'],
'phone': {'home_phone': '241-65-18', 'mobile_phone': '8-925-278-96-87', 'mobile_phone_2': '8-928-658-82-77'}
}
pers_003 = {'name': {'last_name': 'Семенов', 'first_name': 'Семен', 'middle_name': 'Семенович'},
'address': ['г. Екатеринбург, ул. Победы д.56, кв.25'],
'phone': {'home_phone': 'Нет', 'mobile_phone': '8-921-247-66-77', 'mobile_phone_2': 'Нет'}
}
call_crew = [pers_001, pers_002, pers_003]
call = str.capitalize(input('Введите Имя или Фамилию '))
def crew(call):
    for personal in call_crew:
        if call in personal['name']['first_name'] or call in personal['name']['last_name']:
             print('ФИО:', personal['name']['last_name'], personal['name']['first_name'], personal['name']['middle_name'])
             print('Адрес:', personal['address'][0])
             print('Телефон:', '\nДомашний.', personal['phone']['home_phone'], '\nМобильный.',
              personal['phone']['mobile_phone'],
              '\nДополнительный.', personal['phone']['mobile_phone_2'])
    if call not in call_crew:
        call_reset = str.capitalize(input('Дополнительной информации не найдено. Повторить? Да/Нет '))
        if call_reset == 'Да':
            return call
            '''call = str.capitalize(input('Введите Имя или Фамилию '))
            return call'''
crew call
Есть такой код. По идее он ищет в словаре введенные искомые координаты (Имя или Фамилию), после чего он должен выводить на экран данные из словаря в случае обнаружения искомых данных либо строку указанный в переменной
 call_reset
.
В настоящий момент при выводе искомой информации или строки об её отсутствии, код (программа) прекращает свою работу.
Необходимо вывести команду, которая повторит весь цикл поиска с самого начала, если выведенные данные не устроят пользователя либо он захочет повторить поиск снова.

Отредактировано warriorofpython (Окт. 11, 2016 16:04:04)

Офлайн

#2 Окт. 11, 2016 16:14:40

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Словарь и вывод данных.

 while True:
     тратата



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#3 Окт. 11, 2016 16:47:38

warriorofpython
Зарегистрирован: 2016-04-28
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

Словарь и вывод данных.

ZerG
пробую впихнуть

Офлайн

#4 Окт. 11, 2016 16:54:12

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Словарь и вывод данных.

Вадик?



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#5 Окт. 11, 2016 16:55:41

warriorofpython
Зарегистрирован: 2016-04-28
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

Словарь и вывод данных.

ZerG
Вадик?
возможно

Офлайн

#6 Окт. 12, 2016 13:00:14

warriorofpython
Зарегистрирован: 2016-04-28
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

Словарь и вывод данных.

 crew_1 = {'name':{'first_name': 'Edward', 'last_name': 'Snowden'},
        'function':['Senior analyst'],
        'extention number':['12-89']}
crew_2 = {'name':{'first_name': 'Garry', 'last_name': 'Poter'},
        'function':['Junior analyst'],
        'extention number':['32-74']}
crew_all = [crew_1, crew_2]
#exit_for_programm = str(input('If you want to exit, press \"x\". '))
#first_name = str.capitalize(input('Enter Name '))
while True:
    name = str.capitalize(input('Enter First name or Last name. For the exit press \"x\" '))
    for personal in crew_all:
        if name == 'x':
            break
        if name in personal['name']['first_name'] or name in personal['name']['last_name']:
            print('First name:',personal['name']['first_name'],
            '\nLast name:',personal['name']['last_name'],      
            '\nFunction:',personal['function'][0],
            '\nExtention number:',personal['extention number'][0])
            break
    else:
        print('Not information')
вроде разобрался. с
 while True:
теперь проблема в другом, если в словаре указано два одинаковых имени: например
crew_1 = {'name':{'first_name': 'Edward', 'last_name': 'Snowden'},
и
 crew_2 = {'name':{'first_name': 'Edward', 'last_name': 'Poter'},
то выводится только информация по первому найденному имени.
Если вместо последнего оператора break вывести continue то выводится искомая информация и строка “Not information”

Офлайн

#7 Окт. 12, 2016 13:28:11

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Словарь и вывод данных.

В словаре КЛЮЧ уникальное значение.



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#8 Окт. 12, 2016 13:41:29

warriorofpython
Зарегистрирован: 2016-04-28
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

Словарь и вывод данных.

с первой проблемой все ясно. со второй не пойму вообще ничего
выводится таким образом:

Enter First name or Last name. For the exit press “x” edward
First name: Edward
Last name: Snowden
Function: Senior analyst
Extention number: 12-89
First name: Edward
Last name: Poter
Function: Junior analyst
Extention number: 32-74
Not information <= как убрать эту строку в случае обнаружения информации?

Отредактировано warriorofpython (Окт. 12, 2016 13:42:05)

Офлайн

#9 Окт. 12, 2016 15:02:57

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Словарь и вывод данных.

 else:
        print('Not information')
else:
        pass



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#10 Окт. 13, 2016 15:07:15

warriorofpython
Зарегистрирован: 2016-04-28
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

Словарь и вывод данных.

ZerG
ничего не получается!

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version