Python: объект строки 26 str не вызывается после определенного ввода - PullRequest
0 голосов
/ 22 сентября 2018

, так что это программа, которая читает файл json и просто переводит любые входные данные в известное английское слово и пытается получить точное совпадение из файла json.

Однако, когда я ввожу, например:Animal затем привет, программа падает, если я спам привет, она не падает, если я ввожу hello, то animal она не падает, она падает только при вводе hello, затем animal, но не наоборот.

Если яТолько входное животное прекрасно работает.Ошибка: обратная связь (последний вызов был последним): файл «app.py», строка 26, в переводах = trans (word) TypeError: объект 'str' не может быть вызван

import json
import difflib

data = json.load(open("data .json"))
print("Please note the commands can be entered in small or capital letters as you like")

def trans(w):
  w= w.lower()
  if w in data:
    return data[w]
  else:
    bestMatch= difflib.get_close_matches(w,data.keys())
    for match in bestMatch:
      match=match.capitalize()
      command=input("Did you mean "+match+" Y for yes and N for no and -1 to go back\n")
      command=command.lower()
      if command=='y':
        return trans(match)
      elif command=='-1':
        return ""
    return "The word does not exist"

word=input("Enter a word or -1 to exit\n")

while word != "-1":
  translations=trans(word)
  if type(translations)==str:
    print("Definition: ")
  if len(translations)==1:
    print(translations[0])
  else:
    for trans in translations:
      print(trans)
  word=input("Enter a word or -1 to exit\n")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...