#函数
# #长度1 len
# s='你好智旻'
# print(len(s))
#
#
# #长度2
# i=0
# for k in s:
# i +=1
# print(i)
#命名函数
'''
s='包头市大宝贝'
#len(s)
def my_len():#命名函数
i = 0
for k in s:
i += 1
print(i)
my_len()#运行函数,没有返回值
'''
#返回值
'''
a='觉得卡死了'
#len(s)
def my_len():#命名函数
i = 0
for k in a:
i += 1
return i#返回值
length1=my_len()#运行函数
s='包头市大宝贝'
def my_len():#命名函数
i = 0
for k in s:
i += 1
return i#返回值
length2=my_len()
print(length1+length2)
'''
#返回值的分类
'''
#没有返回值
#不写return i
#只写return,不写i ,又表示结束一个函数
#return none--不常用
#有一个返回值
def func():
return 1
return 1 #这个不执行
print(func())
#有多个返回值
#多个变量接收多个返回值
def func():
return 1,2
r1,r2=func()
print(r1,r2)
#一个变量接收一个返回值,返回元组
def func():
return 1,2,3
r1=func()
print(r1)
'''
#参数
# def my_len(a):#自定义参数,接收参数,形式参数
# i = 0
# for k in a:
# i += 1
# return i#返回值
# length1=my_len('觉得卡死了')#传递参数
# length1=my_len([1,2,3,4])#传递参数,实际参数
# print(length1)
#
# def my_len(a):#自定义参数,接收参数,形式参数
# for k in a:
# print(k)
#
# def my_len1(a): # 自定义参数,接收参数,形式参数
# for k in a:
# print(k)
# my_len([1,2,3,5])
# my_len1([1,2,3,5])
# def my_len(a):#3
# for k in a:#4
# print(k)#5
#
# def my_len1(a): # 1
# my_len(a)#2
# for k in a:#6
# print(k)#7
# my_len1([1,2,3,5])
# def f1(a,b): #位置传参
# res=a+b
# return res
# print(f1(1,2))
#
# def f1(a,b): # 关键字传参
# res=a+b
# return res
# print(f1(a=1,b=2))
#参数
'''
#位置参数在前 默认参数(即关键字传参)在后
def classmate(sexy,name='人间芭比'):
print("%s,%s"%(name,sexy))
classmate(name='兄嘚',sexy='男')
classmate(sexy='女')
# classmate('女') #位置参数必须在动态参数之前定义
classmate(sexy='女',name='小姐姐')#关键字传参,可以调换位置
classmate('女','小姐姐')#位置传参不可以
#动态参数 args必须在kwargs之前
#*args 接受位置参数,组成元组
def sum(*args):
n=0
for i in args:
n+=i
return n
sum(1,2)
print(sum(1,2))
print(sum(1,2,3,4))
#args 默认参数
def sum(*args,l=[]):#args无法进行关键字传参
print(args,l)
sum(1,2,'saK',l=[2,'jk'])
#kwargs 关键字传参,组成一个字典
def func(**kwargs):
print(kwargs)
func(a=1,b='hk',c=["jka",'js'])
#顺序:位置参数 args 默认参数 kwargs
def func(*args,de=1,**kwargs):
print(de,args,kwargs)
func(1,2,3,'sd',de=5,a='sj',c=2)
'''
#*args另一种方法
def func(*args):
print(args)
func(1,2,3,4,5)
l=[1,2,3,4,5,6]
func(*l)#*l给序列加*就是将序列按顺序打散
#**kwargs另一种方法
def func(**kwargs):
print(kwargs)
func(de=5,a='sj',c=2)
e={"a":1,'b':'hk','c':"jka"}
func(**e)