程式設計方式:物件導向&面向過程 函式式程式設計 面向過程一般沒有返回值 例如:c 面向過程 就是執行上下文 沒有返回值
函式定義:就是封裝好的功能 關鍵字 def
函式的優點: 優化** 避免重複,方便修改 通用功能的呼叫 可重用 一致性 可擴充套件
形參:是在函式定義階段就規定的引數,它就相當於定義變數時的變數名
實參:是在函式呼叫階段傳入的引數,它相當於定義變數時的變數值
1、無參函式:defindex():
print('ok'
) 2、空函式:
deflogin():
pass
3、有參函式:
deflogin(username):
print(username)
4、引數的詳細描述1、位置引數
在函式定義階段按照順序從左到右書寫的變數名就叫位置形參
在函式呼叫階段按照順序從左到右書寫的具體的值就叫位置實參
位置引數定義之後一定要傳遞引數
2、關鍵字引數
在函式呼叫階段,以key=value形式進行,關鍵子引數
3、預設值引數
在函式定義階段提前給形參賦值的操作就叫預設值引數
4、可變長引數***
* 在函式定義階段:接收所有溢位的位置引數,將接受的值以元組的形式傳入*後面的變數中
*在函式呼叫階段:將列表、元組、字串、集合等可以使用的for迴圈的容器型別打散成位位置引數
** 在函式定義階段:接收所有溢位的關鍵字引數,將接受的值以字典的形式傳入**後面的變數中
** 在函式呼叫階段:將字典打散成關鍵字引數傳入形參
deft01(x,y,z):
(x)
(y)
(z)t01(1,2,3) #
位置引數和引數一一對應
t01(4,y=1,z=2) #
形式引數不能放在位置引數前面
# 預設引數
def connect(x,port=3306): 預設引數不能不能放在位置引數前面
(x)
(port)
connect(
'127.0.0.1
')
#傳參方式:位置引數 注意:位置引數必須放在關鍵字引數前面
defcheck_bigger(a,b):
if a >b:
return
a
else
:
return
bs = check_bigger(1,3) #
位置引數
(s)s1 = check_bigger(b=1,a=3) #
關鍵字引數
(s1)
s2 = check_bigger(1,b=3) #
位置引數必須放在關鍵字引數前面
(s2)
#預設引數
def check_bigger1(a,b=3):
if a >b:
return
a
else
:
return
bs3 = check_bigger1(4)
print(s3)
#*args: 接收所有溢位的位置引數,接收的值都被存入乙個元組
# **kwargs:接收所有溢位的關鍵字引數,接收的值都被存入乙個字典
#*:打散傳入容器型別
####*args:接收所有溢位的位置引數,接收的值都被存入乙個元組
def func(a,b,*args):
print(a,b,args[0],args) #
args為元組
func(1,2,3,4,5,6)
###**kwargs: 接收所有溢位的關鍵字,接收的值被存入字典
def func(a,b,*args,**kwargs):
print(a,b,args[0],kwargs) #kw
args為字典
func(1,2,3,4,5,6,c=6)
### *: 將實參打散傳入函式 注意 * 與 *args **kwargs 沒有關係
deffunc(a,b,c,d,e):
(a,b,c,d,e)
func(1,2,3,*(4,5))
PHP date函式引數詳解
ime 在php中是得到乙個數字,這個數字表示從1970 01 01到現在共走了多少秒,很奇怪吧 不過這樣方便計算,要找出前一天的時間就是 time 60 60 24 要找出前一年的時間就是 time 60 60 24 365 那麼如何把這個數字換成日期格式呢,就要用到date函式了 t time ...
python函式引數詳解
如果你傳入的引數物件是可變物件 列表,字典,這個時候就是引用傳遞。如果你傳入的引數物件是不可變的物件 數字,元組,字串,這個時候就是值傳遞。對於值傳遞,函式內部修改的是引數的副本,不會改變原值 對於引用傳遞,函式內部修改了是變數的指向,從而相應對變數進行了改變。舉例如下 當引數是不可變物件時 a 1...
strtol函式引數詳解
long int strtol const char nptr,char endptr,int base 為什麼第二個引數不用初始化只用定義乙個未初始化的char 型別的指標即可?strtol是atoi的增強版,引數base範圍從2至36,或0。引數base代表採用的進製方式,0 10是十進位制 1...