Python零基础入门 第七章:函数基础 本章目标掌握函数的定义和调用方法掌握函数的各种参数类型掌握函数返回值的使用理解变量的作用域了解函数的嵌套和递归基础能够编写自定义函数解决实际问题 1. 函数概述函数是一段具有特定功能的、可重复使用的代码块。使用函数可以将复杂的程序分解为多个小模块,提高代码的复用性、可读性和可维护性。Python提供了大量内置函数(如print()、input()、len()等),同时也支持用户自定义函数。2. 函数的定义和调用2.1 定义函数使用def关键字定义函数,语法格式:def 函数名(参数列表):函数体return 返回值 说明: - 函数名遵循变量命名规则- 参数列表可以为空,多个参数用逗号分隔- 函数体必须缩进- return语句可选,用于返回函数执行结果 示例代码: 定义一个无参数无返回值的函数 def say_hello():print("Hello Python!") 定义一个有参数有返回值的函数 def add(a, b):result = a + breturn result 2.2 调用函数定义函数后,通过函数名加括号的方式调用函数。 调用无参数函数 say_hello() 输出:Hello Python! 调用有参数函数 sum_result = add(3, 5)print(sum_result) 输出:8 3. 函数的参数3.1 位置参数调用函数时,按照参数定义的顺序传递参数,参数的数量和顺序必须与定义一致。def introduce(name, age):print(f"我叫{name},今年{age}岁") introduce("张三", 20) 输出:我叫张三,今年20岁 3.2 关键字参数调用函数时,通过"参数名=值"的方式传递参数,可以不按顺序。introduce(age=21, name="李四") 输出:我叫李四,今年21岁 3.3 默认参数定义函数时,可以给参数指定默认值,调用时如果没有传递该参数,就使用默认值。注意:默认参数必须放在参数列表的最后。def introduce(name, age=18):print(f"我叫{name},今年{age}岁") introduce("王五") 输出:我叫王五,今年18岁 introduce("赵六", 22) 输出:我叫赵六,今年22岁 3.4 可变参数当不确定函数需要接收多少个参数时,可以使用可变参数。 - *args:接收任意多个位置参数,返回一个元组- kwargs:接收任意多个关键字参数,返回一个字典 示例代码: args示例 def sum_all(args):total = 0for num in args:total += numreturn total print(sum_all(1, 2, 3)) 输出:6 print(sum_all(1, 2, 3, 4, 5)) 输出:15 kwargs示例 def print_info(*kwargs):for key, value in kwargs.items():print(f"{key}: {value}") print_info(name="张三", age=20, gender="男") 输出: name: 张三 age: 20 gender: 男 4. 函数的返回值4.1 基本返回值使用return语句返回函数执行结果,return语句执行后,函数立即结束。def multiply(a, b):return a b result = multiply(4, 5)print(result) 输出:20 4.2 返回多个值Python函数可以返回多个值,多个值之间用逗号分隔,返回结果是一个元组。def calculate(a, b):sum_ab = a + bdiff_ab = a - bproduct_ab = a breturn sum_ab, diff_ab, product_ab result = calculate(10, 3)print(result) 输出:(13, 7, 30) 也可以用多个变量接收返回值 sum_ab, diff_ab, product_ab = calculate(10, 3)print(sum_ab, diff_ab, product_ab) 输出:13 7 30 4.3 无返回值如果函数没有return语句,默认返回None。def print_name(name):print(name) result = print_name("张三")print(result) 输出: 张三 None 5. 变量的作用域变量的作用域指的是变量可以被访问的范围,Python中主要分为局部变量和全局变量。 5.1 局部变量在函数内部定义的变量,只能在函数内部访问,函数执行结束后,局部变量会被销毁。def test():x = 10 报错,x在函数外部不可访问 5.2 全局变量在函数外部定义的变量,可以在整个程序中访问。y = 20 递归终止条件if n == 1:return 1# 递归调用return n factorial(n - 1) print(factorial(5)) 输出:120 7. 综合实战:多功能计算器编写一个计算器函数,支持加、减、乘、除四种运算。def calculator(a, b, operator):if operator == "+":return a + belif operator == "-":return a - belif operator == "":return a belif operator == "/":if b == 0:return "除数不能为零"return a / belse:return "不支持的运算符" 测试 print(calculator(10, 3, "+")) 输出:13 print(calculator(10, 3, "-")) 输出:7 print(calculator(10, 3, "*")) 输出:30 print(calculator(10, 3, "/")) 输出:3.3333333333333335 print(calculator(10, 0, "/")) 输出:除数不能为零 print(calculator(10, 3, "%")) 输出:不支持的运算符 8. 本章总结9. 函数是可重复使用的代码块,使用def关键字定义10. 函数参数包括位置参数、关键字参数、默认参数和可变参数11. return语句用于返回函数执行结果,可以返回多个值12. 局部变量只能在函数内部访问,全局变量可以在整个程序中访问13. 在函数内部修改全局变量需要使用global关键字14. 函数可以嵌套定义,也可以递归调用自身15. 递归必须有明确的终止条件,否则会导致无限递归16. 课后练习17. 编写一个函数,计算一个数的平方18. 编写一个函数,判断一个数是否是质数19. 编写一个函数,接收一个列表,返回列表中的最大值20. 编写一个递归函数,计算斐波那契数列的第n项