前导知识:
1.切换目录: os.chdir(path)
2.列出当前目录中所有的文件和文件夹 os.listdir(path), path: 绝对路径
3.判断是否是文件: os.path.isfile(path)
4.判断是否是目录: os.path.isdir(path)
5.拼接路径: os.path.join(path1, path2, path3…)
且目录中嵌套目录,有层次的列出给定目录中所有的文件和文件夹
import os
def listdir(path, count=0):
list_dir = os.listdir(path)
for i in list_dir:
path1 = os.path.join(path + "/", i)
if os.path.isdir(path1):
print(count * " ", i)
count1 = count + 1
listdir(path1, count1)
else:
print(count * ' ', i)
listdir('D://text')
2.定义一个嵌套函数
def outer():
print('this is outing function')
def inner():
print('this is inner function')
return inner
outer()()
3.定义一个递归函数:打印斐波那契数列
def fibonacci_seq(arg):
if arg == 0:
return 0
if arg == 1:
return 1
if arg >= 2:
return fibonacci_seq(arg - 1) + fibonacci_seq(arg - 2)
print(fibonacci_seq(9)) # 34
4.对列表进行排序:
list_data = [“grape”, “peach”, “berry”, “pineapple”, “apple”, “strayberry”, “watermelon”]
排序规则:按照最后一个字符进行排序,如果最后一个字符相等,按照第一个字符排序
list_data = ["grape", "peach", "berry", "pineapple", "apple", "strayberry", "watermelon"]
def sort_role(x):
return x[-1], x[0]
# list_data.sort(key=sort_role)
list_data.sort(key=lambda x: (x[-1], x[0]))
print(list_data)
5.利用map函数: 计算三个列表,相同位置元素之和
list1 = [1, 2, 3] list2 = [4, 5, 6] list3 = [7, 8, 9] sum_list = map(lambda x, y, z: (x+y+z), list1, list2, list3) # print(sum_list) # 返回的是一个map对象 print(list(sum_list)) # 结果:[12, 15, 18]6.利用filter函数过滤列表中所有带a的字符串
list_data = ["grape", "what", "which", "you", "friend", "am"] result = filter(lambda x: 'a' not in x, list_data) # print(result) # 返回一个filter类型的对象 print(list(result)) # 结果:['which', 'you', 'friend']7.利用reduce计算1 + 2 + 3…+ 100之和
from functools import reduce list_data = list(range(1, 101)) # print(list_data) result = reduce(lambda x, y: x+y, list_data) print(result) # 结果:5050



