Как отфильтровать критерии поиска для просмотра веб-страниц в Python?

1

Я хотел сделать базовую программу поиска, чтобы продемонстрировать коллеге. Но по какой-то причине мне трудно применить "фильтр" к поисковой программе. Прямо сейчас, я фильтрую амазонку и игры для псевдо-рабочей среды. Когда я запускаю свой код и ищу amazon.com, он говорит "Недействительные критерии поиска. Повторите попытку". который является совершенным. Но при второй попытке он все еще говорит "Недействительные критерии поиска. Повторите попытку". но затем завершает поиск. Даже если я не ищу амазонку или игры. Как я могу заставить код реагировать соответствующим образом?

Пример:

import webbrowser

search=input('Search: ')

while search == str('amazon') or str('games'):
  print('Invalid search criteria. Try again')

  if search != str('amazon') or str('games'):
    webbrowser.open('http://'+search)
  • 0
    Почему вы используете цикл while?
  • 0
    Я хотел, чтобы код повторял человеку, что то, что он искал, было недействительным, вместо того, чтобы разрешать только одноразовый поиск.
Показать ещё 1 комментарий
Теги:

2 ответа

0
Лучший ответ

Во-первых, вам не нужно преобразовывать строку в строку с выражениями типа str('amazon').

Во-вторых, для вашего утверждения if Pythonic

if search in ('amazon', 'games'):

В-третьих, вы, вероятно, хотите, чтобы ваша программа не останавливалась после первого правильного ответа, но чтобы пользователь мог спросить другого и другого - почти бесконечно, пока пользователь просто не нажмет Enter (= пустая строка), поэтому ваша программа может быть чем-то как:

import webbrowser

while True:
    search=input('Search: ')
    if not search:                  # Means search is not empty
        break;                      # Jump from your infinite loop

    if search in ('amazon', 'games'):
        print('Invalid search criteria. Try again')
    else:
        webbrowser.open('http://'+search)
1

Вы можете изменить свой код, чтобы использовать простую ветвь if-else:

import webbrowser
while True:
    search=input('Search: ')
    if search == 'amazon' or search == 'games':
        print('Invalid search criteria. Try again')

    else:
        webbrowser.open('http://'+search)

Также может быть хорошей идеей изменить условие 'amazon' in search or 'games' in search чтобы лучше обрабатывать входные данные

  • 0
    Я все еще получаю сообщение о том, что мои критерии поиска недействительны. Даже если я не набираю в амазоне или играх. Что может вызвать эту проблему?
  • 1
    @mbreth Я сделал опечатку. Смотрите мой обновленный ответ

Ещё вопросы

Сообщество Overcoder
Наверх
Меню