"""functions_basics.py - Python 函数基础示例 涵盖:普通函数、参数、返回值、默认参数、关键字参数、可变参数、 匿名函数、递归函数、作用域和闭包基础等。 """ def greet(name): """普通函数:接收参数并返回字符串。""" return f"Hello, {name}!" def add(a, b): """普通函数:求和。""" return a + b def power(base, exponent=2): """默认参数:exponent 默认值为 2。""" return base ** exponent def show_student(name, age, city="Beijing"): """默认参数示例。""" print(f"Name: {name}, Age: {age}, City: {city}") def print_info(name, *, age, city): """keyword-only 参数:必须使用关键字传参。""" print(f"{name}, {age}, {city}") def sum_all(*numbers): """可变参数:接收任意数量的位置参数。""" total = 0 for n in numbers: total += n return total def print_scores(**scores): """关键字可变参数:接收任意数量关键字参数。""" for key, value in scores.items(): print(f"{key} = {value}") def factorial(n): """递归函数:阶乘。""" if n == 1 or n == 0: return 1 return n * factorial(n - 1) def outer(): """闭包示例:内部函数访问外部变量。""" x = 10 def inner(): return x + 5 return inner # 匿名函数(lambda) square = lambda x: x * x # 全局变量与局部变量 count = 0 def increase(): global count count += 1 return count # 默认参数注意事项:不要使用可变对象作为默认值 # 例如:def append_item(items=[]): ... def main(): print("greet('Tom') ->", greet("Tom")) print("add(3, 5) ->", add(3, 5)) print("power(3) ->", power(3)) print("power(3, 3) ->", power(3, 3)) show_student("Alice", 18) show_student("Bob", 20, "Shanghai") print_info("Tom", age=25, city="Hangzhou") print("sum_all(1, 2, 3, 4) ->", sum_all(1, 2, 3, 4)) print_scores(math=90, english=88, history=94) print("factorial(5) ->", factorial(5)) closure = outer() print("closure() ->", closure()) print("square(6) ->", square(6)) print("increase() ->", increase()) print("increase() ->", increase()) # 函数作为参数传递 def do_math(x, func): return func(x) print("do_math(8, square) ->", do_math(8, square)) if __name__ == '__main__': main()