Python_函数

#函数
#概念:函数就是程序封装的一段代码,需要的时候进行调用
#def函数名(参数) 后面跟一个冒号 :
# def sundata(a,b):#a,b为形式参数,简称形参
# a+b#函数内部的语句,必须有缩进,一般是4个空格,也可以不是4个空格,只要有空格就行
# sundata(3,4)实际参数
# print(sundata(3,4))#函数的返回值用return表示,如果一个函数没有return语句,或者return后面没有语句,函数返回值为None
# def sundata(a,b):
# return a+b
# print(sundata(3,4))

#函数可以有多个return,求绝对值
# def abs(num):
# if num>=0:
# return num
# else:
# return -num
#
# print(abs(-2))
#不是分支语句也可以有多个return,但是只有第一个可以执行,后面的语句称为不可达语句
# def sundata(a,b):
# return a+b
# return a-b#不可达语句,不会被执行
# return a*b#不可达语句,不会被执行
# print(sundata(3,4))
# def sumdata(a,b):
# # return a,b#return可以返回多个值,多个值以元祖形式返回(3, 4)
# # print(sumdata(3,4))

#参数的默认值和缺省值
# def sumdata(a=2,b=3):
# return a+b
# print(sumdata())#用户不传入参数时,,使用默认值
# print(sumdata(1))#只写第一个参数,后面的参数使用默认值
# print(sumdata(4,5))#优先使用用户传入的参数
# print(sumdata(b=4,a=6))#使用指定参数的时候,参数位置可以随意
# print(sumdata(a=6,4))#会报错,必须保持队列,SyntaxError: positional argument follows keyword argument
# print(sumdata(4,b=6))
#对于普通参数而言,当没有默认值时,传入的参数必须一致,不能多也不能少
# print(sumdata(1,2,3))#有默认值时,可以少,不能多TypeError: sumdata() takes from 0 to 2 positional arguments but 3 were given

#对于可变参数*args,代表0到若干个参数
# def sumdata(a,*args):
# return a,args#args以元祖形式返回
# return *args#报错,SyntaxError: invalid syntax
# return (*args)#也报错
# return (a,*args)#Python3.6版本不支持,需要加括号
# print(sumdata(1,2,3,4))#(1, (2, 3))

#关键字参数**kwargs
def sumdata(a,*args,**kwargs):
# return a,**kwargs#SyntaxError: invalid syntax
# return a,kwargs
# return a,args,kwargs
# return a, *args, kwargs
return (a,*args,kwargs)#(1, 2, 5, 6, {'A': 'apple'}),*args解包元素
# print(sumdata(1,2,3,m="apple"))#(1, {'m': 'apple'})
print(sumdata(1,2,5,6,A="apple"))#(1, (2, 5, 6), {'A': 'apple'}),注意书写顺序,普通参数>可变参数>关键字参数
print(sumdata(1,2,3,4,aa=10,bb=20,cc=30))#(1, 2, 3, 4, {'aa': 10, 'bb': 20, 'cc': 30})
原文地址:https://www.cnblogs.com/xiehuangzhijia/p/13775639.html