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)

时间: 2024-10-29 19:11:50

Python 实现倒序输出(逆序自动回复)的相关文章

C语言整数按照二进制逆序,输出逆序后的整数值

问题来源,今天早上和一舍友吃早餐的时候谈到的一个问题,将一个整数按照二进制逆序,然后输出逆序后的数值. 我们知道数值在内存中都是以二进制的形式存放的,假如我们是32位机,每8位为一个字节,int型在32位机上是占4个字节,即32位. 如   2  = 0000 0000 0000 0000 0000 0000 00000 0010(32位) 逆 ^2  = 0100 0000 0000 0000 0000 0000 00000 0000  (这里用^表示逆转) 那么这个操作要如何执行呢?首先补充

【c语言】将一个数的二进制序列逆序,然后输出逆序之后的二进制序,所对应的数

// 将一个数的二进制序列逆序,然后输出逆序之后的二进制序,所对应的数 #include <stdio.h> // 从原数拿出最低位,放到mid中,mid左移,原数右移 int reverse(int a) { int mid = 0; int bit; int n = 31; for (; n > 0; --n) { bit = a & 1; mid |= bit; mid <<= 1; a >>= 1; } return mid; } int main

treemap反序输出 逆序输出 输出倒数几个值

treemap是按键的ASCII码从小到大排序的,比如要对若干个带有时间属性的对象排序时,可以用时间作键,放到Treemap中,即是有序集合了.先不管性能,省了很多自己写排序的实现了. 默认是按key的ASCII码顺序由小到大排序的,如果要实现自定义的排序,则要重写treemap的比较器. 最简单的方法就是使用集合对象自带的方法,Collections.reverseOrder() 具体代码如下 package com.example.commonwtf2.test; import java.u

Python列表倒序输出及其效率

Python列表倒序输出及其效率 方法一 使用Python内置函数reversed() for i in reversed(arr): pass reversed返回的是迭代器,所以不用担心内存问题. 方法二 使用range()倒序 for i in range(len(arr) - 1, -1, -1): pass 方法三 先使用list自带的reverse()函数,再用range()循环 arr.reverse() for i in range(len(arr)): pass 因为要先倒序,

【python】 倒序输出字符串

By Dolphin , 20150730 Title : 编写一个程序,获取用户输入的一条信息,然后将其倒序输出. Code: # Reverse Word # By Dolphin,20150730 # word = input("Please Enter a word :") # creat a jumble word  jumble = "" position = len(word) - 1 while word and position != -1 : j

C语言strrev()函数:字符串逆置(倒序、逆序)

头文件:#include<string.h> strrev()函数将字符串逆置,其原型为:    char *strrev(char *str); [参数说明]str为要逆置的字符串. strrev()将str所指的字符串逆置. [返回值]返回指向逆置后的字符串的指针. strrev()不会生成新字符串,而是修改原有字符串.因此它只能逆置字符数组,而不能逆置字符串指针指向的字符串,因为字符串指针指向的是字符串常量,常量不能被修改. [函数示例]看看strrev()是否改变原有字符串. #inc

实现一个函数,将一个数的二进制序列逆序,然后输出逆序所得二进制序列所对应的数字

#include<stdio.h> #include<stdlib.h> unsigned int reverse_bit(unsigned int num) {  int ret = 0;  int i = 0;  while (num)  {   ret += (num & 1) << 31 - i;   i++;   num >>= 1;  }  return ret; }  int main()  {   int num = 0;   sca

倒序--逆序=3 rwkj 1271

--> C语言:递归函数3(数组倒序) 时间限制(普通/Java):1000MS/3000MS          运行内存限制:65536KByte总提交:786            测试通过:347 描述 输入多个整数,以0结束,将这些整数逆序后输出. 要求:使用递归函数将数组倒序,在main中调用递归函数. 输入 多个整数,最后为0. 输出 逆序后的这些整数. 样例输入 1 2 5 4 01 2 3 4 5 6 7 8 9 0 样例输出 4 5 2 19 8 7 6 5 4 3 2 1 提

逆序的三位数C语言实现

最近在上浙江大学翁恺老师的<程序设计入门-C语言>课,翁老师那富有男性特有魅力的磁性嗓音深深吸引了我....虽然我是男的.课程首周有个测试题: 题目内容: 程序每次读入一个正三位数,然后输出逆序的数字.注意,当输入的数字含有结尾的0时,输出不应带有前导的0.比如输入700,输出应该是7. 输入格式: 每个测试是一个3位的正整数. 输出格式: 输出逆序的数. 输入样例: 123 输出样例: 321 难度不大,很快就写出来了,在线提交了测试通过了,代码如下,写在博客上留作纪念,方便以后查看吧. P