len
s = '京东家电节'
def my_len(): #自定义函数
i = 0
for k in s:
i +=1
print(i)
my_len() #函数调用
函数
定义了以后,可以在任何需要它的地方调用
没有返回长度,只是单纯打印
返回的重要性
a,b
len(a) #内置函数
len(b)
def my_len(): #自定义函数
i = 0
for k in s:
i += 1
print(i)
return i #返回值
length = my_len()
print(length)
len()
1,不能变,只能计算字符串的长度
2,只是输出了结果
#返回值的3种情况
没有返回值 -- 返回None
不写return
def func():
l = ['金老板','二哥']
for i in l:
print(i)
只写return:结束一个函数的继续
def func():
l = ['金老板', '二哥']
for i in l:
print(i)
return
print('二哥二哥二哥')
red = func()
print(ret)
return None -- 不常用
def func():
l = ['金老板', '二哥']
for i in l:
print(i)
if i=='金老板':
return
print('='*10)
返回一个值
可以返回任何数据类型
def func():
return [1,2,3]
print(func)
red = func()
print(ret)
只要返回就可以接收到
如果在一个程序中有多个人return,只执行第一个
返回多个值
用多个变量接收:有多少返回值就用多少变量接受
def func2():
return 1,2,
r1,r2, = frunc2()
print(r1,r2)
用一个变量接收:得到就是一个元祖
def func2():
return 1,2,3
r = func2()
print(r)
什么叫做参数
参说的语法
形参和实参的概念
def my_len(s): #自定义函数只需0个参数。接受参数,形式参数,形参
i = 0
for k in s:
i +=1
return i
s = '京东家电节'
ret = my_len(s) #传递参数:传参,实际参数,实参
ret = my_len([1,2,3,4,])
print(ret)
参数
没有参数
定义函数和调用函数时括号里都不写内容
有一个参数
传什么就是什么
有多个参数
位置参数
def my_sum(a,b):
res = a+b
return res
ret = my_sum(1,2)
print(ret)
站在实参角度上:
按照位置传参
按照关键字传参
混用可以:但是 必须先按照位置传参,再按照关键字传参着
不能给同一个变量传多个值
def my_sum(a,b):
print(a,b)
res = a+b
return res
ret = my_sum(1,b=2)
print(ret)
站在形参的角度上
位置参数:必须传,且有几个参数就传几个值
默认参数:可以不传,如果不传就是默认参数,如果传了就用传的
def classmate(name,sex='男'):
print('%s :%s'%(name,sex))
classmate('二哥')
classmate('小梦')
classmate('大梦')
classmate('郎哥','女')
只有调用函数的时候
按照位置传:直接写参数的值
按照关键字传:关键字 = 值
定义函数的时候
位置参数:直接定义参数
默认参数:关键字参数:参数名 = ‘默认的值’
动态参数:可以接受任意多个参数
参数名之前加*,习惯参数名args,
参数名之前加**,习惯参数名kwargs
顺序:位置参数,*args,默认参数,**kwargs
def sum(*args):
n = 0
for i in args:
n+=i
return n
print(sum(1,2))
print(sum(1,2,3))
print(sum(1,2,3,4))
def func(**kwargs):
print(kwargs)
func(a = 1,b = 2,c = 3,d = 4)
func(a = 1,b = 2,c = 3,)
func(a = 1,b = 2,)
动态参数有两种:
可以接受任意个参数
*args : 接受的是按照位置传参的值,组织成一个元祖
**kwargs : 接受的是按照关键字传参的值,组织成一个字典
args必须在kwargs之前
def func(*args,**kwargs):
print(args,kwargs)
func(1,2,3,4,a = 'aaaaa',b = 'ssssss')
动态参数的另一种传参方式
def func(*args): #站在形参的角度上,给变量加上*,就是组合所有传来的值。
print(args)
func(1,2,3,4,5)
l = [1,2,3,4,5]
func(*l) #站在实参的角度上:给一个序列加上*,就是将这个序列按照顺序打散
def func(**kwargs):
print(kwargs)
func(a=1,b=2)
d = {'a':1,'b':2}
func(**d)
函数的注释
def func():
'''
这个函数实现了什么功能
参数1
参数2
:return:是字符串或者列表的长度
# '''
pass
函数
1.函数的定义 def
2.函数的调用
3.函数的返回值 return
4函数的参数
形参:
位置参数:必须传
*args : 可以接受任意多个位置参数
默认参数 ; 可以不传
**kwargs :可以接受多个关键字参数
实参:按照位置传参,按照关键字传参