当前位置: 首页 > article >正文

Python--函数进阶(下)

3. 返回值与print​的辨析

3.1 返回值的作用

  • ​return​:将结果传递给调用者,可后续处理。
  • print​:仅输出到控制台,不保留数据。
def add(a, b):
    return a + b

result = add(3, 4)  # 结果存储在result中
print(result)       # 输出:7

3.2 函数执行流程分析

def func1():
    print("执行func1")
    return 100

def func2(arg):
    print("执行func2")
    return arg * 2

value = func2(func1())
# 输出:
# 执行func1
# 执行func2
print(value)  # 200

4. 作用域详解

4.1 全局作用域与局部作用域

  • 局部作用域:函数内部定义的变量。
  • 全局作用域:函数外部定义的变量。
global_var = "全局变量"

def show_vars():
    local_var = "局部变量"
    print(global_var)  # 可访问全局变量
    print(local_var)

show_vars()
print(local_var)  # 报错:未定义

4.2 global​关键字的使用

在局部作用域中修改全局变量:

count = 0

def increment():
    global count
    count += 1

increment()
print(count)  # 输出:1

5. 综合练习与常见面试题

5.1 参数传递的面试题

题目

def func(data=[]):
    data.append(1)
    return data

print(func())  # [1]
print(func())  # [1, 1]

解析:默认参数在函数定义时创建,多次调用共享同一列表。


5.2 作用域相关的代码分析

代码:

x = 10

def outer():
    x = 20
    def inner():
        print(x)  # 输出:20
    inner()

outer()
print(x)  # 输出:10

解析:inner​函数优先访问外层函数作用域的x​。


5.3 函数式编程案例

闭包应用:

def cache(func):
    cached = {}
    def wrapper(*args):
        if args not in cached:
            cached[args] = func(*args)
        return cached[args]
    return wrapper

@cache
def factorial(n):
    return 1 if n == 0 else n * factorial(n-1)

print(factorial(5))  # 120(缓存优化递归)

http://www.kler.cn/a/558729.html

相关文章:

  • MacBooK Pro安装HomeBrew
  • RD-搭建测试环境
  • IDEA使用Maven方式构建SpringBoot项目
  • 2025-skywalking组件
  • 基于Springboot学生宿舍水电信息管理系统【附源码】
  • JavaScript函数-arguments的使用
  • ESP32S3:解决RWDT无法触发中断问题,二次开发者怎么才能使用内部RTC看门狗中断RWDT呢?
  • Protobuf proto3 语法讲解(1)
  • x安全服务 y安全体系 z网络安全模型 网络安全体系设计
  • 12.重复内容去重|添加日志|部署服务到Linux上(C++)
  • 如何用Python 3自动打开exe程序
  • TCP函数
  • vscode settings(二):文件资源管理器编辑功能主题快捷键
  • [Windows] 通达信MPV1.23绿色免安装,整合DeepSeek版
  • STM32基础篇(二)------GPIO(最详细版本!!!!!!)
  • Android 实现 RTMP 推流:快速集成指南
  • 神经网络——梯度下溢
  • mysql -DQL语句和DCL语句
  • 蓝桥杯刷题25.2.22|打卡
  • Redis面试宝典【刷题系列】