zoukankan      html  css  js  c++  java
  • Python练习题 022:用递归函数反转字符串

    【Python练习题 022】 利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。

    ---------------------------------------

    又来一个递归题!不过,有了【Python练习题 021:递归方法求阶乘】这道题的经验,还是依着葫芦画个瓢,倒也不难。代码如下:

    str = input('请输入若干字符:')
    
    def f(x):
        if x == -1:
            return ''
        else:
            return str[x] + f(x-1)
    
    print(f(len(str)-1))
    

    输出结果如下:

    请输入若干字符:abcdefg
    gfedcba

    如果不用递归函数呢?那就简单多了:先把输入的字符串转为列表,逆序重排,然后给 join() 在一起就可以上桌了。代码如下:

    str = list(input('请输入若干字符:'))
    
    str.reverse()
    print(''.join(str))
    

    可能是我现在的水平太低了,还体会不到递归函数的强大之处。路漫漫啊……

    【2016-10-18 更新】---------------------------------------------------

    感谢 codegay 的指教,这题如果不是强制要求用递归函数,其实还有一个非常简便的方法,就是切片!先来感受一下这极简之风味,史上最简方法:

    str = input('请输入若干字符:')
    print(str[::-1])
    

    就是这个“切片”功能!一般 str[:] 就可以复制 str 所有字符,等同于 str[::1],数字“1”表示步长,若为“2”,则 'abcdef'[::2] = 'ace' 。而 str[::-1] 用负数则表示反着切,正好符合本题的逆序复制,太巧妙了!

    ++++++++++++++++++++++++++++++++++++++

    题目出处:编程语言入门经典100例【Python版】

  • 相关阅读:
    配置文件
    ajax
    网线颜色排序
    cs程序添加初始化加载
    后台设置gridview不换行
    js 经典正则判断 一个字符串是否包含另一个字符串
    窗体关闭事件
    oracle根据视图删除表
    (字符串)哈希
    (字符串)哈希
  • 原文地址:https://www.cnblogs.com/iderek/p/5970227.html
Copyright © 2011-2022 走看看