#转自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))