day9-基础函数的学习(四)

这几天一直赶着写写做业,博客的书写又落下了,要加油鸭,开写python

今日份目录数组

1.内置函数闭包

2.递归函数函数

开始今日份总结编码

1.内置函数spa

内置函数就是python内部包含的函数,总计有68种,不过有些事真的每天用,按照我的以及老师的想法会对函数标注重要性code

1.1  三星函数orm

1.1.1 做用域相关函数对象

这俩个函数在学闭包的时候用的比较多blog

locals:函数会以字典的类型返回当前位置的所有局部变量

globals:函数以字典的类型返回所有全局变量

1.1.2 输入输出相关

这俩基本是每天用吧

input:用户交互,接收到的数据都是string类型

print:打印输出,print的带参用法

print(1,2,3,sep='|')  # 设置打印的分隔符
print(1,2,3,end=' ')  # 设置结束时的格式
f = open('log','w',encoding='utf-8')
print('写入文件',file=f)#用打印的方式将打印的内容直接写入到文件

1.1.3内存相关

hash:获取一个对象(可哈希对象:int,str,bool,tuple)的哈希值

id:用于获取对象的内存地址,例如:深浅copy中

1.1.4 文件操做

这个文件操做都在用啊

open: 函数用于打开一个文件,建立一个文件句柄(file对象),相关的方法才能够调用

1.1.5帮助

help:函数用于查看函数或模块用途的详细说明

1.1.6调用相关

callable:函数用于检查一个对象是否能够调用,返回True调用对象有可能不成功,可是False是绝对调用失败

def func():
    pass
func1 = 77
print(callable(func))
print(callable(func1))

1.1.7迭代器生成器相关

range:函数建立一个整数对象,通常用在for循环中

1.1.8数学运算

sum:求和

min:求最小值,可加key,key为函数名,经过函数的规则,返回最小值

l1 = [3, 2, 7, 9, 10]
print(min(l1))

l1 = [3, 2, 7, 9, -10, -1]
print(min(l1,key=abs))

dic = {'a': 3 ,'b': 2,'c': 1}
def func(x):
    # x = a  第一次
    # x = b  第二次
    # x = c  第二次
    return dic[x]
dic['a']  3
dic['b']  2
dic['c']  1
print(min(dic))  # 默认比较字典的key 将最小的key返回
print(min(dic,key=func))  # 将dic中的每一个键传入函数中,以函数的返回值比较最小。
print(dic[min(dic,key=func)])  # 将dic中的每一个键传入函数中,以函数的返回值比较最小。
print(min(dic,key=lambda x: dic[x]))  # 将dic中的每一个键传入函数中,以函数的返回值比较最小。
print(dic[min(dic,key=func)])
l1 = [('a', 3), ('b', 2), ('c', 1)]
# print(min(l1))
print(min(l1,key=lambda x: x[1]))

max:求最大值,能够加key,key为函数名,经过函数返回最大值

1.1.9字符相关

str:与编码相关

bytes:与编码相关

1.1.10

len:返回长度

sorted:对可迭代对象进行排序操做

zip:将可迭代的对象做为参数,将对象中对应的元素打包成元祖,若是俩个列表元素长度不一致按照最短的操做

# l1 = [1, 2, 3]
# l2 = ['a', 'b', 'c', 5]
# l3 = ('*', '**', '***')
# iter1 = zip(l1, l2, l3)
# # print(iter1)
# for i in iter1:
#     print(i)

filter:返回一个迭代器,相似列表推导式的筛选模式

map:返回一个迭代器,循环相似与列表推导式的循环模式

1.2  二星函数

1.2.1文字处理相关(慎重使用,尽可能不用,有风险)

eval:执行字符串类型的代码,并返回最终结果。

msg ='1+2+3+4'
print(eval(msg))
#结果
10

exec:执行代码串类型的代码流

s4 = '''
for i in range(1,5):
    print(i)
'''
print(s4)
#exec  执行字符串类型的代码流
exec(s4)
#结果
for i in range(1,5):
    print(i)
1
2
3
4

complie:将字符串类型的代码编译。代码对象可以经过exec语句来执行或者eval()进行求值。(真没用过)

1.2.2查看内置属性

dir:函数不带参数时,返回当前范围内的变量;当函数带参数时,返回参数的属性与办法列表

1.2.3迭代器生成器相关

next:内部实际调用的是__next__的方法,返回迭代器的下一个项目

iter:函数用来生成迭代器(一个可迭代对象如何生成一个迭代器)

float:将整数或者是字符串转换成浮点数

1.2.4进制转换

bin:十进制转换成二进制并返回

oct:十进制转换成八进制并返回

hex:十进制转换成十六进制并返回

1.2.5 数字相关

bool:给参数转换成布尔类型

int:将一个字符串或者是数字转换为整型,有些浮点型的会直接截断小数直接取整

abs:返回一个数字的绝对值

round:保留浮点数的小数位数,默认是保留整数

pow:求幂

tuple:将一个可迭代对象转换成元祖,(若是是字典,默认将key放在元祖中)

reversed:将一个序列翻转,并返回此翻转序列的迭代器

dict:建立一个字典,与dic有区别的

set:建立一个集合

frozenset:返回一个冻结的集合

1.3  一星函数

__import__:函数用于动态加载类和函数

slice:用于生成一个切片对象,方便列表切片

format:与具体数据相关,主要用于各类小数,精算等(若是是数据分析用 的比较多)

bytearry:返回一个新字节的数组

memoryview:

ord:找到一个字符在ascii码中的位置

chr:与ord相反,输入数字找到对应ascii码中的字符

2.递归函数

人理解函数, 神理解递归
递归函数,就是函数本身调用自己,本身玩本身

def func1():
 #     print("我是谁")
 #     print("我在哪")
 #     func1()
 #
 # func1()

# import sys
 # print(sys.getrecursionlimit())


 # def func1(n):
 #     n += 1
 #     print(n)
 #     func1(n)
 #
 # func1(0)

# sys.setrecursionlimit(100000)
 # 递归函数,会在内存空间不断地开辟新的内存空间,直到内存占满为止

# def func1(n):
 #     n += 1
 #     print(n)
 #     func1(n)
 #
 # func1(0)

# 递归函数的应用:

# os模块的三个知识点
# import os
 #
 # file_list = os.listdir("D:\python骑士计划3期")  # (1)获取目录下全部文件和目录, 经过list返回
# # print(file_list)
 #
 # for file in file_list:
 #     file_path = os.path.join("D:\python骑士计划3期", file)  # (2)将上级文件路径与文件拼接,返回文件路径
#     # print(file_path)
 #     if os.path.isdir(file_path):  # (2)判断文件是不是目录
#         print("这是目录", file)
 #     else:
 #         print("这是文件", file)


 import os

def read(path, n):  # n = 0
     file_list = os.listdir(path)  # 获取目录下全部文件和目录, 经过list返回

    for file in file_list:
         file_path = os.path.join(path, file)  # 将上级文件路径与文件拼接,返回文件路径

        if os.path.isdir(file_path):  # 判断文件是不是目录
            print("    " * n, file)
             read(file_path, n+1)
         else:
             print("    " * n, file)


 read("D:\python骑士计划3期", 0)