当前位置 : 主页 > 编程语言 > python >

盘点Python定义函数基础知识

来源:互联网 收集:自由互联 发布时间:2023-07-29
一、定义函数 在Python中,定义一个函数要使用def语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回。 定义函数的格式
一、定义函数

在Python中,定义一个函数要使用def语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回。

定义函数的格式如下:

   def 函数名():
        代码
登录后复制

示例:

   # 定义一个函数,能够完成打印信息的功能
    def printInfo():
        print '------------------------------------'
        print 'Go语言进阶学习'
        print '------------------------------------'
登录后复制
  1. 定义带有参数的函数

示例如下:

  def add2num(a, b):
        c = a+b
        print c
登录后复制
  1. 调用带有参数的函数

以调用上面的add2num(a, b)函数为例:

def add2num(a, b):
    c = a + b
    print(c)




add2num(11, 22)# 调用带有参数的函数时,需要在小括号中,传递数据
登录后复制

运行结果:

盘点Python定义函数基础知识

  1. 调用函数时参数的顺序

>>> def test(a,b):
...     print(a,b)
... 
print(test(1, 2))
1 2
print(test(b=1, a=2))
2 1
>>> 
>>> print(test(b=1, 2))
  File "<stdin>", line 1
SyntaxError: positional argument follows keyword argument
登录后复制

盘点Python定义函数基础知识

二、调用函数

定义了函数之后,就相当于有了一个具有某些功能的代码,想要让这些代码能够执行,需要调用它

调用函数很简单的,通过 函数名() 即可完成调用。

例:

   # 定义完函数后,函数是不会自动执行的,需要调用它才可以
    printInfo()
登录后复制
三、函数返回多个值

函数可以返回多个值吗?答案是肯定的。

  1. 带有返回值的函数

想要在函数中把结果返回给调用者,需要在函数中使用return

如下示例:

 def add2num(a, b):
        c = a+b
        return c
登录后复制

或者

   def add2num(a, b):
        return a+b
登录后复制
  1. 保存函数的返回值

如果一个函数返回了一个数据,那么想要用这个数据,那么就需要保存

保存函数的返回值示例如下:

# 定义函数
def add2num(a, b):
    return a + b




# 调用函数,顺便保存函数的返回值
result = add2num(100, 98)


# 因为result已经保存了add2num的返回值,所以接下来就可以使用了
print(result)
登录后复制

运行结果:

盘点Python定义函数基础知识

四、my_abs和内置函数abs的差别
print(my_abs('A'))
登录后复制

盘点Python定义函数基础知识

当传入了不恰当的参数时,内置函数abs会检查出参数错误,而定义的my_abs没有参数检查,会导致if语句出错,出错信息和abs不一样。

修改一下my_abs的定义,数据类型检查可以用内置函数isinstance()实现:

def my_abs(x):   
  if not isinstance(x, (int, float)):     
    raise TypeError('bad operand type')    
    if x >= 0:      
      return x  
    else:      
      return -x
登录后复制

添加了参数检查后,如果传入错误的参数类型,函数就可以抛出一个错误:

my_abs('A')
登录后复制

盘点Python定义函数基础知识

五、总结

本文基于Python基础,介绍了函数定义。定义函数时,需要确定函数名和参数个数;如果有必要,可以先对参数的数据类型做检查;函数体内部可以用return随时返回函数结果。

网友评论