[oeasy]python0070

您所在的位置:网站首页 静态网站是什么意思 [oeasy]python0070

[oeasy]python0070

2023-07-11 13:11| 来源: 网络整理| 查看: 265

动态类型_静态类型回忆上次内容

上次了解了 帮助文档的 生成

开头的三引号注释 可以生成 帮助文档

文档 可以写成网页

python3 本身

也有 在线的帮助手册

目前的程序

提高了 可读性

还有什么方法

可以让程序 更可读么?🤔

可以 根据 变量名

知道 变量类型 吗?

动态类型 - dynamic type

编写一个test.py

运行结果

age变量 的类型

从 整型数字

转变为 字符串

同一变量名age 指向的类型

可以从整型数字

变动到 字符串

就是动态类型

python 是 一门

动态类型语言

那有没有 静态类型呢?!

静态类型 - static type

编辑 test.c

:w|!gcc %

保存并且

用外部命令gcc 编译当前文件

编译失败

test.c中声明了

age 是 整型变量

不能 再将

字符类型’1’

赋给变量age

变量类型一旦被声明

就不能动了

这就是 静态类型

c 是 一门

静态类型语言

静态类型 vs 动态类型

变量类型 是

编程语言的核心

静态类型

类型错了

编译都无法通过

数值 可以改变

类型 不再改变

提高效率

声明类型 之后

需要在编程前思考清楚

动态类型

类型 还可以改变

自主灵活

声明之后

但 容易忘记 变量类型

导致 出错

动态静态PHPC/C++RubyJAVAPythonC#

动态类型的优势

动态类型语言里

不怎么 追求明确

因为 不需要编译

能解释得通 就行

解释脚本语言多

类型 全靠 解释器

自由 散漫

这种灵活性

容易和各种其他编程语言 配合

跑起来很容易

导致python

而且

这就是 python 被叫做

胶水语言(glue Language)的原因

各种语言

是怎么声明变量的呢?

声明演示

不同语言

声明变量的语法不一样

看看下面这些语言

语言声明vbDim sum As Integerc/c++ java c#int sum;Pascal Delphisum:Integer;Javascriptvar sum;

可以看出

不知道到底用的是什么类型

静态类型都很明确

动态类型就很模糊

python 虽然是动态语言

但是 类型这个事情

一定要明确

最好 在源代码层面明确

否则

动态语言 一时爽

后期重构 火葬场

自省 introspection

虽然 python中 变量声明

可以不在乎数据类型

可是

我们必须明确 数据类型

这个时候 就需要自省

introspection

introspectation

来自 *spec-

向内的

intro

spectation

向内看就是自省

怎么自省呢?

type函数

type就是类型

自省

知道自己是干嘛的

是什么类型额

知道了之后有什么用呢?

自省之后

自省之后

知道了自己的类型

不同类型 的变量

有不同的成员函数 和 运算方式

可以在变量名上

刻意提醒 吗?

刻意提醒

把类型作为前缀

integer

整型数字

string

字符串

明确写在变量名上

从而提高可读性

s

i

这样变量

不但 有了 明确的语义

而且 明确了 数据类型

更容易 发现错误

再明确一下这两个前缀

前缀

s前缀

意思来自于string

代表变量是字符串型的

i前缀

意思来自于integer’

代表变量是整型的

这样变量名

不但包含了变量含义

而且包含了变量的类型

甚至 可以包括 描述信息

这种 标识 变量类型的方法

来自于哪里呢?

匈牙利命名法

匈牙利命名法

将类型 作为 变量名前缀

匈牙利命名法

命名惯例 本来是小驼峰的

现在根据python的命名惯例(name convention)

改成蛇形的(snake case)

这样就可以

明确知道 变量的数据类型 了

可是 这个和匈牙利

有什么关系呢?

匈牙利命名法由来

查尔斯·西蒙尼

和 冯·诺依曼 一个地方

生于 匈牙利 布达佩斯

父亲 是 布达佩斯大学 电气工程教授

研发了 核粒子加速器

西蒙尼 从小 就在计算机实验室 做兼职

去了美国

离开了匈牙利

在丹麦写ALGOL的编译器

并卖给了政府

研发了 编译器

17岁

后来

后来

在施乐公司

开发了第一个所见即所得文档准备程序

WYSIWYG /ˈwɪziwɪɡ/

Butler Lampson推动下

原来

都是 用代码模式 编辑富文本文档

此后

可以 所见即所得

1981年

遇到 比尔盖茨

从此 加盟微软

主导 word和excel的研发

并倡导 匈牙利命名法

匈牙利命名法

明确 变量类型

这对于 运算特别重要

由于 变量类型不同

就会不同么?🤔

运算结果

运算结果

类型不同

确实 运算结果是不同的

input 函数

返回得到的 变量 是什么类型 呢?

input 函数返回值类型

input函数 返回值的类型

好像是字符串类型的

可是

需求要的是 整数类型 啊?

怎么办?

转化函数

使用 int 函数

就可以完成相应的转化

那么 这个 int 函数

到底是 什么意思 来着?

查询函数

help(int)

int函数

可以把 str 类型的变量

转化为 int 型

要把这个int函数

整合到程序中

整合程序

修改如下

可以从变量名上

明确读出 变量类型了

总结

这次 分辨了

静态语言

动态语言

python 属于

对类型要求 没有那么严格的 动态语言

这对于 初学者很友好

无需明白变量 是 怎么存储的

不过很多时候 也容易弄不清变量类型

直接 修改代码

把缩进 作为程序块的分界一样

明确起来

明确标记在 变量名上

增强 程序的可读性

把变量的类型

就像

想要 真正成为编程高手

知道 这数据类型

是怎么存储的

明确 变量的数据类型

不但 要

而且 要

想要 了解数据

是怎么存储的

从 哪种数据类型 开始呢 ?🤔

下次再说!👋

蓝桥->https://www.lanqiao.cn/courses/3584

github->https://github.com/overmind1980/oeasy-python-tutorial

gitee->https://gitee.com/overmind1980/oeasypython



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3