Как выбрать слово в словаре меню? - PullRequest
0 голосов
/ 05 июня 2018

Я пишу английский словарь, используя python 2. Я создал словарь.например, «дом» и «лошадь» в ключе словаря.Если пользователь введет «ho», «home» и «horse» придут.Я поставил их в нижней строке.Но когда пользователь выбирает слово 1, я хочу вызвать ключ и значение в словаре, который я установил первым.Как я могу это сделать?

myEngDict = {"horse": "The horse (Equus ferus caballus) is one of two extant subspecies of Equus ferus","home": "the place where one lives permanently, especially as a member of a family or household."}

def Words():
    word_List = []
    count = 0
    search_words = raw_input("Please enter a search term: ")
    for i in myEngDict.keys():
        if i.startswith(search_words):
            count+=1
            word_List.append(i)
            print "{}{}{}".format(count,".", i)
        else:
            pass
    choose = input("Which one?")

Например, если «дом» появляется первым, пользователь выбирает 1:

Дисплей программы:

home: the place where one lives permanently, especially as a member of a family or household.

Ответы [ 2 ]

0 голосов
/ 05 июня 2018

Во-первых, вы должны использовать raw_input в этой последней строке.Затем вам нужно поискать предоставленное в word_List.

while True:
   try:
       choose = int(raw_input("Which one?"))

       # Keep the key as a separate variable for faster reference
       key = word_List[choose - 1]

       # Use labels with the format function. It's easier to read and understand
       print '{label}: {text}'.format(label=key, text=myEngDict[key])

       # Be sure to have a break or return on success.
       return
   except ValueError: 
       # If someone provides 'cat', it will raise an error.
       # Inform the user and go back to the start.
       print 'Please provide an integer'
   except IndexError:
       # The user has provided a value above the length of word_List or 
       # less than one. Again, inform the user and go back to start.
       print 'You must enter a number between 1 and {c}'.format(c=len(word_List))
0 голосов
/ 05 июня 2018

Не сильно меняя свой код, вы можете просто добавить оператор печати после choose в своей функции с той же идентификацией:

print ("%s : %s"%(word_List[choose-1], myEngDict[word_List[choose-1]]))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...