python-函数-函数定义与调用

1. 函数定义与调用

  • 函数

    ​ 是指一段可以直接被另一段程序或代码引用的程序或代码。 在编写代码时,常将一些常用的功能模块编写成函数,放在函数库中供公共使用,可 减少重复编写程序段和简化代码结构。

  • 函数语法

    def 函数名称(参数1, 参数2, ...):
    	<代码块>
    	return <表达式>
    
  • 示例:

    def hello():
    	print("Hello World!") 
    hello() # 调用函数
    
  • 函数参数

    • 函数基本使用

      def hello():
          return "hello world"
      
      print(hello())
      
    • 函数传参

      def hello(n):
          return f"hello {n}"
      
      s = hello(1)
      
      print(s)
      
    • 示例:求和函数

      def f(a, b):
      	return a + b
      
      print(f(1,2))      # 按参数位置赋值
      print(f(b=2,a=1)) # 按对应关系赋值
      
    • 示例:生成序列列表

      def seq(n):
      	result = [] 
        x=0
      	while x < n:
      		result.append(x)
      		x += 1 
        return result
      print(seq(9))
      
    • 参数默认值

      参数默认值: 预先给参数定义默认值,如果调用函数时没指定该值,则用默认值

      def f(a,b=2):             # b参数不传参,默认值是2
          return a + b
      
      print(f(1))      # 这里没有传b的参数,b默认传参2, 得到的结果是3
      
      print(f(1,3))    # 给b传参为3,1+3 得到的结果为4
      
    • 接收任意数量参数

      前面学习的是固定参数数量,当不知道有多少个参数时可以在参数前面加*与**,表示可接收任意多个参数。

      • *args 接收任意多个参数,并放到一个元组中,

      • **kwargs 接收一个键值,并存储为字典

      • 示例:

        • 示例1:传入多个参数,计算总和

          def func(*args):
              x = 0
              for i in args:
                  x += i
          
              return x
          print(func(1,2,3))
          
        • 示例2:传入多个键值,进行处理

          def func1(**kwargs):
              for k, v in kwargs.items():
                  print("名称:%s\t价格:%s" % (k, v))
          
          
          func1(主机=5000, 显示器=1000, 鼠标=60, 键盘=150)
          
  • 匿名函数

    • 匿名函数: 没有名字的函数,使用lambda关键字定义,一般仅用于单个表达式。

    • 示例:求和函数

      #!/usr/bin/env python
      # _*_ coding: utf-8 _*_
      # Author:shichao
      # File: .py
      
      
      # 普通变量实现
      s = lambda a,b: a+b
      print(s(1,2))
      
      
      # 匿名函数
      
      def func(a,b):
          return a + b
      

2. 案例

  • 案例1.函数的基本使用

    #!/usr/bin/env python
    # _*_ coding: utf-8 _*_
    # Author:shichao
    # File: .py
    
    
    # 基本使用
    def hello():
        return "hello world"
    
    print(hello())
    
    
    
    # 函数传参
    def hello(n):
        return f"hello {n}"
    
    s = hello(1)
    
    print(s)
    
  • 案例2. 求和函数

    #!/usr/bin/env python
    # _*_ coding: utf-8 _*_
    # Author:shichao
    # File: .py
    
    
    # 函数求和
    def number(a,b):
        return a+b
    
    n = number(3,6)
    print(n)
    
  • 案例3. 生成序列列表

    #!/usr/bin/env python
    # _*_ coding: utf-8 _*_
    # Author:shichao
    # File: .py
    
    # 生成序列列表
    def seq(n):
        result = []
        x = 0
        while x < n:
            result.append(x)
            x += 1
        return result
    
    print(seq(9))
    
  • 案例4. 参数默认值

    #!/usr/bin/env python
    # _*_ coding: utf-8 _*_
    # Author:shichao
    # File: .py
    
    def f(a,b=2):             # b参数不传参,默认值是2
        return a + b
    
    print(f(1))      # 这里没有传b的参数,b默认传参2, 得到的结果是3
    
    print(f(1,3))    # 给b传参为3,1+3 得到的结果为4
    
    
    
  • 案例5. 函数参数:接收任意数量参数

    • 案例1、传入多个参数,计算总和

      #!/usr/bin/env python
      # _*_ coding: utf-8 _*_
      # Author:shichao
      # File: .py
      
      
      # 使用*args
      def func(*args):
          x = 0
          for i in args:
              x += i
      
          return x
      
      
      print(func(1, 2, 3))
      
      
    • 案例2、传入多个键值,进行处理

      #!/usr/bin/env python
      # _*_ coding: utf-8 _*_
      # Author:shichao
      # File: .py
      
      
      # 使用**kwargs
      
      def func1(**kwargs):
          for k, v in kwargs.items():
              print("名称:%s\t价格:%s" % (k, v))
      
      
      func1(主机=5000, 显示器=1000, 鼠标=60, 键盘=150)
      
  • 案例6:匿名函数

    #!/usr/bin/env python
    # _*_ coding: utf-8 _*_
    # Author:shichao
    # File: .py
    
    
    # 普通变量实现
    s = lambda a,b: a+b
    print(s(1,2))
    
    
    # 匿名函数
    
    def func(a,b):
        return a + b
    
posted @ 2023-01-06 10:01  七月流星雨  阅读(88)  评论(0编辑  收藏  举报