自定义函数

一、.函数:

    如果检测一个元素的长度用len非常简单,也可以写个循环来做。

s = 'asd'
def my_len():
    i = 0
    for k in s:
        i += 1
    print(i)
my_len()

二、.返回值:

    如果print打印这个函数,结果返回None,如果想要有返回值的话就要用return i。

    在函数里遇到return直接退出函数。

      return返回值的3种情况: 遇到return直接退出函数

        没有返回值: 返回None

          1.不写return

          2.只写return 

          3.return None

        返回1个值:

          1.可以返回任何数据类型

          2.只要返回就可以接收到

          3.如果在一个程序中有多个return,那么只执行第一个return就退出函数

        返回多个值:

          1.用多个变量接收:有多少返回值就用多少变量接收

          2.用一个变量接收:得到的是一个元祖

三、传参函数

    还是打印元素长度,但是元素不固定,可以自己输入就需要用到传参了。    

def func(s):        #行参
    i = 0
    for j in s:
        i += 1
    return i
print(func('asdf'))    #实参

    通过s传入参数。

      参数:

        没有参数:定义函数和调用函数时括号里为空。

        有一个参数:传什么就是什么

        有多个参数:位置参数

    

      参数分类:

        行参:

          顺序:位置参数、*args、默认参数、**kwargs

          位置参数:直接定义参数

          默认参数(关键字参数):参数名 = ‘默认的值’  #如果实参里也定义了,实参优先

          动态参数:可以接受任意多个参数

            #多个位置参数:*args  接收按照位置传参的值,组成一个元祖。

            #多个默认参数:**kwargs  接收按照默认传参的值,组成一个字典。

        实参:

          按照位置传参:位置参数需要几个就传几个值,*args无限传。

          按照关键字传参:如果行参有默认参数可以不传值,传了的按照实参的值运行,有**kwargs可以无限传。

      位置参数

def func(x,y):
    if x > y:
        print(x)
    else:
        print(y)
func(3,2)

      默认参数

def func(x=1,y=4):
    if x > y:
        print(x)
    else:
        print(y)
func()

      动态传参

def func1(*args):
    print(args)
func1(1,2,3)

def func2(**kwargs):
    print(kwargs)
func2(a = 1,b = 2,c = 3)

      动态参数另一种传参方式:传入列表或字典。

def func1(*args):
    print(args)
func1(1,2,3)
l = [1,2,3]
func1(*l)

def func2(**kwargs):
    print(kwargs)
func2(a = 1,b = 2,c = 3)
d = {'a':1,'b':2,'c':3}
func2(**d)

四、函数注释:   

    def func():
      '''
      这个函数实现了什么功能
      参数1:
      参数2:
      :return:
      '''

      

  

原文地址:https://www.cnblogs.com/tsboy/p/8118653.html