• Python_函数


    #函数
    #概念:函数就是程序封装的一段代码,需要的时候进行调用
    #def函数名(参数) 后面跟一个冒号 :
    # def sundata(a,b):#a,b为形式参数,简称形参
    # a+b#函数内部的语句,必须有缩进,一般是4个空格,也可以不是4个空格,只要有空格就行
    # sundata(3,4)实际参数
    # print(sundata(3,4))#函数的返回值用return表示,如果一个函数没有return语句,或者return后面没有语句,函数返回值为None
    # def sundata(a,b):
    # return a+b
    # print(sundata(3,4))

    #函数可以有多个return,求绝对值
    # def abs(num):
    # if num>=0:
    # return num
    # else:
    # return -num
    #
    # print(abs(-2))
    #不是分支语句也可以有多个return,但是只有第一个可以执行,后面的语句称为不可达语句
    # def sundata(a,b):
    # return a+b
    # return a-b#不可达语句,不会被执行
    # return a*b#不可达语句,不会被执行
    # print(sundata(3,4))
    # def sumdata(a,b):
    # # return a,b#return可以返回多个值,多个值以元祖形式返回(3, 4)
    # # print(sumdata(3,4))

    #参数的默认值和缺省值
    # def sumdata(a=2,b=3):
    # return a+b
    # print(sumdata())#用户不传入参数时,,使用默认值
    # print(sumdata(1))#只写第一个参数,后面的参数使用默认值
    # print(sumdata(4,5))#优先使用用户传入的参数
    # print(sumdata(b=4,a=6))#使用指定参数的时候,参数位置可以随意
    # print(sumdata(a=6,4))#会报错,必须保持队列,SyntaxError: positional argument follows keyword argument
    # print(sumdata(4,b=6))
    #对于普通参数而言,当没有默认值时,传入的参数必须一致,不能多也不能少
    # print(sumdata(1,2,3))#有默认值时,可以少,不能多TypeError: sumdata() takes from 0 to 2 positional arguments but 3 were given

    #对于可变参数*args,代表0到若干个参数
    # def sumdata(a,*args):
    # return a,args#args以元祖形式返回
    # return *args#报错,SyntaxError: invalid syntax
    # return (*args)#也报错
    # return (a,*args)#Python3.6版本不支持,需要加括号
    # print(sumdata(1,2,3,4))#(1, (2, 3))

    #关键字参数**kwargs
    def sumdata(a,*args,**kwargs):
    # return a,**kwargs#SyntaxError: invalid syntax
    # return a,kwargs
    # return a,args,kwargs
    # return a, *args, kwargs
    return (a,*args,kwargs)#(1, 2, 5, 6, {'A': 'apple'}),*args解包元素
    # print(sumdata(1,2,3,m="apple"))#(1, {'m': 'apple'})
    print(sumdata(1,2,5,6,A="apple"))#(1, (2, 5, 6), {'A': 'apple'}),注意书写顺序,普通参数>可变参数>关键字参数
    print(sumdata(1,2,3,4,aa=10,bb=20,cc=30))#(1, 2, 3, 4, {'aa': 10, 'bb': 20, 'cc': 30})
  • 相关阅读:
    K近邻 Python实现 机器学习实战(Machine Learning in Action)
    sklearn-SVC实现与类参数
    从核函数到SVM原理--sklearn-SVM实现
    基于scikit-learn包实现机器学习之KNN(K近邻)-完整示例
    java集合框架
    面向对象第一周心得体会
    java面试总结
    Aaa
    测试
    在Java中执行Tomcat中startup.bat
  • 原文地址:https://www.cnblogs.com/xiehuangzhijia/p/13775639.html
Copyright © 2020-2023  润新知