Python变量、赋值及作用域
## 变量
- 指向唯一内存地址的一个名字
- 目的是为了更方便地引用内存中的值
- 可以使用id(变量)函数来查看变量的唯一id值,若两者id值相同,则表示两个变量指向同一地址,两个变量的值完全相同
## 变量的命名
- 变量名只能包含以下字符:
- 小写字母(a~z)
- 大写字母(A~Z)
- 数字(0~9)
- 下划线(_)
- 变量名不允许以数字开头
- 以下划线开头的名字有特殊的含义
- 变量名不能使用系统关键字
## 变量的赋值
- 使用 = 为变量赋值
- 变量声明的同时必须进行赋值
- 示例:
a = 10 # 单一变量赋值
a, b, c = 10, 20, 30 # 多变量同时赋值
a = 10
b = 20
a, b = b, a # 变量值互换,与Java、C等语言相比不需要中间值
# -> 结果:a的值为20, b的值为10
## 变量内存指向过程及基本数据类型赋值和容器、对象赋值的区别
- 基本数据类型赋值
- 容器及对象赋值
* 在python中,strings, tuples, 和numbers是不可更改的对象(传值),而 list, dict, set 等则是可以修改的对象(传址)。
## 变量作用域
- 变量有作用域范围
- 分类:按作用域分类
- 全局(global):在函数外部定义的变量
- 在整个全局范围都有效
- 全局变量可以在局部使用
- 局部(local):在函数内部定义的变量
- 局部范围(变量定义所在的函数内部)可以使用
- 在函数外部无法使用
- LEGB原则
- L(Local)局部作用域
- E(Enclosing function locale)外部嵌套函数作用域
- G(Global module)函数定义所在的模块作用域
- B(Buildin)python内置模块的作用域
- 提升局部变量为全局变量
- 在变量定义时使用global关键字
def fun():
global a # 先定义全局变量
a = 1 # 后进行赋值
fun()
print(a) # -> 1
- globals, locals函数
- 可以通过这两个函数显示出全局变量和局部变量
最新文章
- 从ASP.NET 升级到ASP.NET5(RC1) - 翻译
- CSS 重设文章
- Activiti学习(一) 环境搭建
- 20135316王剑桥 linux第五周课实验笔记
- vs c++ 将string转换为double
- jQuery--each遍历使用方法
- HTML语义化标签(一)
- 如何使用WCF调试器WcfTestClient.exe
- Effective Java从零开始 - 就是爱Java
- .bash_profile与.bashrc和.profile的区分概念
- 控件编写:增强 TMEMO (一)(增加对WM_HSCROLL消息的处理)
- Android WiFi管理(WIFI_SERVICE)
- 极化SAR图像基础知识(1)
- 通过demo学python
- Python编码规范(PEP8)及奇技淫巧(不断更新)
- Python--day04(流程控制)
- 控制结构(11): Continuation passing style(CPS)
- CSS:与input相关的一些样式设置问题
- html 表格边线设置
- full gc频繁的分析及解决案例
热门文章
- net图片转格式
- java.lang.ArrayIndexOutOfBoundsException: 160
- Visual Studio 2017 安装失败,你们有这样的问题吗?怎么解决
- Hibernate课程 初探多对多映射1-1 多对多应用场景
- 一张图看懂offsetX, clientX, pageX, screenX的区别
- ASP.NET MVC 音乐商店 - 2.控制器
- 夜色的 cocos2d-x 开发笔记 00
- JavaScript平台Platypi悄然登场
- [Maven]Eclipse集成遇到的问题
- COGS 678. 双重回文数