python基础语法 005 函数1-2 函数作用域

news2024/9/20 20:37:41

1 函数续

1.7 函数作用域

1.7.1 全局变量

  • 定义在函数外部的变量
  • 全局变量在函数内部和函数外部都可以访问使用
a = 100
def run():
    print("a = {}".format(a))

print(a)
print(run())

1.7.2 局部变量

函数是一个黑盒子,外面看不到盒子里面的东西,但里面可以看见外面

  • 定义在函数内部的变量
  • 局部变内部访问使用,函数外部不能访问使用
  • 占山为王,有自己的山寨货币和便签,出去无法使用
"""
局部变量:函数体这个局部,把函数当作一个盒子
全局变量:
"""
#a、b、 c局部变量
def add(a, b):
    c = a + b
    print("函数里面的c",c)
    return c

# c是全局变量
c = 4
print("函数外面的c", c)
add(5, 7)

1.7.3 全局变量和局部变量的注意项

#a、b、 c局部变量
def add(a, b):
    c = a + b
    c += 5
    return c

# c是全局变量
c = 4
add(5, 7)
print(c)
# 4
add(5, 7)
print(c) #就近原则
#17

问:

1) 全局能获取局部变量? ===》 不能
def add(a, b):
    c = a + b
    return c

print(c)
2)局部作用域可以获取全局变量? ===》 能
c = 10
def add(a, b):
    return c + a + b

print(add(2, 3))
#10
3) 全局变量能修改局部变量? ===>不能
def add(a, b):
    return  a + b

a = a + 1
4)局部变量能修改全局变量么?===》 能
  • 不加global 表明是全局变量,是不能修改全局变量的
  • 如果想在局部去修改全局变量:加global 表明这是一个全局变量
  • global关键字是声明全局变量的关键字,不要轻易使用:原因:如果很多函数使用看global会导致不知道最后全局变量变为了什么值
c = 3
def add(a, b):
    c = c + 3 # 定义一个变量,在函数定义变量代表是局部变量与全局变量c相互矛盾,如果单单仅打印c是不会报错的
    print(c)
    return c + a + b

print(add(2, 3))


"""
  c = c + 3
UnboundLocalError: local variable 'c' referenced before assignment

"""

#需要加global
c = 3
def add(a, b):
    #global
    c = c + 3
    print(c)
    return c + a + b

print(add(2, 3))
#11

print("最后的c:{}".format(c))
#6

1.7.4 局部变量和形参

当实参传入函数内部的时候,形参会接受到实参,可以把形参当作局部变量使用

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1923487.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

QEMU模拟器源码编译与使用

QEMU模拟器源码编译与使用 1 编译MySBIBenOS2 编译QEMU3 QEMU运行MySBIBenOS4 使用gdb调试QEMU5 通过QEMU调试指令6 小结 本文属于 《RISC-V指令集差分测试(DiffTest)系列教程》之一,欢迎查看其它文章。 1 编译MySBIBenOS 参考《NEMU模拟器…

AI绘画Midijourney操作技巧及变现渠道喂饭式教程!

前言 盘点Midijourney(AIGF)热门赚米方法,总有一种适合你之AI绘画操作技巧及变现渠道剖析 【表情包制作】 首先我们对表情包制作进行详细的讲解: 当使用 Midjourney(AIGF) 绘画来制作表情包时&#xff…

【Linux网络】网络基础

本篇博客整理了 Linux 网络编程的前置知识,例如网络的发展、协议和协议栈分层、网络通信原理、网络地址等,为后续进入 Linux 网络编程作铺垫。 目录 一、网络发展 二、网络协议 1)协议的作用 2)协议栈 3)协议分层…

自动驾驶(萝卜快跑)是毁灭出租司机工作机会的灾难?

引言 自动驾驶技术的飞速发展在全球范围内引发了广泛的讨论和担忧,特别是在中国,自动驾驶出租车服务“萝卜快跑”成为了热门话题。本文探讨自动驾驶对出租司机工作机会的影响,以及这种技术变革背后的社会经济因素。 自动驾驶的历史与现状 …

yoloV8导出engine模型

yoloV8导出engine模型 引言: 目的是TensorRT加速YOLO实例分割模型。 本博客记录达成此目的所需的步骤,及步骤中可能遇到的问题。 as follow: 1. 首先导出onnx模型的脚本命令: yolo export modelbest.pt formatonnx opset12 simpl…

全网都在找数学建模美赛模版,免费直接复制,无需关注公众号!!!

文件夹结构如下 美版论文模版预览(截选) tex文件代码如下 \documentclass{mcmthesis} \mcmsetup{CTeX false, % 使用 CTeX 套装时,设置为 truetcn 1111111, problem ABCDEF,sheet true, titleinsheet true, keywordsinsheet true,titlepage false, abstra…

C++ | Leetcode C++题解之第226题翻转二叉树

题目: 题解: class Solution { public:TreeNode* invertTree(TreeNode* root) {if (root nullptr) {return nullptr;}TreeNode* left invertTree(root->left);TreeNode* right invertTree(root->right);root->left right;root->right …

深度学习5 神经网络

生物神经网络是指人的大脑,这是人工神经网络的技术原型。根据生物神经网络的原理,人们用计算机复现了简化的神经网络。当然,人工神经网络是机器学习的一大分支。 1.基本组成 1.1神 经 元 神经元是神经网络的基本组成。激活函数又称作激励函…

【java报错已解决】“Array Out of Bounds“

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 文章目录 引言一、问题描述1.1 报错示例1.2 报错分析1.3 解决思路 二、解决方法:2.1 方法一:范围检查2.…

案例效果展示小程序制作承载信息宣传

如工商财税、房地产、装修、鲜花、五金等很多行业,都有商品/服务/案例/效果等展示宣传获客的需求,传统线下门店/传单方式效果比较低,线上渠道则更多更利于商家随时开展。 然而更多的图片和文字介绍分享混乱难以整理且无法全面覆盖&#xff0…

如何利用人工智能大模型分析流量来源,提升数字化营销效果

摘要 流量来源分析是数字化营销中的一个重要环节,它可以帮助产品经理和运营人员了解用户从哪里来,为什么来,以及如何留住他们。流量来源分析可以分为三大类:搜索引擎流量,社交媒体流量,和广告投放流量。每…

代理模式(大话设计模式)C/C++版本

代理模式 C #include <iostream> using namespace std;class Subject // Subject 定义了RealSubject和Proxy的共用接口..这样就在任何使用RealSubject的地方都可以使用Proxy { public:virtual void func(){cout << "Subject" << endl;} };class R…

SQL 将titles_test表名修改为titles_2017

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff0c;这篇文章男女通用&#xff0c;看懂了就去分享给你的码吧。 描述 将titles_tes…

2024年辽宁省数学建模竞赛B题超详细解题思路+问题一代码分享

B题相关优秀论文问题一数据预处理代码分享链接&#xff1a; https://pan.baidu.com/s/1wpNZYW5v8jf2iM0uB7pDEA 提取码&#xff1a;sxjm B题 钢铁产品质量优化 研究现状 冷轧带钢是钢铁企业的高附加值产品&#xff0c;其产品质量稳定性对于钢铁企业的经 济效益具有非常重要…

SpringBoot整合JAX-RS接口

目录 二、创建RESTful资源 三、注册JAX-RS资源 四、修改配置等信息 五、启动SpringBoot程序、访问服务 六、遇到的问题 七、与feign进行配合使用 1、接口定义 2、接口实现 3、注册资源 4、调用方web服务实现&#xff0c;跟注入普通服务一样 5、启动两个服务&#xff…

很多人误解:谷歌账号就是谷歌邮箱账号吗?Google账号=Gmail?

在服务的过程中&#xff0c;我发现有一些朋友对于什么是Google账号、谷歌账号和gmail地址&#xff0c;谷歌邮箱和辅助邮箱等等的概念和用法搞得不够清爽&#xff0c;使得偶会会出现问题&#xff0c;甚至给谷歌账号带来一些风险。所以这篇文章&#xff0c;GG账号服务为大家解析一…

LeetCode刷题之HOT100之打家劫舍Ⅲ

2024 7/13 七月就要过去一半了&#xff0c;伴随着蝉鸣&#xff0c;酷暑被窗户隔离&#xff0c;我坐在凳子上&#xff0c;有一只蚊子不愿意放过我。 1、题目描述 2、算法分析 前面做过打家劫舍Ⅱ&#xff0c;今天来做打家劫舍Ⅲ&#xff0c;小偷也是越来越聪明了&#xff0c;意…

集训 Day 3 总结 虚树 + dfs tree + 基环树

虚树 虚树&#xff0c;顾名思义是 只关注原树上的某些 关键点&#xff0c;在保留原树祖孙关系的前提下建出的一棵边数、点数大大减少的树 适用于优化某些在整棵树上进行 d p dp dp、 d f s dfs dfs 的问题 通常是题目中出现多次询问&#xff0c;每次给出树上的一些关键点&a…

唯一索引插入引发的死锁问题

MySQL 8.4.0 RR隔离级别 场景复现 分析下面SQL死锁的场景 对于switch表&#xff0c;有主键索引id和唯一索引(uid、type)。 CREATE TABLE switch (id int NOT NULL AUTO_INCREMENT COMMENT Unique identifier for each switch,uid int NOT NULL COMMENT User ID associated wi…

Autoware 定位之基于ARTag的landmark定位(六)

Tip: 如果你在进行深度学习、自动驾驶、模型推理、微调或AI绘画出图等任务&#xff0c;并且需要GPU资源&#xff0c;可以考虑使用UCloud云计算旗下的Compshare的GPU算力云平台。他们提供高性价比的4090 GPU&#xff0c;按时收费每卡2.6元&#xff0c;月卡只需要1.7元每小时&…