python3 函數的形參、實參、位置參數、默認參數、關鍵字參數以及函數的遞歸


python 版本 3.5

#Author by Andy
#_*_ coding:utf-8 _*_
def func(x,y=2):
print('我是形參%s'%x)
print('我是默認參y--->%s'%y)
func(1)
#1是實參,x為形參,y為默認參數
#若實參數目不固定
def func1(*args):
print(args)
func1([1,2.3,4,5])
#([1, 2.3, 4, 5],)
func1(*[1,2,3,4,5])
#(1, 2, 3, 4, 5)
#實參為字典 **kwargs把N個關鍵字參數轉化為字典輸出
def func2(**kwargs):
print(kwargs)
print(kwargs['name'])
print(kwargs['age'])
print(kwargs['salary'])
func2(name='Andy',age=20,salary=10000,job='doctor')

def func3(name,age=20,**kwargs):
print(name)
print(age)
print(kwargs)
func3('Andy')
#Andy
#{}
#默認參數賦值方式:1、位置參數賦值 2、關鍵字賦值
func3('Andy',salary=10000,age=21)
func3('Andy',21,salary=10000)
#*args接受N個位置參數,轉化成元組;
#**kwargs接收N個關鍵字參數,轉為字典
#位置參數必須放在關鍵字參數前面

# def func4(name,age=20,*args,**kwargs):
# print(name)
# print(age)
# print(args)
# print(kwargs)
# logger('test')
# func4('Andy',21,32,salary=10000,job='doctor')
# def logger(source):
# print('from %s'%source)
#局部變量(只在函數體內作用的變量)
def changename(name):
print('before change',name)
name='John'
age=23
print('after change',name)
name='Andy'
changename(name)
print(name)
# before change Andy
# after change John
# Andy
#全局變量(整個程序都可以用的變量,定義在函數體外)若修改全局變量,需在函數體內用global 重新定義變量 ***函數體內不要修改
# 全局變量,且函數體內不要定義全局變量
def func5():
global name
name='andy'
print(name)
func5()
print(name)
#全局變量(整個程序都可以用的變量,定義在函數體外)若修改全局變量,需在函數體內用global 重新定義變量 ***函數體內不要修改
# 全局變量,且函數體內不要定義全局變量
#列表、字典、集合、類作為全局變量時,函數體內可以修改
#字符串、數字作為全局變量時,函數體內無法修改
#函數的遞歸
def calc(n):
print(n)
if int(n/2) >0:
return calc(int(n/2))
print(n)
calc(10)


免責聲明!

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



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