Python函数(一):函数的定义语法、调用、参数类型(必选参数、缺省参数

76 阅读3分钟

姓名:lzdf

身高:179

体重:65.43

'''




[]( )三、参数类型

=================================================================



[]( )必选参数

---------------------------------------------------------------



参数定义时有几个,在调用时就要给出相应个数的参数,数据类型也要相同



def sum(a,b): # a和b是必选参数,调用时必须都要赋值

print(a+b)

pass

sum(3,15)

'''

18

'''




[]( )缺省参数

---------------------------------------------------------------



函数定义时有部分参数或者全部参数有默认值  

**若同时存在无默认值参数和有默认参数,有默认值参数必须在无默认值参数后面**,否则会报错:non-default parameter follows default parameter



def sum1(a=34,b=40): # 形参有默认值

print(a+b)

pass

def sum2(a,b=32):

print(a+b)

pass

sum1() # 调用时可以不加参数

sum1(1)

sum1(5,23)

sum2(1)

sum2(5,23)

'''

74

41

28

33

28

'''




[]( )可选参数

---------------------------------------------------------------



参数的个数不确定,会将输入的函数存在一个元组中,若用元组作为参数调用时必须在元组名前加 \*。



语法



def 函数名(*参数名):

代码块

...

pass

tuple1 = (3,5,2,7)

def getComputer(*t): # *定义可选参数,元组类型,参数个数可变

print(t)

res = 0

for item in t:

    res += item

    pass

print('sum=%d'% res)

pass

getComputer(1,2)

getComputer(1,3,5)

getComputer(1,3,5,3,5,2,4)

getComputer(*tuple1)

getComputer(tuple1) 错误调用方法

'''

(1, 2)

sum=3

(1, 3, 5)

sum=9

(1, 3, 5, 3, 5, 2, 4)

sum=23

(3, 5, 2, 7)

sum=17

'''




[]( )关键字可选参数

------------------------------------------------------------------



参数个数不确定,有key和value对应,参数组成一个字典,若将字典作为参数调用,需要在字典名前加 \*\* 。



语法



def 函数名(**参数名):

代码块

...

pass



示例:



dict1 = {'name':'lzjs','age':22}

def keyFunction(**kwargs):

print(kwargs)

pass

keyFunction(**dict1)

keyFunction(dict1) 错误调用方法

keyFunction(name='fgd',age=34)

'''

{'name': 'lzjs', 'age': 22}

{'name': 'fgd', 'age': 34}

'''




[]( )混合参数类型

-----------------------------------------------------------------



def Complex1(a,*args): # 必选参数和可选函数

print(a+args[2])

pass

Complex1(3,4,6,7)

def Complex2(*args,**kwargs): # 可选参数必须放在关键字可选参数之前

print(args)

print(kwargs)

pass

Complex2(1,2,3,4,5)

Complex2(name='jds',age=23,weight=34.63)

Complex2(1,2,3,4,5,name='jds',age=23,weight=34.63)

'''

10

(1, 2, 3, 4, 5)

{}

()

{'name': 'jds', 'age': 23, 'weight': 34.63}

(1, 2, 3, 4, 5)

{'name': 'jds', 'age': 23, 'weight': 34.63}

'''




[]( )四、return返回值

======================================================================



函数可以通过return返回数据或对象



def sum(a,b):

return a+b

pass

print(sum(4,5))

res = sum(2,45)

print(res)

'''

9

47

'''




返回序列类型的数据,元组的返回有两种格式



def returnTuple():

return 2,4,3 # 或者是return (2,4,3)

def returnList():

return [223,44,323]

def returnDict():

return {'name':'jjsf','age':23}

print(returnTuple())

print(returnList())

print(returnDict())

'''

(2, 4, 3)

[223, 44, 323]

{'name': 'jjsf', 'age': 23}

'''




[]( )五、函数嵌套

=================================================================



函数嵌套即在一个函数代码块中调用另一个函数  

语法



def Function1():

pass

def Function2():

Function1()

pass



示例:



给出一个元组数据并计算每相邻两个数的和并存入一个列表类型数据中

def sum(a,b):

return a+b

def sums(*args):

pos = 0

resList = []

leftIndex = 0

rightIndex = 1

for item in args:

    if pos == len(args)-1:

        break

    else:

        resList.append(sum(args[pos],args[pos+1]))

    pos += 1

    pass



for item in resList:

    print("第{}个数和第{}个数的和: {}".format(leftIndex,rightIndex,item))

    leftIndex += 1

    rightIndex += 1

    pass

print('计算完毕!')

return resList

print(sums(2,3,4,5,6))

'''

第0个数和第1个数的和: 5

第1个数和第2个数的和: 7

第2个数和第3个数的和: 9

第3个数和第4个数的和: 11

计算完毕!

[5, 7, 9, 11]

'''