递归打印斐波那契数列 python

1.递归访问目录: 且目录中嵌套目录,有层次的列出给定目录中所有的文件和文件夹

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 print_dir(path,count=1):
    name_list = os.listdir(path)
    if count == 1:
        print(path)
    for name in name_list:
        sub_path = os.path.join(path,name)
        if os.path.isdir(sub_path):
            print(count * "\t", name)
            print_dir(sub_path,count * 1)
        if os.path.isfile(sub_path):
            print(count * "\t",name)
print_dir("E:\Download")

2.定义一个嵌套函数,

外层函数打印this is outing function
内层函数功能:打印This is inner function

def print_dir():
    print("this is outing function")
    def inner():
        print("This is inner function")
    return inner

3.定义一个递归函数:打印斐波那契数列

F[n]=F[n-1]+F[n-2] (n>=2,F[0]=0,F[1]=1)

num=int(input("请输入要输出多少项:"))
def Count_Function(n):
    if(n<3):
        return(n)
    else:
       return(Count_Function(n-1)+Count_Function(n-2))

i=1
while(i<=num):
    print(Count_Function(i),end="\t")
    i+=1
print()

4.对列表进行排序: list_data = [“grape”, “peach”, “berry”, “pineapple”, “apple”, “strayberry”, “watermelon”]

排序规则:按照最后一个字符进行排序,如果最后一个字符相等,按照第一个字符排序

list_data = ["grape", "peach", "berry", "pineapple", "apple", "strayberry", "watermelon"]
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 = map(lambda x,y,z:x + y + z,list1,list2,list3)
print(list(sum))

在这里插入图片描述

6.利用filter函数过滤列表中所有带a的字符串

  list_data = ["grape", "what", "which", "you", "friend", "am"]
list_data = ["grape", "what", "which", "you", "friend", "am"]
print(list(filter(lambda x: "a" in x,list_data)))

在这里插入图片描述

7.利用reduce计算1 + 2 + 3…+ 100之和

from functools import reduce
list_data1= list (range(1,101))
sum1 = reduce(lambda x,y:x+y,list_data1)
print(sum1)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值