python2.7练习小例子(二十四)

    24):1、题目:利用递归方法求5!。

    程序分析:递归公式:fn=fn_1*4!

 


#!/usr/bin/python
# -*- coding: UTF-8 -*-

def fact(j):
    sum = 0
    if j == 0:
        sum = 1
    else:
        sum = j * fact(j - 1)
    return sum
 
print fact(5)

    以上实例输出结果为:

 

120

    python3 参考方案:

 

def Factorial(n):
    if n == 1:
        fn=1
    else:
        fn = n*Factorial(n-1)
    return fn
print(Factorial(5))

    2、题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。

    程序源代码:

 


#!/usr/bin/python
# -*- coding: UTF-8 -*-

def output(s,l):
    if l==0:
        return
            print (s[l-1])
    output(s,l-1)
 
s = raw_input('Input a string:')
l = len(s)
output(s,l)

    以上实例输出结果为:

 

Input a string:abcde
e
d
c
b
a

    使用负数下标:

 

#!/usr/bin/python
# -*- coding: UTF-8 -*-

def desc_output(s):
    if(len(s) > 0):
        print(s[-1])            # python 负数下标
        desc_output(s[0:-1])    

s = raw_input('Input a string:')
desc_output(s)

    Python3 下非递归,使用各列表的 reverse() 方法:

 

#!/usr/bin/env python3

S = input('Input a string:')
L = list(S)
L.reverse()
for i in range(len(L)):
    print(L[i])

    

# coding:utf-8
def output(s):
    s = list(s)
    if len(s) == 0:
        return
    print(s[len(s) - 1])
    s.pop()
    output(s)


output("abcde")

    Python3 下测试:

 

#!/usr/bin/env python3

s=input("输入一串字符: ")
s=list(s);
for i in range(0,int(len(s)/2)):
    t=s[len(s)-i-1];
    s[len(s) - i - 1]=s[i]
    s[i]=t
print("".join(s))

    以下实例,可以支持中文字符:

 

# encoding:utf-8

'''
Created on 2017年8月14日
题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。
@author: wangtaoyuan
'''
import sys
reload(sys)
sys.setdefaultencoding("utf8")

str = raw_input('请输入:').decode('utf-8')
def reoutput(str):
    if len(str) == 0:
        return
    print str[-1]
    str = str[0: len(str) - 1]
    reoutput(str)
reoutput(str)

    

# -*- coding: UTF-8 -*-

list = []
for i in range(1,6):
    a = input('输入第 {} 个数字:'.format(i))
    list.append(a)
list2 = list[::-1]
print(list2)

    Python3 测试实例:

 

s=input("请输入字符:")
for i in range(len(s)-1,-1,-1):
    print(s[i],end="")

    Python3 测试实例:

 

def printlast(strinfo, index):
    if (index + 1) == len(strinfo):
        print(end="")
    else:
        printlast(strinfo, index + 1)
    print(strinfo[index], end="")
printlast("abcdefg", 0)

    Python3 参考:

 

a=[]
for i in range(1,6):
    b=input('请输入第'+str(i)+'个字符:')
    a.append(b)
def fp(c):
    if c==6:
       return False
    print(a[5-c],end=' ')
    fp(c+1)
fp(1)

    这两个小例子感觉蛮有意思的,有兴趣的可以练练手。如果感觉不错的话,请多多点赞支持哦。。。

  原文链接:https://blog.csdn.net/luyaran/article/details/80064473

posted @ 2018-04-25 13:15  luyaran  阅读(264)  评论(0编辑  收藏  举报