基础 函数(2)

 
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 :可以接受多个关键字参数
    实参:按照位置传参,按照关键字传参

猜你喜欢

转载自www.cnblogs.com/zzl-p9/p/11267532.html
今日推荐