支付宝|变量,是如何变?如何不变的?

文章图片
【支付宝|变量,是如何变?如何不变的?】
文章图片

文章图片

文章图片

文章图片
概述:很多教材中 , 开篇都是讲数据类型 , 整型 , 浮点型 , 字符串……通篇的概念 , 感觉处处都是重点 , 而又抓不到重心 , 这些理论 , 都是为变量做铺垫 。 python对数据类型做了简化 , 与现实生活中的应用一一对应 , 整数-整形 , 小数-浮点型 , 名词-字符串 , 对与错-布尔值 。 变量间接地涵盖了python的所有概念 , python的核心是\"对象\" , 而变量就是用来呈现对象 , 例如 , a = 'hello' , 字符串str是内建类 , 'hello'是str类的实例 , 将字符串赋值给a , 即完成了变量的定义 , 为对象的调用做好准备 。
变量命名1、变量名不能与python的关键字相同 ,
2、变量名只能由字母、数字、下划线组成(汉字也可以 , 不建议使用)
3、变量名第一个字符不能为数字 , 可以为字母或者下划线
4、大小写敏感 , name、Name、NAME都是不同的变量名
5、建议使用使用驼峰命名法 , 做到\"见名知意\"
数据类型1、整型--int(x)
即整数 , 包含正负整数 , py3没有限制大小 , 不存在长整型概念 , 可以用八进制和十六进制表示 , 例如八进制0o24表示十进制20 , 即8 * 2 + 4 = 20 , 注意:0o , 第一个是零 , 第二个是\"ou\"
2、浮点型--float(x)
即小数 , 两数相除 , 返回类型为浮点型 , 例如4 / 2 , 返回值为2.0;整数与浮点数的运算 , 返回结果为浮点数 , 所以需要注意数据间的转换
3、复数--complex(x y)
更多的应用于矢量的运算 , 常见于微电子、科学运算等
4、字符串--str(m)
最常用的数据类型 , 变量覆盖python的九成 , 那字符串覆盖变量的九成 , 特点:数据内容处于单引号或者双引号之间 , 操作方法比其他类型多很多
5、列表--list()
有序可变容器 , 用中括号[
表示 , 可以容纳所有的数据类型 , 建议:同一个列表中的元素 , 最好是同样的数据类型 , 便于迭代中使用统一的方法进行批量化处理数据 , 另外 , 很多模块返回的数据 , 都是以列表的形式返回的 , 例如关键字模块返回的信息
6、元组--tuple()
有序不可变容器 , 用括号()表示 , 也可以容纳所有的数据类型 , 其中的数据是无法修改的 , 确保数据的完整性 , 如果需要处理其中的数据 , 可以用list()方法转换为列表进行处理;如果是单个元素的元组 , (m) , 必须有逗号!
7、字典--dict()
键值对容器 , {key: value , 常用于数据标题 , 与数据内容的配对呈现 , 例如定义学生 , {'name': 'Tom' 'age': 18 , 数据\"平面化\"呈现 , 查询速度很快 , 这点和list不一样 , list会随着数据增加而导致查询减慢 , 属于\"深度化\"数据
8、集合--set()
无序无重可变容器 , 用大括号{表示 , 为了区别于空字典{ , 空集合必须用set()创建 , 往往用来给list去重 , 当然 , 它和数学中的集合一样 , 可以进行各种集合运算:交集 , 并集 , 子集……如果需要创建不可变集合 , 可以使用frozenset()方法
变量的变与不变变量最大的\"魅力\"是\"以不变应万变\" , 例如a = 10 , a = 20 , a = \"abc\" , a = function() , 同样的变量 , 可以指向不同的数据类型或者不同的数值 。
实例证明 , 同一个变量名 , 是以最后指向为准 , 变量的指向性 , 是通过存储机制中的堆区和栈区实现 , 当我们创建数据的时候 , 堆区会开辟空间来存储 , 这个空间便是内存地址 , 然后将栈区的变量a指向内存地址 。 利用这一点 , 可以通过条件设置同名不同值变量 , 实现逻辑的简化 。
变量的这点\"魅力\" , 往往会造成迷惑 , 随着代码量级的增加 , 在不同的功能中 , 定义了相同的变量 , 会导致输出结果异常 , 这种情况下 , 我们要让变量\"不变\" , 之前提到过 , 模块、类、函数是容器 , 用来实现不同的功能 , 同名变量在不同容器中不会冲突 , 这就是变量的作用域 , 总共有四种:局部作用域、闭包函数外的函数中、全局作用域、内建作用域(模块中的变量)
这就是利用容器 , 将同名变量进行隔离 , 实现了变量的\"不变\" , 对于我们应用而言 , 如无必要 , 要尽可能避免命名同名变量 。
数据类型的方法很多人发现 , 只讲了数据类型的特点 , 没有讲到数据类型的方法 , 鉴于方法更侧重于应用 , 最快的学习方法就是实践应用 , 所以我把知识点摘录出来贴到墙上 , 随用随看 , 慢慢地就掌握了 。
最后谈到变量 , 还有很多内容 , 例如python垃圾回收机制 , 堆和栈的存储机制 , global和nonlocal应用等等 , 限于篇幅 , 无法全面展开来讨论 , 这些进阶知识 , 后续再逐步完善!
推荐阅读
- 菜籽饼|菜籽饼被誉为果园之宝,但用错了烧苗烧根,果农如何来使用?
- 这样做的土豆丝饼巨好吃!土豆的宝藏做法
- 苦瓜炒肉加一宝,这种做法还是第一次,开胃又下饭,一大盘不够吃
- 柳州|泪别天使宝宝!柳州1岁大婴儿捐器官救2人
- 花生米的新做法,吃起来嘎嘣脆,宝贝们都爱吃的小零食
- 轻松的周末,家常炸小黄花鱼!
- 乳糜胸|出生自带“干粮”?小宝宝的胸腔里居然藏着“牛奶”!
- 比核桃还补脑,随手一煎又香又嫩,不怕娃没食欲~宝宝辅食
- 让宝宝更聪明、长身体,选对食材很重要!它便宜又营养
- 美食推荐:栗子红烧肉,八宝肉丁,老干妈蒸鸡腿,酱香鱿鱼须的做法
