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

变量的作用域

变量的作用域是指变量在哪些地方可以被访问到。

局部变量:在函数内部定义的变量,只能在函数内部使用。

def test():
x = 10 # 局部变量
print(x)

test()
print(x) # 报错!x 在函数外部访问不到
全局变量:在函数外部定义的变量,可以在任何地方访问。

x = 10 # 全局变量

def test():
print(x) # 可以访问全局变量

test()
print(x) # 也可以访问
如果在函数内部要修改全局变量,需要用global声明:

x = 10

def test():
global x # 声明 x 是全局变量
x = 20 # 修改全局变量

test()
print(x) # 20
如果不加global,在函数内部修改全局变量会被Python当成创建了一个新的局部变量,不会影响到外部的全局变量。

九、一个我踩过的坑:忘记写括号
这是新手最容易犯的错误,我刚开始学函数的时候,有一次这样写:

def say_hello():
print(“你好!”)

say_hello # 忘记加括号了
运行后什么都没有输出,也没有报错,什么都没有发生。我当时还以为是Python坏了,后来才发现调用函数必须加括号。say_hello只是函数本身,say_hello()才是调用它。

十、综合示例:把体温检测改写成函数
把之前写的体温检测程序改写成函数,加上说明文档和嵌套调用:

这个函数负责获取体温,返回给调用者

def get_temperature():
“”"
获取用户输入的体温
:return: 浮点数体温
“”"
return float(input(“请测量并输入您的体温:”))

def check_temperature(temp, standard=37.5):
“”"
判断体温是否正常
:param temp: 体温值
:param standard: 标准温度,默认37.5
:return: True 表示正常,False 表示异常
“”"
return temp <= standard

def print_result(temp, is_normal):
“”"
打印体温检测结果
:param temp: 体温值
:param is_normal: 是否正常
“”"
print(f"体温测量中,您的体温是:{temp}度")
if is_normal:
print(“体温正常请进!”)
else:
print(“需要隔离!”)

def main():
print(“欢迎来到辽宁!请出示您的健康码以及72小时核酸证明,并配合测量体温。”)
temp = get_temperature()
result = check_temperature(temp)
print_result(temp, result)

main()
一次定义可以反复使用,每个函数只做一件事,代码清晰易读。以后如果想修改体温检测的逻辑,只需要改对应的函数就行了。

小结
今天学的东西,整理成一张速查表:

知识点 作用 示例
def 定义函数 def say_hello():
参数 让函数接收外部数据 def greet(name):
return 返回值给调用者 return a + b
None 表示空值 return None
说明文档 解释函数的作用 “”" 函数说明 “”"
嵌套调用 函数内部调用另一个函数 def a(): b()
局部变量 函数内部定义,只能在内部使用 x = 10 在函数内
全局变量 函数外部定义,任何地方可用 x = 10 在函数外
global 在函数内修改全局变量 global x
什么时候用函数?

一段代码在多个地方重复出现 → 封装成函数

http://www.jsqmd.com/news/1229751/

相关文章:

  • Agent 协作崩盘?从单兵 Demo 到团队管线,卡在记忆与规划的断层
  • 构建与部署:使用Ionic Angular Cordova Seed发布应用到应用商店的终极指南 [特殊字符]
  • Streamlit框架:Python快速开发Web应用的利器
  • 写歌作词一体化平台怎么选:8款AI作词工具的真实使用思路
  • Spring Boot 3.5中Redis动态连接池的URL优先策略优化
  • 3分钟掌握OpenDataTools:用Python快速获取基金数据的完整指南
  • PARD2-Qwen3-14B性能对比分析:与EAGLE-3、PARD等竞品的技术优势
  • PARD2-Llama-3.1-8B vs 传统模型:为什么它能超越EAGLE-3达1.9倍性能?
  • i-book.in_Archive安全配置指南:保护你的搜索引擎免受攻击
  • 言语能力、数学能力、逻辑推理:北森AI素养评估的三大加速因子拆解 - 嘻哩哩女王在行动
  • i-book.in_Archive性能调优:如何提升大规模数据搜索响应速度
  • 北京高新技术软件公司 校园物资申领系统 院校全过程管理开发
  • 生产级机器学习:从模型上线到系统可靠性的七道生死关
  • 2026本土人力资源咨询标杆,头部力量矩阵构建
  • 10个技巧让你的网页背景更专业:Triangles高级配置指南
  • React Native Photo Browser 性能优化:大型图片集合处理技巧
  • gpt-tokenizer与OpenAI tiktoken对比:为什么选择这个JavaScript实现
  • 在线光谱分析仪公司有哪些?2026年十大厂商实力对比 - 运营方法论
  • typedef 和 #define 宏定义核心区别
  • v-hotkey实战:构建企业级Vue应用快捷键系统的完整指南
  • S3C2440按键驱动开发:从硬件中断到Linux字符设备
  • 0719一个月总结
  • AI录音修音工具有哪些:做歌常用的人声效果器和音乐编辑器怎么选
  • 10分钟掌握Cute Chess引擎配置:UCI与XBoard协议全攻略 [特殊字符]
  • 第37篇:原生AJAX从零手写源码——彻底弄懂前端网络请求底层
  • 逆变器芯片失效分析与防护设计实践
  • 空调单元电路解析与维修优化实践
  • 【维修笔记】吉时利2750数据采集器进水后不开机+异响故障排查实录
  • Funchook架构设计解析:理解函数钩子库的内部工作机制
  • 2026年河南GRG生产商有哪些 综合实力排行完整盘点 - 奔跑123