Я хотел сделать базовую программу поиска, чтобы продемонстрировать коллеге. Но по какой-то причине мне трудно применить "фильтр" к поисковой программе. Прямо сейчас, я фильтрую амазонку и игры для псевдо-рабочей среды. Когда я запускаю свой код и ищу 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)
Во-первых, вам не нужно преобразовывать строку в строку с выражениями типа 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)
Вы можете изменить свой код, чтобы использовать простую ветвь 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
чтобы лучше обрабатывать входные данные