zoukankan      html  css  js  c++  java
  • 13.函数

    python函数

    一、python函数和shell中的函数性质一样。语法略有不同。

    函数就是可以将一些命令封装起来,然后命名,我们可以通过调用函数名称来使用函数中的内容。

    函数的优点:

       1.减少代码的重复性。

       2.便捷。

       3.可扩展性强。

    格式:

       def 函数名():

          执行命令

     

    例子:

       #!/usr/bin/env python

       def abc():

          print ('hello world')

       abc()

     

     

    二、return

    特点:

       1.返回一个值

       2.执行了return后续的命令就不在执行 。

     

    例子:

    #!/usr/bin/env python

    def abc():

       print ('hello world')

       return 'abc'

     

    x = abc()

     

     

    当我们将abc()函数赋值给一个变量x。abc函数依然会执行。

    但是abc()函数不会将其内容赋值给x。x的值是空。只有我们用return返回一个值。x才会有值。

     

    三、传参数

    第一种传参数:位置参数调用

    #!/usr/local/bin/python

    def a(x,x1):

       print (x,x1)

    a(1,2)

    a(2,1)

     

    [root@a ~]# python a.py

    1 2

    2 1

     

    解释:x,x1 我们叫做形参。

         1,2这些值我们称为实参。

       我们传值的时候,形参和实参的位置是对应的。实参的数量不能多也不能少于形参。否则会报错。

     

     

    第二种传参数:关键字传参数。

     

     

    #!/usr/local/bin/python

    def a(x,x1):

       print (x,x1)

    a(x1=2,x=1)

      

    我们使用这种方法传参的时候,与形参的顺序无关。

     

    第三种:当传参数时,关键字传参和位置传参同时有的时候。

    遵循原则就是:

          所有位置参数必须在关键字参数前边。

         

     

    1.例子1:

    #!/usr/local/bin/python

    def a(x,y):

       print (x,y)

    a(1,y=2)

         

    这个例子结果是正确的。

    满足了位置参数在关键字参数前边。也是按照实参和形参的位置对应的规则。

     

    2.错误例子:

    def a(x,y):

       print (x,y)

    a(y=2,1)

     

    这样执行就报错了。虽然这样我们分别给x和y赋值了,但是位置参数没有在关键字参数前边。

     

    3.错误例子2

       def a(x,y):

          print (x,y)

       a(2,x=1)

     

    这样也会报错。虽然位置参数在关键字参数前边。但是2赋值给了x。后边又定义了一下x。所以报错。

     

    四、默认参数

       #!/usr/bin/env python

       def a(x,y=2):

           print (x,y)

       a(1)

    [root@a ~]# python a.py

    1 2

     

    我们在形参处直接给y赋值。如果调用函数时,没有赋值。y就是默认值2.如果赋值了y就是新赋值的数值了。

    def a(x,y=2):

       print (x,y)

    a(1,3)

    [root@a ~]# python a.py

    1 3

     

    作用:

       比如连接数据库的函数,如果输入了端口或是密码。我们就接受,否则按照默认值执行。

     

     

     

    五、参数组

     

       前边提过,传参数的时候,实参的个数不能多于或少于实参的个数。或者说实参的个数不确定的时候。这时候我们就用到了参数组。

     

    例子1:

     

       def abc(*args):  #定义了参数组。*代表args接受的参数个数不固定。

          print (args)

       abc(1,2,3,4,5)     #传递了很多实参,个数不固定。

      

       [root@a ~]# python a.py

       (1, 2, 3, 4, 5)

      

    例子2:

     

    2.接收字典

     

    def a(**kwargs):

       print (kwargs)

    a(x=1,y=2,z=3)

    a(**{'name':'xiaoming','age':22})

     

    a(x=1,y=2,z=3)

    这种方式我们通过关键字传参数。**kwargs会自动将传递过来的"关键字"参数转变成字典。

     

    a(**{'name':'xiaoming','age':22})

    这种方式字典前边必须带**,否则会报错。

  • 相关阅读:
    C#,asp.net,命名空间名,类名,方法名的获得
    asp.net引用用户控件
    SQL数据是否存在(是否有数据)判断,表,存储过程是否存在
    asp:Button 事件,点击事件 html Button runat="sever"
    CSS图片最大大小限制
    asp.net 路径
    Js实现网站的重定向,Js转向网址,Js跳转
    ViewState 页面状态保留
    vs 附加到进程
    sql XML处理,sp_xml_preparedocument,openxml
  • 原文地址:https://www.cnblogs.com/pangbing/p/9125844.html
Copyright © 2011-2022 走看看