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

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

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 + bprint("函数里面的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 + bc += 5return c# c是全局变量
c = 4
add(5, 7)
print(c)
# 4
add(5, 7)
print(c) #就近原则
#17

问:

1) 全局能获取局部变量? ===》 不能
def add(a, b):c = a + breturn cprint(c)
2)局部作用域可以获取全局变量? ===》 能
c = 10
def add(a, b):return c + a + bprint(add(2, 3))
#10
3) 全局变量能修改局部变量? ===>不能
def add(a, b):return  a + ba = a + 1
4)局部变量能修改全局变量么?===》 能
  • 不加global 表明是全局变量,是不能修改全局变量的
  • 如果想在局部去修改全局变量:加global 表明这是一个全局变量
  • global关键字是声明全局变量的关键字,不要轻易使用:原因:如果很多函数使用看global会导致不知道最后全局变量变为了什么值
c = 3
def add(a, b):c = c + 3 # 定义一个变量,在函数定义变量代表是局部变量与全局变量c相互矛盾,如果单单仅打印c是不会报错的print(c)return c + a + bprint(add(2, 3))"""c = c + 3
UnboundLocalError: local variable 'c' referenced before assignment"""#需要加global
c = 3
def add(a, b):#globalc = c + 3print(c)return c + a + bprint(add(2, 3))
#11print("最后的c:{}".format(c))
#6

1.7.4 局部变量和形参

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

 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Linux - 基础开发工具(yum、vim、gcc、g++、make/Makefile、git)
  • 使用Go编写的持续下行测速脚本,快速消耗流量且不伤硬盘
  • 【排序 】
  • 多元输出表达(MOE)
  • 静态搜索iOS动态链接函数的调用位置
  • 神经网络识别数字图像案例
  • 昇思训练营打卡第二十四天(LSTM+CRF序列标注)
  • uniapp 小程序注册全局弹窗组件(无需引入,无需写标签)
  • 缓存与分布式锁
  • T113-i 倒车低概率性无反应,没有进入倒车视频界面
  • Spring-Cache 缓存
  • Zookeeper背景优缺点,以及应用场景
  • 头歌资源库(32)n皇后问题
  • 【坑】微信小程序开发wx.uploadFile和wx.request的返回值格式不同
  • 如何找工作 校招 | 社招 | 秋招 | 春招 | 提前批
  • [数据结构]链表的实现在PHP中
  • 3.7、@ResponseBody 和 @RestController
  • Angular4 模板式表单用法以及验证
  • CentOS6 编译安装 redis-3.2.3
  • CSS 专业技巧
  • css选择器
  • git 常用命令
  • iOS仿今日头条、壁纸应用、筛选分类、三方微博、颜色填充等源码
  • leetcode讲解--894. All Possible Full Binary Trees
  • Redis 懒删除(lazy free)简史
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • vue-cli3搭建项目
  • Xmanager 远程桌面 CentOS 7
  • 初识 beanstalkd
  • 对超线程几个不同角度的解释
  • 聚类分析——Kmeans
  • 名企6年Java程序员的工作总结,写给在迷茫中的你!
  • 巧用 TypeScript (一)
  • 小程序测试方案初探
  • 协程
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • 再谈express与koa的对比
  • 在Unity中实现一个简单的消息管理器
  • 栈实现走出迷宫(C++)
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • ​一些不规范的GTID使用场景
  • # 达梦数据库知识点
  • # 飞书APP集成平台-数字化落地
  • # 服务治理中间件详解:Spring Cloud与Dubbo
  • #APPINVENTOR学习记录
  • (12)目标检测_SSD基于pytorch搭建代码
  • (Forward) Music Player: From UI Proposal to Code
  • (附源码)ssm高校升本考试管理系统 毕业设计 201631
  • (附源码)计算机毕业设计SSM智慧停车系统
  • (三)终结任务
  • (十二)devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置
  • (十六)一篇文章学会Java的常用API
  • (转)es进行聚合操作时提示Fielddata is disabled on text fields by default
  • (转)GCC在C语言中内嵌汇编 asm __volatile__
  • (转)MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在