Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 13, 2015 15:56:36

The_Witcher
Зарегистрирован: 2015-09-22
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Print("Ничего не найдено")

Друзья, Доброго времени суток! Подскажите, пожалуйста, где я туплю. Есть код:

a = ['AAA Здесь был Вася',
'BBB Здесь не было Васи']
while True:
    b = input("""Введите код опции, часть кода, или часть названия, для поиска опции,
для того чтобы узнать кол-во опций в базе - введите 7777,
для выхода введите - 9999: """)
    b1 = b.upper()
    os.system('cls')
    if b == "9999":
        break
    elif b == "7777":
        print(len(a))
    for s in a:
        if re.search(b1, s):
            print(s)

Я хочу добавить, что, если ничего не найдено, то вывести - ничего не найдено. Но у меня никак не получается, либо, если я основываюсь на переменную s - он вы водит пустоту, а если на весь поиск - то “ничего не найдено”, он выводит для каждого элемента списка, а мне нужно только как итог,что он все перерыл, и сообщил что ничего не нашел.

Отредактировано The_Witcher (Окт. 13, 2015 16:22:24)

Офлайн

#2 Окт. 13, 2015 20:26:43

old_monty
Зарегистрирован: 2015-09-27
Сообщения: 238
Репутация: +  20  -
Профиль   Отправить e-mail  

Print("Ничего не найдено")

С небольшими изменениями все работает, как вам надо.
(для интереса я добавил еще 3-ю опцию “CCC” в список)

import os
import re
a = ['AAA Здесь был Вася\n',
'BBB Здесь не было Васи\n', 'CCC Возможно, Вася был здесь... а может, и нет.\n']
while True:
    b = input("""Введите код опции, часть кода, или часть названия, для поиска опции.
Чтобы узнать кол-во опций в базе, введите 7777
Для выхода введите 9999: """)
    os.system('cls')
    b1 = b.upper()
    if b == "9999":
        break
    elif b == "7777":
        print("Опций в базе: %d\n" % len(a))
    else:
        found = False    # для хранения результатов поиска в списке опций 
        for s in a:
            if re.search(b1, s): 
                found = True
                print(s)
                break
        if found == False:
            print("Ничего не найдено\n")

Отредактировано old_monty (Окт. 13, 2015 20:30:21)

Офлайн

#3 Окт. 14, 2015 10:43:05

The_Witcher
Зарегистрирован: 2015-09-22
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Print("Ничего не найдено")

old_monty
Супер! Спасибо ОГРОМНОЕ!!! Удалил только break, после print(s), т.к. я забыл сказать, что это я в вопросе указал два элемента списка, а на самом деле их 3089, и в поиске могут отображаться и 100 и 200 Еще раз спасибо, Друг!!!

Отредактировано The_Witcher (Окт. 14, 2015 10:43:31)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version