1. 程式人生 > >python2.7練習小例子(二十四)

python2.7練習小例子(二十四)

[] sum output inf Coding == sys pop lse

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

python2.7練習小例子(二十四)