摘要:age = 1 print(age, type(age))age = "1" print(age, type(age))
动态类型_静态类型
回忆上次内容
上次我们编写了一个加法运算程序
明了 胜于 晦涩
explicit is better than implicit
指的是变量类型 要明了
难道还有变量类型晦涩的情况??🤔
类型隐式转化
F12调出浏览器的调试器
点击控制台
控制台里输入
1 + "2"
结果是12
1 被隐式地转化为字符串类型了
数据的类型 会自动转化?!🤫
弱类型
javascript 这种 自动转化类型的语言
就是 弱类型的语言
weakly typed
和弱相对的是强
strongly typed
比如python
讲究 明了大于晦涩
不能自动转化
另一种区分维度
与强类型、弱类型这个维度类似的是
动态语言 、 静态语言
Dynamic、static
这如何理解?
动态类型 - dynamic type
编写一个test.py
age = 1 print(age, type(age))
age = "1" print(age, type(age))
运行结果
age变量 的类型
从 整型数字
转变为 字符串
同一变量名age 指向的类型
可以从整型数字
变动到 字符串
就是动态类型
python 是 一门
动态类型语言
那有没有 静态类型呢?!
静态类型 - static type
老前辈 c语言
就是静态类型的
void main(void){ int age = 1; char age = '1';
}
编辑 test.c
:w|!gcc %
保存并且
用外部命令gcc 编译当前文件
编译失败
test.c中声明了
age 是 整型变量
不能 再将
字符类型'1'
赋给变量age
变量类型 一旦被声明
就不能动了
这就是 静态类型
c 是 一门
静态类型语言
静态类型 vs 动态类型
变量类型 是
编程语言的核心
静态类型
类型错了
编译都无法通过
数值 可以改变
类型 不再改变
提高效率
声明类型 之后
需要在编程前思考清楚
动态类型
类型 还可以改变
自主灵活
声明之后
但 容易忘记 变量类型
导致 出错
如果你是变量
你愿意 一辈子一个类型 数值变化
还是 一辈子 可以在各种类型之间切换?
动态类型的优势
动态类型语言里
不怎么 追求明确
全靠 解释器
就能解释得通 就行
类型 不需要编译
自由 散漫
解释脚本类居多
这种灵活性
容易 和各编程语言 配合
跑起来很容易
导致python
而且
这就是 python 被叫做
胶水语言(glue Language)的原因
类型选择
越讲求效率
越静态 严格约束
静态
c python
rust javascript
java ruby
越灵活
越讲求开发速度
越动态
类型强弱
强类型语言
不允许隐式的类型转换
为什么 c是弱类型?
c语言
因为c 很严格
有好几档整型变量
短整型、整型、长整型...
对应不同字节
支持自动转化
所以是弱类型
c语言并不是纯粹的强类型或弱类型语言
隐式类型转换
灵活的指针类型转换
显式类型声明
严格的类型检查
而是介于两者之间
某些方面表现出强类型的特性
在其他方面则表现出弱类型的特性
总结
这次 分辨了 语言类型
静态类型、动态类型
强类型、弱类型
python
属于 动态类型、强类型 语言
对 初学者很友好
类型 容易 混淆
整型变量(int) 为什么叫做 int 呢?🤔
下次再说!👋
蓝桥->https://www.lanqiao.cn/courses/3584
github->https://github.com/overmind1980/oeasy-python-tutorial
gitee->https://gitee.com/overmind1980/oeasypython
来源:小贺科技讲堂