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)
相關文章
相關標籤/搜索