Python基础(四)函数

python基础(四)

1、初始函数

1.1、介绍

在编写程序的过程中,有某一功能代码块出现多次,但是为了提高编写的效率以及代码的重用,所以把具有独立功能的代码块组织为一个小模块,这就是函数。

函数其实就是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。

1.2、定义函数

# 用 [] 括起来的为可选择部分,即可以使用,也可以省略
def 函数名([参数列表]):
    代码块
    [return [返回值]]

1.3、函数调用

函数调用:本质就是执行函数中的代码块。(先定义,后调用)

# 用 [] 括起来的为可选择部分,即可以使用,也可以省略
[返回值] = 函数名([形参值])

1.4、例子

# 无参函数定义
def sayHello():
    '''
    函数说明
    :return:
    '''
    # 函数代码块
    print('hello word')
    print('hello python')
    pass


# 函数调用
sayHello();
sayHello();


# 输出结果
# hello word
# hello python
# hello word
# hello python


# 带参函数定义
def saynameHello(name, age):
    '''
    函数说明
    :return:
    '''
    # 函数代码块
    print('%s say hello word %d' % (name, age))
    print('%s say hello python' % (name))
    pass


saynameHello('张三', 18)
saynameHello('李四', 28)
# 输出
# 张三 say hello word 18
# 张三 say hello python
# 李四 say hello word 28
# 李四 say hello python

2、函数参数

2.1、参数作用

在函数实现或完成某个功能时,为实现该功能而需要的外部数据,而通过定义的参数,实现数据的传递。

简单来说,

函数:实现某一功能

参数:给函数提供所需的数据

2.2、参数分类

  • 必选参数

    • 在调用时必须进行赋值操作的

    • def sun(a, b):
          sum = a + b
          return sum
      
      
      # 函数调用 在调用时必选参数 是必选进行赋值的
      print(sun(2, 3)) # 5
      
  • 可变参数(不定长参数)

    • 可变参数 当参数的个数不确定时使用

    • 可变参数是一个元组类型

    • # 可变参数 当参数的个数不确定时使用
      def sum(a, *args):
          print(args)  # (2, 3, 4)
          sum = a
          for i in args:
              sum += i
          return sum
      
      
      print(sum(1, 2, 3, 4))  # 10
      
  • 默认参数(缺省参数)

    • 缺省参数 在函数定义时进行赋值,即在初始调用时就拥有了一个默认值

    • 在调用函数时如果对有缺省值的参数未进行赋值,就会使用定义函数时的缺省值,反之使用传输的实参值

    • 缺省参数 始终存在于参数列表的尾部,否则无法使用缺省值

    • # 缺省参数 在函数定义时进行赋值,即在初始调用时就拥有了一个默认值
      # 在调用函数时如果对有缺省值的参数未进行赋值,就会使用定义函数时的缺省值,反之使用传输的实参值
      # 缺省参数 始终存在于参数列表的尾部,否则无法使用缺省值。
      def sun(a, b=10):
          sum = a + b
          return sum
      
      
      # 函数调用 在调用时如果对有缺省值的参数未进行赋值,就会使用定义函数时的缺省值,反之使用传输的实参值
      print(sun(2))  # 12
      print(sun(2, 3))  # 5
      
  • 关键字参数

    • 关键字可变参数 在函数体内 参数关键字参数是一个字典类型

    • 如果有可变参数需要在可变参数后

    • # 关键字可变参数 使用 **进行定义
      # 在函数体内 参数关键字是一个字典类型
      def keyFunc(**kwargs):
          print(kwargs)
          pass
      
      
      # 调用
      dictA = {'name': 'li', 'age': 12}
      keyFunc(**dictA)  # {'name': 'li', 'age': 12}
      keyFunc(name='wang', age=18)  # {'name': 'wang', 'age': 18}
      

各类型的参数可以根据需求搭配使用

2.3、形参与实参

通常情况下,定义函数时都会选择有参数的函数形式,函数参数的作用是传递数据给函数,令其对接收的数据做具体的操作处理。

在使用函数时,经常会用到形式参数(简称“形参”)和实际参数(简称“实参”),二者都叫参数,之间的区别是:

  • 形式参数:在定义函数时,函数名后面括号中的参数就是形式参数,只是意义上的一种参数,在定义时不占内存地址,例如:

    #定义函数时,这里的函数参数 obj 就是形式参数
    def demo(obj):
        print(obj)
    
  • 实际参数:在调用函数时,函数名后面括号中的参数称为实际参数,也就是函数的调用者给函数的参数,是占用内存地址的。例如:

    a = "python"
    #调用已经定义好的 demo 函数,此时传入的函数参数 a 就是实际参数
    demo(a)
    

3、函数返回值

3.1、返回值

概念:函数执行完成后会返回一个执行的结果,如果在函数内部有return就可以返回实际的值,否则返回None。

返回值类型:可以是任意的数据类型,最终的类型取决于return 返回的数据类型。

注意:

在一个函数体内可以出现多次return关键字,但是在函数执行过程中只能执行一次return,执行return后会退出函数return后的语句不会继续执行。

例子:

def mysum(a, b):
    sumnum = a + b
    return sumnum  # 返回计算对象


# 接收返回值
fh = mysum(2, 3)
print(fh)  # 5

4、函数嵌套

Python中函数支持嵌套调用,即在一个函数内部调用另外一个函数。

def fun1():
    print("---fun1 start---")
    print("---fun1 ing---")
    print("---fun1 end---")
    pass


def fun2():
    print("---fun2 start---")
    print("---fun2 ing---")
    fun1()
    print("---fun2 end---")
    pass


fun2()
# ---fun2 start---
# ---fun2 ing---
# ---fun1 start---
# ---fun1 ing---
# ---fun1 end---
# ---fun2 end---

5、小结

  • 函数基础
  • 函数参数
  • 函数返回值
  • 函数嵌套
posted @ 2022-05-07 14:12  三途河畔人  阅读(75)  评论(0)    收藏  举报