zoukankan      html  css  js  c++  java
  • python学习9 函数的基础知识

    1.函数的定义

      def  func():

    2.函数的调用

      func()

    3.函数的返回值

    #1.没有返回值
    #     (1)不写return
    #      (2)只写return后面的代码不在继续执行,返回空,代表结束一个函数,跳到整个函数外面
    #                                                     break 只是跳出函数内的循环内容
    #     (3)return None  结束   这个不常用
    # 2.返回一个值
    #     (1) 可以返回任何数据类型
    #     (2)只要返回了,就可以接收了
    #     (3)如果一个程序有多个return 只返回一个
    # 3.返回多个值
    #     多个返回值用多个变量接收,有多少返回值,就用多少变量接收
    #     用一个变量接收,返回元组
    # def func():
    #     l = ['金老板','二哥']
    #     for i in l:
    #         if i == '金老板':
    #             return None
    #     print('==========')
    # ret = func()
    # print(ret)
    #
    #
    #
    # def func():
    #     #return [1,2,3,4]
    #     return False
    # print(func())
    #
    # def func2():
    #     return 1,2
    # print(func2())
    #
    # r1,r2 = func2()
    # print(r1,r2)

    3.函数的参数    

    函数定义和调用的时候

    位置参数,*args,默认参数,**kwargs
    1.没有参数,定义和调用函数时,括号内都不写内容
    2.1个参数,传什么就是什么
    3.多个参数
    站在实参角度长
    位置参数
    按照关键字传
    位置传和关键字传可以混用,必须先按照位置传参,然后按照关键字
    ret = my_sum(a = 5,2)是不对的
    不能给同一个变量传多个值
    站在形参的角度上
    位置参数:必须传,且有几个参数传几个,多传和少传都报错,
    4.动态参数
    *args接收按照位置传参的值,组织成一个元组
    **args接收按照关键字传参的值,组织成一个字典
    可以接收任意多个参数
    *args 加*变成动态参数,参数名之前加*,习惯参数名用args
    按照关键字传不行
    如果有多个关键字参数需要调用,虚参用**kwargs
    5.顺序 必须先定义位置参数,然后定义args,最后定义位置参数
    参数名之前加**,习惯参数名kwargs
    # def my_sum(a,b):
    #     res = a + b
    #     return resd
    # ret = my_sum(1,2)
    # print(ret)
    # ret = my_sum( 3,b = 6)
    # print(ret)
    # def classmate(name,sex = '男'):  #默认参数,如果不传就用默认参数,如果传了,就传递传的值+
    #                                     #只有调用函数的时候
    #                                         #按照位置传: 直接写参数的值
    #                                         #按照关键字: 关键字 = 值
    #                                     #定义函数的时候:
    #                                         #位置参数:直接定义参数
    #                                         #默认参数:关键字参数: 参数名 = ’默认值'-0
    #                                     #定义函数的时候,必须先定义位置参数,后定义默认参数
    #     print('{0}同学是{1},我爱{0}'.format(name,sex))
    # classmate('二哥')
    # classmate('苍','女')
    
    
    
    #   *args  动态参数
    def sum(*args):
        n = 0
        for i in args:
            n += i
        print(n)
    sum(1,2)
    sum(1,2,3)
    sum(1,2,3,4)
    
    
    #########
    def func(**kwargs):
        print(kwargs)
    
    func(a = 1,b = 2,c = 4)
    
    def func(*args,default = 2,**kwargs):   #先位置参数,后关键字参数,即args必须在kwargs之前
        print(args,kwargs)
    func(1,2,3,4,5,default = 1, va = 'asdkfj;als',b = 'dsfjl')
    View Code

      

    动态参数的另外一种传参方式
    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)
    View Code
    函数的注释
    def func():
        '''
        这个函数实现了什么功能
        参数1:
        参数2:
        :return:是字符串或者列表的长度
        '''
    
    
    #默认参数的陷阱问题
    View Code
  • 相关阅读:
    泛式之争
    测试的本质
    动态语言与静态语言
    对象之间的关系
    关于“重复”的一段交流
    装饰器与子类化
    类的设计质量
    抽象跟难
    Unity经典游戏编程之:球球大作战
    关于Unity 中对UGUI制作任务系统的编程
  • 原文地址:https://www.cnblogs.com/benbenxiaofeifei/p/9362583.html
Copyright © 2011-2022 走看看