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

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(缓存优化递归)

相关文章:

  • SpringBoot+Vue+微信小程序的猫咖小程序平台(程序+论文+讲解+安装+调试+售后)
  • Http模块及练习
  • C++单例模板类,继承及使用
  • C语言宏定义的底层应用
  • 【SpringMVC】概述 SSM:Spring + SpringMVC + Mybats
  • 在CentOS安装Docker
  • Redis常用数据类型及其应用案例
  • 机器学习数学基础:30.Pearson相关系数及t检验教程
  • 信息安全实战04_ECC椭圆曲线加密算法原理详解
  • 蓝桥杯试题:区间次方和(前缀和)
  • Gin从入门到精通 (四)请求参数
  • 网络运维学习笔记 022 HCIA-Datacom新增知识点03园区网典型组网架构及案例实战
  • 第一届网谷杯
  • 力扣每日一题【算法学习day.133】
  • 敏捷开发08:如何高效开每日站会(Daily Stand-up Meeting)
  • LEARNING ON LARGE-SCALE TEXT-ATTRIBUTED GRAPHS VIA VARIATIONAL INFERENCE
  • Go语言中使用viper绑定结构体和yaml文件信息时,标签的使用
  • NIO-Reactor模型梳理与demo实现
  • Linux 第三次脚本作业
  • 如何使用智能指针来管理动态分配的内存
  • 美国第一季度经济环比萎缩0.3%
  • 周劼已任中国航天科技集团有限公司董事、总经理、党组副书记
  • 深观察丨从“不建议将导师挂名为第一作者”说开去
  • 为治理商家“卷款跑路”“退卡难”,预付式消费司法解释5月起实施
  • 屠呦呦当选美国科学院外籍院士
  • 新华社评论员:汇聚起工人阶级和广大劳动群众的磅礴力量