python学习之路☞14.函数再临之定义 参数 和 return

睡着了,又好像醒着,如睡如醒
下一个知识点仍然是函数,这是没想到的,深入观看之后才发现是对函数概念的补充,索性起名,函数再临系列,主要概念还是定义 参数 和 return 的介绍和使用,以及默认值传参的和return的使用要点

'''
函数
定义:一个封装了可重复使用代码的代码块,用于完成特定任务。函数可以接收输入参数,执行代码,并返回结果。
参数:
   形参:在定义函数时定义的参数。
   实参:在调用函数时传递给形参的参数。
传参方式:
   位置参数
      定义:按照位置传递的参数。
      示例:
      ```python
      def add(a, b):
         return a + b
      add(1, 2)  # 1 和 2 是位置参数
      ```

   关键字参数
      定义:通过参数名传递的参数。
      示例:
      ```python
      def greet(name, message):
         print(f"{message}, {name}!")
      greet(name="Alice", message="Hello")  # name 和 message 是关键字参数
      ```

   默认值参数
      定义:具有默认值的参数。
      示例:
      ```python
      def greet(name, message="Hello"):
         print(f"{message}, {name}!")
      greet("Alice")  # 使用默认值参数 message="Hello"
      ```
※ 注意:带有默认值的形参变量必须放在所有不带默认值的形参变量之后

return:用于返回函数的结果并结束函数,也可用于结束循环
      示例1 return 返回值可以返回列表、字典和元组等:
      ```python
      def process():
         return 1, "hello", [3, 4, 5]
      result = process()
      print(result)  # 输出:(1, 'hello', [3, 4, 5])
      ```
      示例2 结束循环和函数:
      ```python
      def find_first_even(numbers):
         for number in numbers:
            if number % 2 == 0:
                  return number  # 结束循环和函数
         return None  # 如果没有找到偶数,返回 None

      result = find_first_even([1, 3, 5, 8, 9])
      print(result)  # 输出:8
      ```
※ 注意:
    1. return 看似是多个变量,但最终会返回到元组类型变量中,相当于打包
    2. return 不仅用于返回值,还可以结束函数的执行。如果在函数内部的循环中使用 return 它会立即结束函数和循环的执行,而 break 只会结束循环,这是主要区别 
'''

# 参数 位置传参
print('----------------参数 位置传参-----------------')
"""
function1函数
作用:用来测试位置传参,并将传参打印出来
    num1: 任意类型形参变量
    num2: 任意类型形参变量
    num3: 任意类型形参变量
"""
def function1(num1, num2, num3):  # 定义函数,形参接收变量
    print(num1, num2, num3)  # 代码块执行


num1, num2, num3 = 1, '你好', '世界'  # 变量赋值
function1(num1, num2, num3)  # 实参位置传参

# 参数 关键字传参
print('----------------参数 关键字传参-----------------')
"""
function2函数
作用:用来测试关键字传参,并将传参打印出来
    num1: 任意类型形参变量
    num2: 任意类型形参变量
    num3: 任意类型形参变量
"""
def function2(num1, num2, num3):  # 定义函数,形参接收变量
    print(num1, num2, num3)  # 代码块执行


function2(num3='吗?', num2='你好', num1=2)  # 实参关键字传参


# 参数 默认值传参
print('----------------参数 默认值传参-----------------')
"""
function3函数
作用:用来测试默认值传参,并将传参打印出来
    num1: 任意类型形参变量
    num2: 任意类型形参变量
    num3='默认值发作': 任意类型,带有默认值的形参变量,值是 "默认值发作"
"""
def function3(num1, num2, num3='默认值发作'):  # 定义函数,形参接收变量
    print(num1, num2, num3)  # 代码块执行


function3(3, '你好')  # 实参位置+默认值传参
function3(num2='你好', num1=3)  # 实参关键字+默认值传参
function3(num3='吗?', num2='你好', num1=3)  # 实参关键字传参+默认值传参,默认值覆盖

# return
print('----------------return-----------------')
"""
function4函数
作用:用来测试 return 并返回数据
    num0: 浮点类型,用于判断并执行不同语句块
    num1: 任意类型形参变量
    num2: 任意类型形参变量
    num3: 任意类型形参变量
"""
def function4(num0, num1, num2, num3):  # 定义函数,形参接收变量
    if num0 == 4.2:
        return [num1, num2, num3]  # return 代码块执行,返回列表
    elif num0 == 4.1:
        return {num0: num1, num2: num2, num3: num3}  # return 代码块执行,返回字典
    elif num0 == 4.3:
        return num1, num2, num3  # return 代码块执行,返回并默认打包为元组
    else:
        line_str = ''
        for i in range(3):
            line_str += str(i)+' '
            if i == 2:  # 判断循环结束条件
                return line_str, '->', num1, num2, num3, '执行完毕结束循环和函数' # return 代码块执行,结束循环和函数,返回提示输出结果

return_variable = function4(4.1, 4, '你好', '世界@_@')  # 实参位置传参并赋值
print(return_variable, type(return_variable))  # 打印返回结果

return_variable = function4(4.2, 4, '你好', '世界?')  # 实参位置传参并赋值
print(return_variable, type(return_variable))  # 打印返回结果

return_variable = function4(4.3, 4, '你好', '世界!')  # 实参位置传参并赋值
print(return_variable, type(return_variable))  # 打印返回结果

return_variable = function4(4.4, 4, '你好', '世界!')  # 实参位置传参并赋值
print(return_variable, type(return_variable))  # 打印返回结果

参考

25 函数定义_哔哩哔哩_bilibili
26 函数参数_哔哩哔哩_bilibili
27 函数返回值_哔哩哔哩_bilibili
Python-Core-50-Courses/第13课:函数和模块.md at master · jackfrued/Python-Core-50-Courses · GitHub
Python-Core-50-Courses/第14课:函数的应用.md at master · jackfrued/Python-Core-50-Courses · GitHub
Python-Core-50-Courses/第15课:函数使用进阶.md at master · jackfrued/Python-Core-50-Courses · GitHub
Python-Core-50-Courses/第16课:函数的高级应用.md at master · jackfrued/Python-Core-50-Courses · GitHub

1 Like

感谢你的分享,加油!

1 Like

嗯,你速度好快,我刚写完没几分钟 :+1:

感谢大佬分享

1 Like

谢谢你来看看我