li函式在python python 函式

2021-10-16 21:33:54 字數 2006 閱讀 2799

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....