zoukankan      html  css  js  c++  java
  • python-day3 函数

    函数分为定义阶段和调用阶段

    def xxx(参数):

      '''注释'''

      表达式

    xxx()    -->调用

    常用的print()  就是python内部定义好的函数

    #########函数返回值###########

    return

    在函数中定义 return, 在调用的时候可以把返回值传递给一个变量,和print 不同

    print 在函数调用的时候就直接打印了,而传递给变量之后在打印就是None

    ==========参数分类=============

    1:位置参数

    def foo(x,y,z):

      print (x,y,z)

    foo(1,2,3)

    2:关键字参数

    def foo(x,y,z):

      print (x,y,z)

    foo(y=2,x=1,z=3)  -->在调用时体现

    # 1:关键字实参必须在位置实参后面
    # 2: 不能重复对一个形参数传值
    # foo(1,z=3,y=2) #正确
    # foo(x=1,2,z=3) #错误

    3:默认参数

    def foo(x,y,z=3):

      print (x,y,z)

      foo(1,y=2)

    或者 foo(1,2)

    
    

    #默认参数必须跟在非默认参数后

    #默认参数的值通常定义成不可变类型

    #默认参数在定义阶段就已经赋值了,而且只在定义阶段赋值一次

    # def register(sex='male',name,age): #在定义阶段就会报错

    4:可变长参数  *args(一个星)  会把溢出的按位置定义的实参都接收,以元组的形式赋值给args

    **kwargs(俩个星) **会把溢出的按关键字定义的实参都接收,以字典的形式赋值给kwargs

    def foo(x,y,*suibian):    -->*后面随便写,最好写为args

      print (x,y)

      print (suibian)

    foo(1,2,3,4,5,6,7,1)

    变长参数会把里面的内容放到 一个元祖中

    上面的调用结果 和这样写相同:

    foo(1,2*[3,4,5,6,7,1])  -->在调用的时候使用* 会把后面的内容分别放入suibian 中

    可以使用列表、集合、元祖、字典, 但是字典只会将key 提取出来

    foo(1,2,*{'a':3,'b':4,'c':5})
    如果想要 字典值:如下
    foo(1,2,*{'a':3,'b':4,'c':5}.values())


    如果想要k,v
    foo(1,2,*{'a':3,'b':4,'c':5}.items())
    处理结果:

    1 2
    (('c', 5), ('b', 4), ('a', 3))

    ##########**kwargs

    def foo(x,y,**kwargs):
    # (x,y)print )
    print (x,y)
    print (kwargs)
    foo(1,2,a=3,b=4,c=5)
    在传递的时候 **kwargs 的需要 以k=v 的形式传递 因为 **kwargs 是以字典形式显示

    5:命名关键字参数(python3新加)

  • 相关阅读:
    javascript 数字格式化
    spring-cloud blogs
    rabbitmq python
    centos7下 安装mysql
    hue install
    d3 document
    elastichq 离线安装
    elasticsearch agg
    elastichq auto connect
    Go Hello World!
  • 原文地址:https://www.cnblogs.com/onda/p/6861500.html
Copyright © 2011-2022 走看看