python: 变量

一、变量定义

变量定义之后,后续就可以直接使用了,变量名只有在第一次出现才是定义变量。
1、在Python中,每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
2、= 用来给变量赋值,左边是一个变量名,右边是存储在变量中的值,即:变量名=值

二、变量的类型

1、在Python中,定义变量不需要指定变量的类型,在运行的时候,Python解释器会根据赋值语句等号右侧的数据自动推导出变量中保存的准确类型。
2、在Python2.x中,整数根据保存数值的长度还分为:
int(整数)
long(长整数)
3、type函数可以查看一个变量的类型(在终端运行时使用)
4、不同类型变量之间的计算
1)数字型变量之间可以直接计算
(a)在Python中,两个数字型变量是可以直接进行算数运算的
(b)如果变量是bool型,在计算时
True 对应的数字是 1
False 对应的数字是0
2)字符串变量之间使用 + 拼接字符串,不能直接相乘
在这里插入图片描述
3)字符串变量可以和整数使用 * 重复拼接相同的字符串
“#” * 30

三、变量的引用

1、变量的引用

  • 变量和数据都是保存在内存中的
  • 在python中函数的参数传递以及返回值都是靠引用传递的

2、引用的概念

在python中:

  • 变量数据是分开储存的
  • 数据保存在内存中的一个位置
  • 变量中保存着数据在内存中的地址
  • 变量记录数据的地址,就叫做引用
  • 使用 id() 函数可以查看变量中保存数据所在的内存地址

注意:如果变量已经被定义,当给一个变量赋值的时候,本质是修改了数据的引用

  • 变量不再对之前的数据引用
  • 变量改为对新赋值的数据引用

四、可变和不可变类型

  • 不可变类型,内存中的数据不允许被修改:
    (1)数字类型,int, bool, float, complex, long(2,x)
    (2)字符串 str
    (3)元组 tuple
  • 可变类型,内存中的数据可以被修改:
    (1)列表 list
    (2)字典 dict,字典的key只能使用不可变类型的数据
    注意
  1. 可变类型的数据变化,是通过 方法 来实现的
  2. 如果给一个可变类型的变量,赋值了一个新的数据,引用会修改
    • 变量 不再 对之前的数据引用
    • 变量 改为 对新赋值的数据引用

五 哈希 (hash)

  • Python 中内置有一个名字叫做 hash(o) 的函数
    • 接收一个 不可变类型 的数据作为 参数
    • 返回 结果是一个 整数
  • 哈希 是一种 算法,其作用就是提取数据的 特征码(指纹)
    • 相同的内容 得到 相同的结果
    • 不同的内容 得到 不同的结果
  • Python 中,设置字典的 键值对 时,会首先对 key 进行 hash 已决定如何在内存中保存字典的数据,以方便 后续 对字典的操作:增、删、改、查
    • 键值对的 key 必须是不可变类型数据
    • 键值对的 value 可以是任意类型的数据

六 局部变量和全局变量

6.1 局部变量

  • 局部变量 是在 函数内部 定义的变量,只能在函数内部使用
  • 函数执行结束后,函数内部的局部变量,会被系统回收
  • 不同的函数,可以定义相同的名字的局部变量,但是 彼此之间 不会产生影响
局部变量的作用
  • 在函数内部使用,临时 保存 函数内部需要使用的数据
局部变量的生命周期
  • 所谓 生命周期 就是变量从 被创建被系统回收 的过程
  • 局部变量函数执行时 才会被创建
  • 函数执行结束后 局部变量 被系统回收
  • 局部变量在生命周期 内,可以用来存储 函数内部临时使用到的数据

6.2 全局变量

  • 全局变量 是在 函数外部定义 的变量,所有函数内部都可以使用这个变量
    注意:函数执行时,需要处理变量时 会:
  1. 首先 查找 函数内部 是否存在 指定名称 的局部变量如果有,直接使用
  2. 如果没有,查找 函数外部 是否存在 指定名称 的全局变量如果有,直接使用
  3. 如果还没有,程序报错!
1) 函数不能直接修改 全局变量的引用
  • 全局变量 是在 函数外部定义 的变量(没有定义在某一个函数内),所有函数 内部 都可以使用这个变量

提示:在其他的开发语言中,大多 不推荐使用全局变量 —— 可变范围太大,导致程序不好维护!

  • 在函数内部,可以 通过全局变量的引用获取对应的数据
  • 但是,不允许直接修改全局变量的引用 —— 使用赋值语句修改全局变量的值
2) 在函数内部修改全局变量的值
  • 如果在函数中需要修改全局变量,需要使用 global 进行声明
3) 全局变量定义的位置
  • 为了保证所有的函数都能够正确使用到全局变量,应该 将全局变量定义在其他函数的上方
4) 全局变量命名的建议
  • 为了避免局部变量和全局变量出现混淆,在定义全局变量时,有些公司会有一些开发要求,例如:
  • 全局变量名前应该增加 g_ 或者 gl_ 的前缀

七、知识点回顾

数据类型数据类型中文
数字型bool布尔(真 True 非0数 => 假 False 0)
数字型int整数
数字型float浮点数(小数)
数字型complex复数型
非数字型str字符串
非数字型list列表
非数字型tuple元组
非数字型dictionary字典
  • Python中数据类型分为 数字型非数字型
  • 数字型
    整型(int)
    浮点型(float)
    布尔型(bool)
    真 True 非0数 – 非零即真
    假 False 0
    复数型(complex):主要用于科学计算,例如:平面场问题
  • 非数字型
    字符串
    列表
    元组
    字典
  • 在Python中,所有非数字型变量都支持以下特点:
    1、都是一个序列 sequence,也可以理解为 容器
    2、取值 [ ]
    3、遍历 for in
    4、计算长度、最大/最大值、比较、删除
    5、链接 + 和 重复 *
    6、切片
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值