首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >谷歌应用引擎python rot13

谷歌应用引擎python rot13
EN

Stack Overflow用户
提问于 2017-08-14 19:24:57
回答 1查看 36关注 0票数 0

我很难找出我的代码出了什么问题,我正在尝试使用python和谷歌应用程序引擎制作一个rot13程序。我一直在尝试找出问题所在,但我不能,我的代码工作良好,直到从文本框中获取值,但当我将其传递给rot13函数时,它会给我一个500错误,提前感谢

代码语言:javascript
复制
import webapp2
import cgi
form = """<form method="post">
    <textarea name="text" style="height: 100px; width: 400px;"></textarea>
    <br>
    <br>
    <input type="submit"/>
    </form>"""

def escape_html(s):
    return cgi.escape(s, quote=True)

def rot13(s):
    regular = "abcdefghijklmnopqrstuvwxyz"
    ciper13 = "nopqrstuvwxyzabcdefghijklm"
    s = s.translate(s.maketrans(regular, ciper13))
    return s

class MainHandler(webapp2.RequestHandler):
    def write_form(self):
        self.response.write(form)

    def get(self):
        #self.response.headers['Content-Type'] = 'text/plain'
        self.write_form()

    def post(self):
        text = self.request.get('text')
        text = escape_html(text)
        text = rot13(text)
        self.response.write(text)

app = webapp2.WSGIApplication([('/', MainHandler)], debug=True)
EN

回答 1

Stack Overflow用户

发布于 2017-08-14 19:32:53

问题出在下面这一行:

代码语言:javascript
复制
>>> s = s.translate(s.maketrans(regular, ciper13))

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'str' object has no attribute 'maketrans'

maketransstring模块的属性,而不是单个string实例的属性。

您需要导入string模块(import string)并将代码更改为:

代码语言:javascript
复制
>>> s = s.translate(string.maketrans(regular, ciper13))

另一种方法是使用内置的rot-13编码:

代码语言:javascript
复制
>>> s = u'foo'
>>> s.encode('rot-13')
'sbb'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45673464

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档