Что такое «Отображение символов типаError должно возвращать целое число …» в этом коде python?

пожалуйста, может кто-нибудь помочь мне с кодом ниже? Когда я запускаю его, журналы говорят:

return method(*args, **kwargs) File "C:\Users\CG\Documents\udacity\rot13serendipo\main.py", line 51, in post text = rot13(text) File "C:\Users\CG\Documents\udacity\rot13serendipo\main.py", line 43, in rot13 return st.translate(tab) TypeError: character mapping must return integer, None or unicode INFO 2012-04-28 20:02:26,862 dev_appserver.py:2891] "POST / HTTP/1.1" 500 - 

Я знаю, что ошибка должна быть в rot13 (). Но когда я запускаю эту процедуру в среде IDE, она работает нормально.

Вот мой код:

 import webapp2 form= """ <html> <head> <title>Unit 2 Rot 13</title> </head> <body> <h2>Enter some text to ROT13:</h2> <form method="post"> <textarea name="text" style="height: 100px; width: 400px;"></textarea> <br> <input type="submit"> </form> </body> </html> """ def rot13(st): import string tab1 = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' tab2 = 'nopqrstuvwxyzabcdefghijklmNOPQRSTUVWXYZABCDEFGHIJKLM' tab = string.maketrans(tab1, tab2) return st.translate(tab) class MainHandler(webapp2.RequestHandler): def get(self): self.response.out.write(form) def post(self): text = self.request.get("text") text = rot13(text) self.response.out.write(text) app = webapp2.WSGIApplication([('/', MainHandler)], debug=True) 

Заранее благодарю за любую помощь!

One Solution collect form web for “Что такое «Отображение символов типаError должно возвращать целое число …» в этом коде python?”

Вероятно, это потому, что текст вводится как unicode:

 >>> def rot13(st): ... import string ... tab1 = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' ... tab2 = 'nopqrstuvwxyzabcdefghijklmNOPQRSTUVWXYZABCDEFGHIJKLM' ... tab = string.maketrans(tab1, tab2) ... return st.translate(tab) ... >>> rot13('test') 'grfg' >>> rot13(u'test') Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<stdin>", line 6, in rot13 TypeError: character mapping must return integer, None or unicode >>> 

Этот вопрос охватывает то, что вам нужно:

  • Как заставить str.translate работать с строками Unicode?

Если вы уверены, что строки unicode не важны, я думаю, вы могли бы просто:

 return str(st).translate(tab) 
  • TypeError при попытке загрузить Pictures из Google App Engine в Picasa с помощью API GData
  • Python: __init __ () принимает 2 позиционных аргумента, но 3 даны
  • TypeError: недостаточно аргументов для строки формата при использовании% s
  • TypeError: printName1 () принимает 0 позиционных аргументов, но 1 дано
  • Поиск суммы столбца в списке Получение «TypeError: невозможно выполнить сокращение с помощью гибкого типа»
  • Python TypeError в регулярном выражении
  • «ValueError: невозможно фильтровать изображения палитры» во время преобразования Pytesseract
  • TypeError: не все аргументы, преобразованные во время форматирования строки python
  • TypeError - Translate принимает один аргумент. (2 данный) Python
  • unbound метод должен вызываться с экземпляром как первый аргумент - python
  • Python: TypeError: индексы списка должны быть целыми, а не str
  • Python - лучший язык программирования в мире.