zoukankan      html  css  js  c++  java
  • 008_定义函数

    1,定义函数(定义任何函数其前面要加def)

    s = '定义函数'
    def my_len():       #定义函数
        i = 0
        for k in s:
            i += 1
        print(i)
    my_len()    #函数调用   #>>>4
    
    2,关于函数中的return
    • 函数没有返回时,有两种情况:
                1,函数中没有return
    2,函数中有return但是没有加返回值
    • return的作用: return是结束此函数,并返回其要返回的值;
                当程序运行到return时就会结束,不在继续运行这个函数
    def func():
        l = [3,5]
        for i in l:
            print(i)
            if i == 3:
                return      #函数到这后结束,不会执行下面的,如果换成break,
        print('****')       #只是结束了for的循环,还会执行函数,因此会执行下面的语句
    
    ret = func()            #>>>3
    print(ret)              #>>>None
    
    3,返回值的3种情况
    1,没有返回值——>返回None
    1.1,不写return
    1.2,只写return——>结束一个函数的继续
    1.3,return None——>不常用

    2,返回一个值
    2.1,可以返回任何数据类型
    2.2,只要返回就可以接收
    2.3,如果在一个程序中有多个return,那么只执行第一个

    3,返回多个值
    3.1,用多个变量接收:有多少返回值就用多少变量接收
    3.2,用一个变量接收:得到的是一个元组
    4,参数
      4.1,参数分类
    4.1.1,没有参数
    1,定义函数和调用函数时括号里都不写内容
    4.1.2,有一个参数
    2,传什么就是什么
    4.1.3,有多个参数
    3,位置参数

      4.2,站在实参的角度上:
         4.2.1,按位置传参
         4.2.2,按关键字传参
         4.2.3,混着用可以:但是,必须先按照位置传参,在按关键字传参,不能给同一变量传多个值
      4.3,站在形参的角度上
    4.3.1,位置参数:必须传,且有几个参数就传几个值
    4.3.2,默认参数:可以不传,如果不传就是用默认的参数,如果传了就用穿的
      4.4,调用函数的时候
    4.4.1,按位置传: 直接写参数的值
    4.4.2,按关键字: 关键字 = 值
      4.5,定义函数的时候:
    4.5.1,位置参数:直接定义参数
    4.5.2,默认参数(关键字参数):参数名 = ‘默认的值’
    4.5.3,动态参数:可以接受任意多个参数,参数名前加*
    4.5.4,定义的顺序:必须先定义位置参数,后定义默认参数
    5,动态参数 

       5.1,只接收位置参数的动态参数,

          加*的为位置参数的动态参数,动态参数可接收多个元素,并将接收的元素以元组的形式存放

    def sum(*args):
        n = 0
        for i in args:      # 因为*args为动态参数,args元组方式处理
            n +=i
        return n
    
    print(sum(1,2))
    print(sum(1,2,3))
    
      5.2,只接收关键字参数的动态参数
          加**的参数为关键字参数的动态参数,动态参数可以接收多个元素,并将接收的元素以字典的形存放
    def func(**kwargs):
        print(kwargs)
    
    func(a = 1,b = 2,c = 3)
    func(a = 1,b = 2)
    
      5.3,动态参数的另一种传参方式
    def func(*args):    #站在形参的角度上,给变量加上*,就是组合所有传来的值
        print(args)
    
    func(1,2,3)     #>>>(1, 2, 3)
    l = [1,2,3]
    func(*l)        #>>>(1, 2, 3)  #站在形参的角度上,给一个序列加上*,就是将这个序列按顺序分解
    
    6,函数的注释
    def func():
        '''
        这个函数实现了什么功能
        参数1:
        参数2:
        :return: 返回的什么
        '''
        pass
    

      



  • 相关阅读:
    移植spdylay到libcurl
    用到的C++标准库
    libcurl底层调用逻辑
    socket编程
    linux的一些机制Signal, Fork,
    openssl 编程
    对称加密,非对称加密
    ajax提交整个form表单
    一道基础的for语句js编译过程
    怎样将浏览器一句话变为文本编辑器
  • 原文地址:https://www.cnblogs.com/eternity-twinkle/p/10500197.html
Copyright © 2011-2022 走看看