zoukankan      html  css  js  c++  java
  • Python之函数篇

    • 函数形参

    函数取得的参数是你提供给函数的值,这样函数就可以利用这些值 做 一些事情。这些参数就像变量一样,只不过它们的值是在我们调用函数的时候定义的,而非在函数本身内赋值。 参数在函数定义的圆括号对内指定,用逗号分割。当我们调用函数的时候,我们以同样的方式提供值。注意我们使用过的术语——函数中的参数名称为 形参 而你提供给函数调用的值称为实参 。

    例:使用形参

    #! /usr/bin/python
    
    def printMax(a,b):
      if a > b:
        print a , "is maximum"
      else:
        print b , "is maximum"
    
    printMax(3,4)

    结果:

    spdbmadeMacBook-Pro:python spdbma$ ./test.py 

    4 is maximum

    • 局部变量

    当你在函数定义内声明变量的时候,它们与函数外具有相同名称的其他变量没有任何关系,即变量名称对于函数来说是 局部 的。这称为变量的 作用域 。所有变量的作用域是它们被定义的块,从它们的名称被定义的那点开始。 它如何工作 在函数中,我们第一次使用x的 值 的时候,Python使用函数声明的形参的值。 接下来,我们把值2赋给x。x是函数的局部变量。所以,当我们在函数内改变x的值的时候,在主块中定义的x不受影响。 在最后一个print语句中,我们证明了主块中的x的值确实没有受到影响。

    #! /usr/bin/python
    
    def func(x):
      print 'x is ',x
      x = 2
      print 'changed local x to ',x
    
    x = 50
    func(x)
    print 'x is still',x

    结果:

    spdbmadeMacBook-Pro:python spdbma$ ./test.py 

    x is  50

    changed local x to  2

    x is still 50

    • 默认参数值

    对于一些函数,你可能希望它的一些参数是 可选 的,如果用户不想要为这些参数提供值的话,这些参数就使用默认值。这个功能借助于默认参数值完成。你可以在函数定义的形参名后加上赋值运算符(=)和默认值,从而给形参指定默认参数值。 

    #! /usr/bin/python
    
    def say(message,times=1):
      print message * times
    
    say('hello ')
    say ('hello ',5)

    结果

    spdbmadeMacBook-Pro:python spdbma$ ./test.py 

    hello 

    hello hello hello hello hello

    解析:名为say的函数用来打印一个字符串任意所需的次数。如果我们不提供一个值,那么默认地,字符串将只被打印一遍。我们通过给形参times指定默认参数值1来实现这一功能。 在第一次使用say的时候,我们只提供一个字符串,函数只打印一次字符串。在第二次使用say的时候,我们提供了字符串和参数5,表明我们想要 说 这个字符串消息5遍。 

    • 关键参数

    对于一些函数,你可能希望它的一些参数是 可选 的,如果用户不想要为这些参数提供值的话,这些参数就使用默认值。这个功能借助于默认参数值完成。你可以在函数定义的形参名后加上赋值运算符(=)和默认值,从而给形参指定默认参数值。

    #! /usr/bin/python
    
    def func(a, b=5, c=10):
      print 'a is ',a, ' and b is ',b, ' and c is ',c
    
    func (3,7)
    func (3,7,9)
    func (25,c = 24)
    func (c =50,a = 100)

    结果:

    spdbmadeMacBook-Pro:python spdbma$ ./test.py 

    a is  3  and b is  7  and c is  10

    a is  3  and b is  7  and c is  9

    a is  25  and b is  5  and c is  24

    a is  100  and b is  5  and c is  50

    解析:名为func的函数用来打印一个字符串任意所需的次数。如果我们不提供一个值,那么默认地,字符串将只被打印一遍。我们通过给形参times指定默认参数值1来实现这一功能。 在第一次使用say的时候,我们只提供一个字符串,函数只打印一次字符串。在第二次使用say的时候,我们提供了字符串和参数5,表明我们想要 说 这个字符串消息5遍。

    • return语句

    return语句用来从一个函数 返回 即跳出函数。我们也可选从函数 返回一个值 。

    #! /usr/bin/python
    
    def maximum(x , y):
      if x > y:
        return x
      else:
        return y
    
    print maximum(2,3)

    结果:

    spdbmadeMacBook-Pro:python spdbma$ ./test.py 

    3

    解析:maximum函数返回参数中的最大值,在这里是提供给函数的数。它使用简单的if..else语句来找出较大的值,然后 返回 那个值。

    • DocStrings

    Python有一个很奇妙的特性,称为 文档字符串 ,它通常被简称为 docstrings 。DocStrings是一个重要的工具,由于它帮助你的程序文档更加简单易懂,你应该尽量使用它。你甚至可以在程序运行的时候,从函数恢复文档字符串!

    #! /usr/bin/python
    
    def printMax (x,y):
      '''Prints the maximum of two numbers.
      The two values musb be integers.'''
    
      x = int (x)
      y = int (y)
    
      if x > y :
        print x , "is maximum"
      else:
        print y , "is maximum"
    
    printMax(3,5)
    #print printMax.__doc__

    结果:

     

    spdbmadeMacBook-Pro:python spdbma$ ./test.py 

    5 is maximum

    Prints the maximum of two numbers.

      The two values musb be integers.

    解析:

    在函数的第一个逻辑行的字符串是这个函数的 文档字符串 。注意,DocStrings也适用于模块和类,我们会在后面相应的章节学习它们。 文档字符串的惯例是一个多行字符串,它的首行以大写字母开始,句号结尾。第二行是空行,从第三行开始是详细的描述。 强烈建议 你在你的函数中使用文档字符串时遵循这个惯例。

     

     

    [完]

     

     

     

     

     

     

  • 相关阅读:
    一个神秘现象引发对beego框架的思考
    利用golang优雅的实现单实例
    Go语言及Beego框架环境搭建
    go语言正则表达式
    爬取珍爱网后用户信息展示
    Django之modelform简介
    Django之分页功能
    Django之ORM操作
    selenium模拟鼠标操作
    Django之模型注册
  • 原文地址:https://www.cnblogs.com/tdcqma/p/5266790.html
Copyright © 2011-2022 走看看