首页 > 代码库 > Python 实现倒序输出(逆序自动回复)

Python 实现倒序输出(逆序自动回复)

>>> s = shiyanlou

>>> s[1:3] #这里呢,是左闭右开,是角标大于等于1并且小于3,就是1,2咯,所以是‘hi‘ ‘hi‘

>>> s[0:7:1] #这里呢,等于s[0:7],因为递增的值1是默认的,你也可以改 ‘shiyanl‘ >>> s[0:7:2] #递增2,看下结果,对上了吧 ‘sial‘

>>> s[-9:-3] #其实s是不仅仅是‘shiyanlou‘,更是‘shiyanloushiyanlou‘,中间的s角标是0,而0前面的就是负数了‘shiyan‘

>>> s[9:0:-1] #少了个s,不太好,因为右开,下标为0是不输出的 ‘uolnayih‘ >>> s[::-1] #这样就可以了,不填,默认全部咯,ok,完成了 ‘uolnayihs‘

最简单的实现思路是使用for 循环,申请同等大小的字符串,逆序赋值然后返回给服务器,但使用 Python 最方便的一点就是可以使用字符串的切片来实现逆序。

可运行的.py

def wechat_auth():
    if request.method == GET:
        print coming Get
        data = request.args
        token = *****************
        signature = data.get(signature,‘‘)
        timestamp = data.get(timestamp,‘‘)
        nonce = data.get(nonce,‘‘)
        echostr = data.get(echostr,‘‘)
        s = [timestamp,nonce,token]
        s.sort()
        s = ‘‘.join(s)
        if (hashlib.sha1(s).hexdigest() == signature):
            return make_response(echostr)
    if request.method == POST:     #接收微信发来的文本消息,不是 GET 请求,而是 POST 请求,因此在 POST 处理流程中进行操作:
        xml_str = request.stream.read()
        xml = ET.fromstring(xml_str)
        toUserName=xml.find(ToUserName).text
        fromUserName = xml.find(FromUserName).text
        createTime = xml.find(CreateTime).text
        msgType = xml.find(MsgType).text

#
一个正常的流程,先读取发信者收信者和写信时间,还有一个特重要的就是信的类型,微信支持文本、图片、视频、音频等...

#我们是回复文本信息,如果发来的不是文本信息,那我们就回复一句话提醒一下:

if msgType != text:
            reply = ‘‘‘
            <xml>
            <ToUserName><![CDATA[%s]]></ToUserName>
            <FromUserName><![CDATA[%s]]></FromUserName>
            <CreateTime>%s</CreateTime>
            <MsgType><![CDATA[%s]]></MsgType>
            <Content><![CDATA[%s]]></Content>
            </xml>
            ‘‘‘ % (
                fromUserName, 
                toUserName, 
                createTime, 
                text, 
                Unknow Format, Please check out
                )
            return reply

#如果信息不是文本类,返回 Unknow Format, Please check out

#如果是文本呢,我们就继续操作,读取文本内容和文本信息的 ID,然后逆序,赋值,最后回复:


        content = xml.find(Content).text
        msgId = xml.find(MsgId).text
        if type(content).__name__ == "unicode":
            content = content[::-1]
            content = content.encode(UTF-8)
        elif type(content).__name__ == "str":
            print type(content).__name__
            content = content.decode(utf-8)
            content = content[::-1]
        reply = ‘‘‘
                <xml>
                <ToUserName><![CDATA[%s]]></ToUserName>
                <FromUserName><![CDATA[%s]]></FromUserName>
                <CreateTime>%s</CreateTime>
                <MsgType><![CDATA[%s]]></MsgType>
                <Content><![CDATA[%s]]></Content>
                </xml>
                ‘‘‘ % (fromUserName, toUserName, createTime, msgType, content)
        return reply
if __name__ == "__main__":
    app.run(host=0.0.0.0, port=8080)

技术分享

 

Python 实现倒序输出(逆序自动回复)