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函数
- 可以通过这两个函数显示出全局变量和局部变量
Python变量、赋值及作用域的更多相关文章
- Python变量赋值的秘密
在Python中,我们令一个变量等于另外一个变量时,并不是把值传递给它,而是直接把指向的地址更改了.我们想要查看一个变量在内存中的地址,可以通过id(变量) 来查看.我们通过一个小例子来看看这个有趣的 ...
- Python 变量赋值
- Python 变量(赋值,数据类型,数据类型转换)
一.python 变量赋值方式有三种: 1.直接赋值:age = 28 2.多个变量赋值 age, sex = 28, 1 #每个变量都必须要有个对应的值 3.特殊形式的赋值(链式赋值) a = ...
- python变量的内存机制
python变量的内存机制 作为一门简单易用的语言,且配备海量的库,python可谓是程序员手中的掌中宝,编程本身就是一种将人类思维转化为计算机思维的技术,如果不需要去追求极致的运行效率同时又不限制于 ...
- python 变量、列表、元组、字典
python 变量.列表.元组.字典 1.python 变量赋值 2.ptython 列表 3.python 元组 4.python 字典 1. Python变量赋值 1.1变量的命名规 ...
- Python 变量详解[学习 Python 必备基础知识][看此一篇就够了]
您的"关注"和"点赞",是信任,是认可,是支持,是动力...... 如意见相佐,可留言. 本人必将竭尽全力试图做到准确和全面,终其一生进行修改补充更新. 目录 ...
- Python变量与基本数据类型
Python变量与基本数据类型 前言 好了,从本章开始将正式进入Python的学习阶段.本章主要介绍的是Python变量与基本数据类型的认识,这些都是最基本的知识并且必须要牢靠掌握在心中. 注释 学习 ...
- Python变量作用域(一)
在一个程序中使用变量名时,Python创建.改变或者查找变量名都是在所谓的命名空间中进行的.作用域指的就是命名空间. Python中的变量名在第一次赋值时已经创建,并且必须经过赋值后才能够使用.由于变 ...
- python——变量作用域及嵌套作用域
----------------------------------------------------------------------------- 前言-------------------- ...
随机推荐
- MVC 模型过滤
通用返回模型 /// <summary> /// WebApi返回数据的泛型类 /// </summary> /// <typeparam name="T&qu ...
- DIV+CSS图片不间断滚动jquery特效(Marquee插件)及移动标签marquee整理
推荐一个jQuery的无缝文字滚动效果,同时也可以滚动图片,也叫做跑马灯效果. 此jquery插件,依托jquery库,能实现各种滚动效果,且让HTML代码符合W3C标准. marquee标签:创建一 ...
- C# WinForm拖入文件到窗体,得到文件路径
private void textBox1_DragDrop(object sender, DragEventArgs e) { if (e.Data.GetDataPresent(DataForma ...
- 三、gridView增删改查
1. 新增或修改一条数据 1.1 添加 新增或修改按钮 <div style="width: 120px; float: right; padding-top: 3px"&g ...
- 浅析sorted函数中的key
在python编程中,常对数据进行各种处理,排序尤为重要.但是在使用sorted内置函数时,我们发现它有三个参数. 第一个参数为可迭代数据,可以为一个字符串,数组,列表等等. 第三个为是否倒置输出. ...
- 设计模式之工厂模式详细读后感TT!(五)
一如既往:原文 工厂方法(factory method)模式的意义是定义一个创建产品对象的工厂接口, 将实际创建工作推迟到子类当中. 核心工厂的创建, 这样核心类成为一个抽象工厂角色, 仅仅复制工厂子 ...
- [RabbitMQ]Windows环境下rabbitmqclt(Command Line Tools)出现Erlang distribution failed错误的解决方法
摘要 当使用rabbitmqctl时出现Erlang distribution failed,把%SystemRoot%Windows\System32\config\systemprofile下的. ...
- 【起航计划 015】2015 起航计划 Android APIDemo的魔鬼步伐 14 App->Activity->Translucent Blur 模糊背景
这个例子和Translucent不同的一点是Blur,也就是显示在当前Activit背后的其它Activity以模糊方式显示. 这是通过window对象Flag来设置的. // Have the sy ...
- 悟空crm-0.5.4 (OpenLogic CentOS7.2)
平台: CentOS 类型: 虚拟机镜像 软件包: 5kcrm0.5.4 centos7.2 lamp stack 5.6.22 commercial crm lamp 服务优惠价: 按服务商许可协议 ...
- MySQL数据库实验六:存储过程建立与调用
实验六 存储过程建立与调用 一.实验目的 理解存储过程的概念.建立和调用方法. 二.实验环境 三.实验示例 1.定义一个函数,按性别计算所有学生的平均年龄. CREATE FUNCTION aver ...