show | version | enable_checker |
---|---|---|
step |
1.0 |
true |
- 上次了解了 帮助文档的 生成
- 开头的三引号注释 可以生成 帮助文档
- 文档 可以写成网页
- python3 本身
- 也有 在线的帮助手册
- 但 目前的网页
- 并没有解决 程序可读性的问题
- 有
什么
方法- 可以让程序 更可读么?🤔
- 首先
- 在变量名上想办法
- 名字
- 本身就有某些含义
- 具有某些可读性
- 可以把
- a 换成 apple
:4,10s/a/apple/gc
- b 换成 banana
:11,17s/b/banana/gc
- a 换成 apple
- 变量名 变长
- 并不会让 程序变慢
- 只是 换个 指向同一盒子空间的名字 而已
- python 是动态类型的
- 什么是
动态类型
呢?- 去游乐场看看
- 什么是
- 动态类型
- 有的时候指向整型数字
- 有的时候又指向字符串
- 到底是指向什么的类型?
- 这两种类型 其实在内存里 不一样
- 数字 是把具体的数值 变成二进制形态
- 存在 内存盒子中
- 字符串 是把字符串中每个字符的 ascii二进制值
- 存在 内存盒子中
- 数字 是把具体的数值 变成二进制形态
- 这种指向类型
- 可以从整型数字
- 变
动
到字符串的 - 就是
动
态类型
- python 是 一门动态类型语言
- 那有没有 静态类型呢?!
- c语言 就是 静态类型语言
- 声明了 a是一个整型数字
- 不能再将a声明为字符串
- 变量的声明是编程语言的核心
- 静态类型
- 声明之后
- 数值 可以改变
- 类型 不再改变
- 提高效率
- 需要在编程前思考清楚
- 类型错了
- 编译都无法通过
- 声明之后
- 动态类型
- 声明之后
- 类型可以改变
- 自主灵活
- 但容易出错
- 声明之后
动态 | 静态 |
---|---|
PHP | C/C++ |
Ruby | JAVA |
Python | C# |
- 动态类型语言里 解释脚本语言多
- 类型 全靠 想当然
- 因为 不需要编译
- 能解释 就行
- 自由 散漫
- 不怎么 追求明确
- 这种灵活性
- 是 python 被叫做胶水语言(glue Language)的原因
- 动态语言一时爽
- 后期重构火葬场
- 不同语言声明变量的语法不一样
- 看看下面这些语言
语言 | 声明 |
---|---|
vb | Dim sum As Integer |
c/c++ java c# | int sum; |
Pascal Delphi | sum:Integer; |
Javascript | var sum; |
- 可以看出静态类型都很明确
- 动态类型就很模糊
- 不知道到底用的是什么类型
- python 虽然是动态语言
- 但是类型这个事情
- 我们一定要在脑子里明确
- 甚至在源代码层面明确
- 虽然 python 可以不在乎数据类型
- 可是我们必须明确数据类型
- 这个时候就需要自省
- introspection
- introspectation
- intro
- 向内的
- spectation
- 来自 *spec-
- 看
- intro
- 向内看就是自省
- 怎么自省呢?
- 自省
- 知道自己是干嘛的
- 知道了之后有什么用呢?
- 自省之后可以知道自己的类型
- 不同类型有不同的函数和运算方式
- 可以在名字上刻意提醒自己吗?
- 把类型写在变量名上
- 从而提高可读性
- s
- 字符串
- string
- i
- 整型数字
- integer
- 这样变量不但有了明确的语义
- 而且明确了数据类型
- 更容易发现错误
- 再明确一下这两个前缀
-
s前缀
- 意思来自于string
- 代表变量是字符串型的
-
i前缀
- 意思来自于integer'
- 代表变量是整型的
-
这样变量名
- 不但包含了变量含义
- 而且包含了变量的类型
- 甚至可以包括描述信息
- 这种标识变量类型的方法来自于哪里呢?
- 匈牙利命名法
- 匈牙利命名法
- 命名惯例本来是小驼峰的
- 现在改成蛇形的
- 这样就可以
- 明确知道变量的数据类型了
- 可是这个和匈牙利有什么关系呢?
- 查尔斯·西蒙尼
- 生于匈牙利布达佩斯
- 和冯·诺依曼一个地方
- 父亲是布达佩斯大学电气工程教授
- 研发了核粒子加速器
- 他从小就在计算机实验室做兼职
- 他研发了编译器并卖给了政府
- 17岁
- 离开了匈牙利
- 在丹麦写ALGOL的编译器
- 后来去了美国
- 在施乐公司
- Butler Lampson推动下
- 开发了第一个所见即所得文档准备程序
- WYSIWYG /ˈwɪziwɪɡ/
- 原来都是用代码模式编辑富文本文档
- 此后可以所见即所得
- Butler Lampson推动下
- 微软公司
- 1981年拜访比尔盖茨
- 从此加盟微软
- 主导word和excel的研发
- 并提出匈牙利命名法
- 匈牙利命名法
- 明确变量类型
- 这对于运算特别重要
- 由于变量类型不同
- 他们的运算结果就会不同么?
- 确实可以是不同的
- input 函数得到的是什么类型呢?
- 得到的这个东西
- 好像是字符串类型的
- 可是我们要的是整数类型啊?
- 怎么办?
- 使用 int 函数就可以完成相应的转化
- 那么 这个 int 函数到底是什么意思来着?
- help(int)
- 就是可以把 str 类型的变量转化为 int 型的变量
- 总之就是好用
- 我要把这个整合到我们的程序中
- 这次直接修改代码
- 增强程序的可读性
- 让变量标识符具有明确的语义
- 把变量的类型明确标记在标识符上
- 就像把缩进作为程序块的分界一样
- 明确起来
- 明确了静态语言和动态语言
- python 属于要求没有那么严格的语言
- 这对于初学者很友好
- 无需明白变量是怎么存储的
- 不过很多时候也容易不明所以
- 想要真正成为编程高手
- 不但要明确变量的数据类型
- 而且要知道这数据类型是怎么存储的
- 现在我们来了解数据具体是怎么存储的
- 从哪种数据类型开始呢?🤔
- 下次再说!👋