greenZ

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

【demo】Python递归

 

#!/usr/bin/python

# coding=utf-8

 

import os

 

#递归求 1+2+3+...+100 之和

s=0

def add(i,step,end_num):

    global s

    print("s=",s, "i=",i)

    s=s+i

    i=i+1

    if i > end _value :

        print("inner s=",s)

        return s

    else

        add(i,step,end_num)

    return s

 

def main1():

    print("Function main1 enter:")

    begin_num = 1

    step = 1

    end_num = 100

    sum=add(begin_num,step,end_num)

 

#循环求 1+2+3+...+100 之和

def getSum(begin_num,step,end_num):

    global s

    for n in range(begin_num,end_num+1,step)

        s=s+n

        #print "s=%d,n=%d"%(s,n)

    print "s=%d"%(s)

 

def main2():

    print("Function main3 enter:")

    getSum(1,1,100)

    print "s=%d"%(s)

 

#递归查找目录下文件,并统计文件个数

num=0

def getfile(filepath):

    files = os.listdir(filepath)

    global num

    for fi in files:

        fi_d=os.path.join(filepath,fi)

        print "fi=%s,fi_d=%s"%(fi,fi_d)

 

        if os.path.isdir(fi_d):

            getfile(fi_d)

        else

            #fname = os.path.splitext(fi_d)[0] #带路径的 "文件名,后缀"

            #fextension = os.path.splitext(fi_d)[1]

            fname = os.path.splitext(fi)[0] #不带路径的 "文件名,后缀"

            fextension = os.path.splitext(fi)[1]

            num = num + 1

            print "fname=%s,fextension=%s"%(fname,fextension)

            print "num=%d"%(num)

    return num

 

def main3():

    print("Function main3 enter:")

    filepath='/tmp/test'

    f=getfile(filepath)

    print "f=%d,global num=%d"%(f,num)

 

#脚本执行入口

main1()

main2()

main3()

 

 

 

执行.py脚本:

python -V

使用exit() 退出python命令行

 

python recursion_demo.py

 

posted on 2020-03-13 22:42  绿Z  阅读(262)  评论(0)    收藏  举报