python-递归函数(73)

#转自https://www.jianshu.com/c/00c61372c46a网址
#递归函数就是在函数内部继续调用自己
def func(n):
    if n == 1:
        return n
    return n * func(n - 1)

if __name__ == '__main__':
    print(func(5))
    print(func(6))




#逐级列出目录内容
import os
import sys

def list_files(path):
    if os.path.isdir(path): #判断是不是目录
        print(path + ':')
        content = os.listdir(path)
        print(content)
        for fname in content:
            fname = os.path.join(path,fname)    #将path路径和fname路径粘合在一块
            list_files(fname)

if __name__ == '__main__':
    list_files(sys.argv[1])     #例:python3 listdir.py /etc






#快速排序
# 思路:
# 1、假设列表中第一个数是中间值,比它小的数字放到smaller列表中,比它的大的数字放到larger列表中。再将这三项拼接起来。
# 2、因为smaller和larger仍然是无序列表,需要使用相同的方法继续分割。
# 3、如果列表的长度是0或1,那么就没有必要再排序了。
from random import randint

def quick_sort(num_list):
    if len(num_list) < 2:
        return num_list

    middle = num_list[0]
    smaller = []
    larger = []
    for i in num_list[1:]:
        if i < middle:
            smaller.append(i)
        else:
            larger.append(i)

    return quick_sort(smaller) + [middle] + quick_sort(larger)

if __name__ == '__main__':
    alist = [randint(1,100) for i in range(10)]
    print(alist)
    print(quick_sort(alist))




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值