Python中的函数(下)

ops/2025/2/4 23:43:48/

函数返回值

返回单个值

函数可以通过 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/ops/155707.html

相关文章

系统思考—结构影响行为

“系统的行为是它结构的产物。要改变系统的行为,必须改变它的结构。”——德内拉梅多斯 很多企业在遇到问题时,习惯性的做法是换管理层、加大考核、调整激励机制,甚至开更多的会,但问题真的能解决吗?如果系统的底层逻…

AMD模块

AMD 与 CommonJS 在介绍 AMD 之前,我们需要了解 CommonJS 规范。CommonJS 是服务器端 JavaScript(如Node.js)的模块化标准,它使用同步方式加载模块。然而,这种方式并不适用于浏览器环境,因为 JavaScript 文…

解锁豆瓣高清海报(一) 深度爬虫与requests进阶之路

前瞻 PosterBandit 这个脚本能够根据用户指定的日期,爬取你看过的影视最高清的海报,然后使用 PixelWeaver.py 自动拼接成指定大小的长图。 你是否发现直接从豆瓣爬取下来的海报清晰度很低? 使用 .pic .nbg img CSS 选择器,在 我…

国产之DeepSeek认识、使用及影响

一、前言 2025年乙巳蛇年,DeekSeek彻底网络爆火,为更多国人熟知,在国外更是早先几月就引起Ai界轩然大波,对Ai界硬件显卡厂商英伟达和一众外国Ai资本和科技公司造成很大冲击。Deepseek公司同产品名,早在2023年7月已成立,由知名私募巨头幻方量化孕育而生 ,专注于开发先进的…

【AI编程助手系列】国产AI编程工具 DeepSeek+Cline+VSCode 快速集成

文章目录 前言一、deepseek 介绍二、deepseek 优势三、什么是 Cline?3.1 安装与配置3.1.1 安装 Cline 插件3.1.2 获取 DeepSeek API Key3.1.3 配置 Cline 四、总结 前言 🤖 DeepSeek 是一个强大的 API 平台,提供了丰富的功能和数据&#xff…

【Deep Seek本地化部署】修改模型保存位置

目录 前言 一、官方文档说明 二、操作流程 参考链接 前言 win10系统中,使用ollama进行Deep Seek本地化部署,模型文件默认保存在C:\Users\用户名\.ollama\models文件夹中,很占C盘空间,于是想要更换位置,查阅文档后…

YOLOV11改进1-检测头篇

文章目录 前言一、YAML修改二、模型训练1.数据集准备2.环境准备3.训练3.1原结构训练3.2更改后的模型 三.效果对比1.原始结构2.修改后的结果3.详细对比 总结 前言 目标检测领域里,小目标一直是一个难点问题,虽然我们可以用YOLOSAHI的方式进行滑动窗口推理…

Lua语言的网络编程

Lua语言的网络编程 引言 在现代软件开发中,网络编程是一个非常重要的领域。不同于其他编程语言,Lua语言以其简洁、灵活和高效著称,被广泛应用于游戏开发、嵌入式系统以及各种脚本环境中。尽管Lua在网络编程方面的库和框架并不如Java、Pytho…