day3-python 函數參數類型


一、函數有可變類型和不可變類型:

1.不可變類型

 #!/usr/bin/python3

def ChangeInt( a ):

a = 10

b = 2

ChangeInt(b)

print( b ) # 結果是 2

 

2.可變類型

在函數里修改了參數,那在調用這個函數時候,原始函數也會改變

def change(a):
a.append([1,2,3,4])
print('調用函數',a)
return
a=[10,20,30,40]
change(a)
print('外部修改',a)

結果為:

調用函數 [10, 20, 30, 40, [1, 2, 3, 4]]
外部修改 [10, 20, 30, 40, [1, 2, 3, 4]]

、參數有4種
1.必要參數
#可寫函數說明
def printme( str ):
"打印任何傳入的字符串"
print (str)
return #調用printme函數
printme()

這樣會返回錯誤

2.關鍵字參數
def keyword(name,age):
print('請輸入姓名',name)
print('請輸入年齡',age)
return
print(keyword(name='一個個',age=24))
print(keyword('一個個',24))

輸出結果:

請輸入姓名 一個個
請輸入年齡 24

 

3.默認參數

def keyword(name,age=60):
print('請輸入姓名',name)
print('請輸入年齡',age)
return
print(keyword('一個個'))
print(keyword('一個個',24))

可以省略,也可以修改
結果如下:

請輸入姓名 一個個
請輸入年齡 60
None
請輸入姓名 一個個
請輸入年齡 24
None

 

4.不定長參數

加一個* 是元祖,兩個星是字典

(1):元祖
def nottrue(arg,*args):
print('打印arg',arg)
print('打印args',args)
return
nottrue(60,70,80)
返回結果

打印arg 60
打印args (70, 80)

 

(2):字典
def nottrue(arg,**args):
print('打印arg',arg)
print('打印args',args)
return
nottrue(60,a=70,b='fanfan')

返回結果:

打印arg 60
打印args {'a': 70, 'b': 'fanfan'}

***聲明函數時,參數中星號 * 可以單獨出現,如果單獨出現星號 * 后的參數必須用關鍵字傳入***

>>> def f(a,b,*,c): ... return a+b+c ... >>> f(1,2,3) # 報錯 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: f() takes 2 positional arguments but 3 were given >>> f(1,2,c=3) # 正常 6 >>>


  




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM