Мой текущий код использует переменную "word", поэтому word = sys.argv [1] + sys.argv [2], которая прекрасно работает, когда у меня есть два аргумента, но когда у меня только один аргумент, я получаю IndexError: индекс списка вне диапазона
Я пишу программу, которая определяет слова, извлекая информацию из словаря .com.Я очень внимательно слежу за видеоуроком, потому что я просто пытаюсь научиться работать с базовым словарем (долгосрочная цель - написать приложение для перевода, которое не зависит от google translate api или чего-то подобного).У меня есть код, который работает в том, что он тянет определение, когда вы вводите слово, но не когда вы вводите 2 слова, примеры будут ниже.Поэтому я добавил аргумент, который работал для 2 слов, но больше не работает для одного слова.
import requests
from bs4 import BeautifulSoup as bs
import sys
url = "https://www.dictionary.com/browse/"
word = sys.argv[1] + sys.argv[2]
url+= word
r = requests.get(url)
soup = bs(r.content, "lxml")
try:
pos = soup.findAll("span", {"class" : "luna-pos"})[0].text #luna-pos is an html tag
definitions = soup.findAll("ol")
meanings = definitions[0].findChildren("li", recursive=False)
print(word + ": " + pos)
for (i,meaning) in enumerate(meanings):
print(str(i + 1), meaning.text)
except:
print("Word not found")
Ожидаемые результаты: печать слова, части речи и определения.Т.е. определить слово (являющееся одним аргументом) «надлежащий» и определить «самоконтроль» (аргумент из двух слов)