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