2019-09-21-23:00:26 今天看了很多博客網的博客,看完覺得自己的博客真的是垃圾中的垃圾 新手不知道怎樣寫博客,我也很想寫好一篇能讓人看的博客,但是目前水平不夠 只能慢慢改,今天的博客還是按照自己的方式寫吧,明天開始學習怎麼寫一篇好的博客 但是感覺有點難,加油,但是自己寫博客也是為了記 ...
2019-09-21-23:00:26
今天看了很多博客網的博客,看完覺得自己的博客真的是垃圾中的垃圾
新手不知道怎樣寫博客,我也很想寫好一篇能讓人看的博客,但是目前水平不夠
只能慢慢改,今天的博客還是按照自己的方式寫吧,明天開始學習怎麼寫一篇好的博客
但是感覺有點難,加油,但是自己寫博客也是為了記錄自己的學習路程,所以博客得慢慢改
一.重要知識點
1. 動態參數
位置參數的動態參數: *args
關鍵字參數的動態參數 : **kwargs
順序:
位置,*args,預設值,**kwargs
在形參上*聚合, **聚合
在實參上*打散, **打散
2. 命名空間和作用域
命名空間:
1. 內置命名空間: python解釋內部運行時的變數函數
2. 全局命名空間: 我們在py文件中直接聲明出來的變數,函數
3. 局部命名空間: 在函數內部聲明的變數和函數.
載入順序
1.內置名命空間
2.全局名命空間
3.局部名命空間(函數被調用時)
取值順序
1.局部名命空間
2.全局名命空間
3.內置名命空間
作用域:
1.全局作用域:內置+全局
2.局部作用域:局部
globals() 查看全局作用域中的名字
locals() 查看當前作用域中的名字
3. global和nonlocal
global: 把全局變數拿到局部來用.
nonlocal: 把離他最近的一層的變數拿過來.不會找全局
二.錯誤總結
1.全局變數和局部變數的關係
# dic_new = {} -->>這個是局部變數,應該放在局部名命空間里
def func(dic):
dic_new = {}
for k,v in dic.items():
if len(v)>2:
dic_new[k]=v[0:2]
else:
dic_new=v
return dic_new
dic= {"k1": "v1v1", "k2": [11,22,33,44]}
print(func(dic))
#出現這個錯誤的原因是沒有考慮局部變數的引用是不能在全局變數里引用
解決方法:瞭解全局變數和局部變數的概念