Python中的函数(下)

embedded/2025/2/1 7:36:31/

函数返回值

返回单个值

函数可以通过 return 语句返回一个值。一旦执行到 return 语句,函数就会停止执行,并将指定的值返回给调用者。例如:

返回多个值

 
实际上,Python函数只能返回一个值,但可以通过返回一个元组来模拟返回多个值。例如:
def divide(a, b):
    quotient = a // b
    remainder = a % b
    return quotient, remainder
result = divide(7, 3)
print(result)
# 解包返回的元组
quotient, remainder = divide(7, 3)
print(f"Quotient: {quotient}, Remainder: {remainder}")
在  divide  函数中,返回了商和余数组成的元组。可以直接打印这个元组,也可以通过解包将元组的元素分别赋给不同的变量。

无返回值(返回None)


如果函数没有  return  语句,或者  return  语句后面没有值,函数将返回  None 。例如:
 def print_message(message):
    print(message)

result = print_message("Hello, world!")
print(result)
在这个例子中, print_message  函数只是打印一条消息,没有明确的返回值,所以  result  的值为  None 。


函数作用域


局部作用域
 

在函数内部定义的变量具有局部作用域只能在函数内部访问。例如:
def local_scope_example( ):
    local_variable = 10
    print(f"Inside function: {local_variable}")
local_scope_example()
# 下面这行代码会报错,因为 local_variable 超出了作用域
# print(local_variable)

在  local_scope_example  函数中定义的  local_variable  只能在函数内部使用,函数外部无法访问。

全局作用域


在函数外部定义的变量具有全局作用域,可以在整个模块中访问。例如:  
global_variable = 20
def global_scope_example( ):
    print(f"Inside function: {global_variable}")
global_scope_example( )
print(f"Outside function: {global_variable}")
 
 
在这个例子中, global_variable  在函数外部定义,具有全局作用域,函数内部和外部都可以访问它。

修改全局变量


如果要在函数内部修改全局变量,需要使用  global  关键字声明。例如:
count = 0

def increment_count():
    global count
    count += 1
    return count

new_count = increment_count()
print(new_count)
 
 
 increment_count  函数中,使用  global  关键字声明  count  是全局变量,这样就可以在函数内部修改它的值。
 

递归函数
 

递归函数是指在函数内部调用自身的函数。递归通常用于解决可以分解为相同问题的子问题的情况。例如,计算阶乘可以使用递归实现:
def factorial(n):
    if n == 0 or n == 1:
        return 1
    else:
        return n * factorial(n - 1)


result = factorial(5)
print(result)
 
 
在  factorial  函数中,当  n  为 0 或 1 时,函数返回 1,这是递归的终止条件。否则,函数返回  n  乘以  factorial(n - 1) ,即不断调用自身来计算阶乘。

 


http://www.ppmy.cn/embedded/158572.html

相关文章

计算机组成原理——数据运算与运算器(二)

生活就像一条蜿蜒的河流,有时平静,有时湍急。我们在这条河流中前行,会遇到风雨,也会遇见阳光。重要的是,无论遇到什么,都要保持内心的平静与坚定。每一次的挫折,都是让我们成长的机会&#xff1…

【深度学习】神经网络实战分类与回归任务

第一步 读取数据 ①导入torch import torch ②使用魔法命令,使它使得生成的图形直接嵌入到 Notebook 的单元格输出中,而不是弹出新的窗口来显示图形 %matplotlib inline③读取文件 from pathlib import Path import requestsDATA_PATHPath("dat…

【C++】特殊类设计、单例模式与类型转换

目录 一、设计一个类不能被拷贝 (一)C98 (二)C11 二、设计一个类只能在堆上创建对象 (一)将构造函数私有化,对外提供接口 (二)将析构函数私有化 三、设计一个类只…

具身智能体空间感知基础!ROBOSPATIAL:评测并增强2D和3D视觉语言模型空间理解水平

作者:Chan Hee Song, Valts Blukis,Jonathan Tremblay, Stephen Tyree, Yu Su, Stan Birchfield 单位:俄亥俄州立大学,NVIDIA 论文标题:ROBOSPATIAL: Teaching Spatial Understanding to 2D and 3D Vision-Language Models for …

SpringSecurity:There is no PasswordEncoder mapped for the id “null“

文章目录 一、情景说明二、分析三、解决 一、情景说明 在整合SpringSecurity功能的时候 我先是去实现认证功能 也就是,去数据库比对用户名和密码 相关的类: UserDetailsServiceImpl implements UserDetailsService 用于SpringSecurity查询数据库 Logi…

Baklib如何变革企业知识管理提升工作效率与市场竞争力分析

内容概要 在当今数字化迅速发展的时代,企业面临着管理和运用知识资源的重大挑战。Baklib知识中台应运而生,成为企业提升知识管理的重要工具。通过构建一个集中化的平台,Baklib不仅使得知识的获取、分享和应用变得更加高效,同时也…

第23篇:Python开发进阶:详解测试驱动开发(TDD)

第23篇:测试驱动开发(TDD) 内容简介 在软件开发过程中,测试驱动开发(TDD,Test-Driven Development)是一种强调在编写实际代码之前先编写测试用例的开发方法。TDD不仅提高了代码的可靠性和可维…

pytorch实现门控循环单元 (GRU)

特性GRULSTM计算效率更快,参数更少相对较慢,参数更多结构复杂度只有两个门(更新门和重置门)三个门(输入门、遗忘门、输出门)处理长时依赖一般适用于中等长度依赖更适合处理超长时序依赖训练速度训练更快&am…