日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

路飞学城Python-Day9

發布時間:2024/10/12 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 路飞学城Python-Day9 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

【23.函數-高階函數】
變量可以指向函數,函數的參數能接收變量,那么一個函數就可以接收另一個函數作為參數,這種函數就稱為高階函數
如果一個函數可以接收另一個函數,這個函數就稱為高階函數

def func(x,y):return x+y def calc(x):return x f = calc(func) print(f(5,9)) 示例

輸出結果

?

總結
1.接收一個或多個函數作為輸入
2.return返回另外一個函數

【24.遞歸介紹】
什么是遞歸?
遞歸就是在函數的過程中調用自己

def recursion(n):recursion(n+1)print("這就是遞歸") recursion(1) 示例

輸出結果

python在調用的過程中超過了最大遞歸層的限制
print(sys.getrecursionlimit())
sys.getrecursionlimit(1500)#修改最大遞歸層數的限制

總結
遞歸調用就是不斷的在函數自己里再執行,一直不結束,直到把內存撐爆了,所以需要有限制機制,于是python內部就加上了函數的限制

【25.函數-遞歸與棧的關系】
遞歸的本質,函數的調用時通過棧來執行的,棧就像是一個容器,內部是有數據大小限制的
每執行一次函數就會往棧里放內容,不斷的放在棧里就容易溢出,只有函數結束以后,棧才會處理垃圾數據

【26.遞歸的作用】
可以用來解決復雜的數學問題,比如斐波那契數列等
使用遞歸的場景

def calc(n):v = int(n /2)print(v)if int(v) == 0:return 'Done'calc(v) calc(10) 需求:使用10整除2,直到得到0為止

輸出結果

【27.遞歸的特性總結】
遞歸是層級進入執行,函數執行完結束也是層級結束的

?


1.必須有一個明確的結束條件,要不就會變成死循環了,最終撐爆系統
2.每次進入更深一層遞歸時,問題規模相比上次遞歸都應有所減少
3.遞歸執行效率不高,遞歸層次過多會導致棧溢出

?

【28.遞歸的作用】
遞歸的作用,斐波那契數列,漢諾塔,求階乘等

def factoial(n):if n == 1:return 1return n * factoial(n-1) print(factoial(4)) 階乘,每遞歸一次就要算一次階乘

輸出結果

?

【29.尾遞歸優化】
有沒有優化的方式可以優化遞歸的效率?

def cal(n):print(n)return cal(n+1) cal(1) 尾遞歸示例

尾遞歸就是在函數執行的時候直接用return調用,第一層調用第二層函數的時候,使用return直接結束第一層函數的執行,就是層層之間互相不再有對應的關系
也就是說當沒有必要保留每一層的數據的時候,就可以直接用return調用下一層的函數,不再對棧有多余的占用

然而尾遞歸優化并不是所有的語言都是支持的,在C語言里是支持的,但是再python里是沒有任何用的,python不會有尾遞歸優化的

【30.函數-內置方法1,2,3,4,5】
python里有幾十種內置方法
abs()>>取絕對值 函數返回數字的絕對值
dict()>>把一個數據轉換成字典
help()>>查看幫助
min()>>方法返回給定參數的最小值,參數可以為序列
max()>>方法返回給定參數的最大值,參數可以為序列
setattr()>>【面向對象詳細講】函數對應函數 getatt(),用于設置屬性值,該屬性必須存在
all()>>函數用于判斷給定的可迭代參數(元祖或列表) iterable 中的所有元素是否都為 TRUE,如果是返回 True,否則返回 False。元素除了是 0、空、FALSE 外都算 TRUE

li = [1,2,3,4] all(li)#這里會返回True li.append(0) all(li)#這里會返回False 示例

any()>>any() 函數用于判斷給定的可迭代參數 iterable 是否全部為 False,則返回 False,如果有一個為 True,則返回 True
bool()>>判斷輸入的值是不是True
dir()>>打印當前文件存在的所有變量,包括你自定義的和python解釋器自帶的
hex()>>十六進制,將一個數字轉換為十六進制的表達方式
next()
slice()>>切片
divmod()>>求整除和余數,先得到結果再返回余數
id()>>返回傳入的內存地址
object()>>
sorted()>>排序,可以對字典的value排序,用在列表里的排序,sort 是應用在 list 上的方法,sorted 可以對所有可迭代的對象進行排序操作
ascii()>>返回一個可打印的對象字符串方式表示
enumerate() >>枚舉法用于將一個可遍歷的數據對象(如列表、元組或字符串)組合為一個索引序列,同時列出數據和數據下標,一般用在 for 循環當中
input()>>用戶交互輸入
oct()>>將輸入的數字轉換為八進制
staticmethod()>>返回函數的靜態方法【以后會講】
bin()>>轉換為二進制
eval() >>函數用來執行一個字符串表達式,并返回表達式的值,將字符串解析成代碼(只能處理單行的代碼)
exec()>>和eval功能相同,而且能執行多行代碼,exec是沒有返回值的
int()>>將數字轉換為整數,不能轉換的就報錯
open()>>打開文件
str()>>將數字或字符轉換為字符串形式
isintance()>>【面向對象】
ord()>>通過字符串返回在ascii表中的位置
chr()>>通過ascii表中的位置返回字符串對應值
sum()>>求和
bytearray()>>返回一個新字節數組,這個數組里的元素是可變的(原內存地址修改,不是重開辟內存空間)
map()>>根據提供的函數對指定序列做映射,可以用來求列表內的元素自乘(配合lambda函數)list(map(lambda x:x+3,[1,2,3,4,5]))
filter()>>過濾,找到符合條件的值--list(filter(lambda x:x>3,[1,2,3,4,5]))
pow()>>返回輸入的數字的冪級數
super()>>【面向對象講】
bytes()>>返回輸入的二進制數
float()>>浮點數
iter()>>生成迭代器
print()>>print(*objects, sep=' ', end='\n', file=sys.stdout)

objects -- 復數,表示可以一次輸出多個對象。輸出多個對象時,需要用 , 分隔。 sep -- 用來間隔多個對象,默認值是一個空格。 end -- 用來設定以什么結尾。默認值是換行符 \n,我們可以換成其他字符串。 file -- 要寫入的文件對象 print可以直接把字符串打印到文件里 msg = '小邋遢' f = open("ptint_to_file",'w') print('真呀真邋遢',sep = '|',end = "") print內部參數解讀

tuple()>>轉換為元祖
callable()>>判斷一個東西是否可調用,可以判斷變量是否是函數
len()>>判斷字符串的長度
property()>>【面向對象】
type()>>判斷參數的數據類型
frozenset()>>返回一個凍結的集合,凍結后集合不能再添加或刪除任何元素
vars()>>打印當前所有的變量
locals()>>在函數的內部執行,打印當前函數的所有的局部變量
globals()>>無論在函數內部還是外部都打印全局的變量
zip()>>函數用于將可迭代的對象作為參數,將對象中對應的元素打包成一個個元組,然后返回由這些元組組成的列表,只能是一一對應的關系

l1 = [1,2,3,4] l2 = ['a','b','c','d'] print(list(zip(l1,l2))) 示例:

?

轉載于:https://www.cnblogs.com/pandaboy1123/p/9276237.html

總結

以上是生活随笔為你收集整理的路飞学城Python-Day9的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。