1.概念
由若干條語句組成的語句塊,他的組織**是**的最小單元
完成一定的功能
2.作用
最基本的封裝,按照功能組織一段**
可以復用,減少**量
**簡潔美觀,更易懂
3.函式的分類
內建函式 max()
庫函式 match.ceil()
自定義函式 使用def關鍵字定義
4.定義
函式名縮排
return 沒有預設返回none
形參5.呼叫
函式名加括號,後面跟實參
6.引數
6.1實參的傳入方式
按照位置對應(位置傳參)多了少了都不行
按照形參名稱傳參(關鍵字傳參)多了少了都不行,無所謂先後順序
不允許關鍵字引數在前
6.2形參的定義
引數預設值(定義時給形參乙個值)
有預設值的引數必須在無預設值引數後面
6.2.1可變的位置引數
*args :可變形參,接收零個或多個引數,生成乙個元組(不可變),星號後面引數名可自定義
6.2.2可變的關鍵字形參
**kwargs: 盡可能收集,生成乙個字典(可變),呼叫時要使用關鍵字傳參,作為形參的最後乙個引數
位置傳參必須在關鍵字傳參的前面
6.2.3 keyword-only
必須使用關鍵字傳參
定義方式:
def fn(*,a,b):
pass
6.2.4 positional-only
python3.8語法
「/」 之前只支援位置傳參
定義方式
def fn(a,/,b): a只支援位置傳參
pass
引數規則
引數列表引數一般順序是: positional-only,普通引數,預設引數,可變位置引數,keyword-only引數(可帶預設值),可變關鍵字引數
**易讀易懂
按照書寫規範定義函式
6.3實參傳入
函式def sun_(*args):
print(args)
s=0for x in args:
s+=x
return s
傳參方式(引數解構)
sum_(*[1.,2,3])
sum_(*range(10)
sum_(*[1,2], *(4,5), *)
#字典引數結構:
sum_(*) #解構出key
sum_(**) #解構出關鍵字傳參key=value
實參的引數解構
實參前面加星號,表示將後面的可迭代物件裡的元素作為位置引數傳入
7.函式返回值
函式執行過程中碰到return語句就代表這個函式執行完畢
沒有return的函式,預設返回none
乙個函式就算有多條return ,也只會執行乙個
返回值的作用:結束函式呼叫,返回返回值
8.函式的作用域
通常指的是變數的作用域
作用域分類
全域性作用域
在整個程式執行環境中都可見
全域性作用域中的變數稱為全域性變數global
區域性作用域
在函式/類的內部可見
區域性作用域中的變數稱為區域性變數,其使用範圍不能超過其所在區域性作用域
也稱為本地作用域local
一般外部作用域在內部可見,內部作用域外部不可見
向內穿透,就近選擇
global使用原則
外部作用域變數會在內部作用域可見,但也不要在這個內部的區域性作用域中直接使用,因為函式的目的就是為了封裝,盡量與外界隔離
如果函式需要使用外部全域性變數,請盡量使用函式的形參定義,並在呼叫傳實參解決
一句話:不用global,學習他就是為了深入理解作用域
閉包概念
自由變數
未在本地作用域中定義的變數。例如定義在內層函式外的外層函式的作用域中的變數
閉包就是乙個概念,出現在巢狀函式當中,指的是內層函式引用外層函式的自由變數,就形成了閉包
padding在li種的解決
這裡我要完成的是li裡面套背景和右箭,由於背景在body裡的定義被替換了,只能在li下套span,又不能用float right變成浮動的塊。只能用li套span,在後面跟上下兩個span實現文字的大小標題。這裡上 if count 0 else combinedimage這裡只能讓她右對齊和居右3...
li在IE中底部空行的BUG
但是這次li在ie中底部出現的不是3畫素而是一整條空白行,如圖 第1條連線 a li li a href 第2條連線 a li li a href 第3條連線 a li ul css li li a li a hover檢視demo,請使用ie6檢視 ie6中列表的常見問題出現在當某個 li 中的內...
在Linux下不使用密碼遠端登陸其他Linux
有時需要再一台linux上登陸其他linux伺服器,通常可以直接使用ssh命令,加入兩台伺服器一台伺服器a,ip位址192.168.1.2,另一台伺服器b,ip位址192.168.1.3,如果想從a伺服器使用root使用者登陸b伺服器只需要在a伺服器上執行 usr bin ssh root 192....