为了账号安全,请及时绑定邮箱和手机立即绑定

Python 如何从 Double 中分辨出 Int

Python 如何从 Double 中分辨出 Int

扬帆大鱼 2021-07-30 01:40:15
所以在我们关于组装的演讲幻灯片中,我们有:C、A 和 B 的高级语言数据类型从几种选择(整数、浮点)中确定正确的电路,用于执行“+”运算现在在像 Python 这样的语言中,我没有指定变量的类型。我想知道语言如何编译(解释,我认为是它所做的)到汇编并选择正确的电路?
查看完整描述

3 回答

?
RISEBY

TA贡献1856条经验 获得超5个赞

每个 Python 变量都是对对象的引用。该对象包括变量的类型信息。例如,当我们反复重新分配x“on the fly”的值和类型时,只需浏览一些可能性:


for x in [1, 1.0, "1", [1]]:

    print(x, type(x))

输出:


1 <class 'int'>

1.0 <class 'float'>

1 <class 'str'>

[1] <class 'list'>

如果您想知道 Python 如何判断它1是一个 int1.0还是一个浮点数,这从输入字符串中很明显。语言处理器通常包含一个可以区分语言标记的标记器,以及在语言语法中解释这些标记的另一个模块。int 和 float 对象具有不同的标记格式……字符串、标点符号、标识符和任何其他语言元素也是如此。


如果您想了解有关该级别详细信息的更多信息,请研究如何解析计算机语言:大多数技术适用于大多数语言。


查看完整回答
反对 回复 2021-08-03
?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

正如 nm 在您的帖子下方评论的那样,变量在 Python 中没有类型。价值观。

至于在键入以下内容时如何确定整数与浮点数:

x = 1.5
y = 2

这是在解析阶段确定的。编译型语言和解释型语言实际上以相同的方式开始。

将代码发送到解释器/编译器的一般流程如下:

[source code] --> lexical analyzer --> [tokens] --> parser --> [abstract syntax tree] -->

解析器步骤检查诸如 'x' '=' '1.5' 之类的标记,并查找指示不同类型文字(如整数、浮点数和字符串)的模式。当实际的解释器/编译器获得抽象语法树(程序的树表示)时,它已经知道存储在 x (1.5) 中的值是一个浮点数。

所以需要明确的是,这部分过程对于解释器和编译器在概念上是相同的。


查看完整回答
反对 回复 2021-08-03
  • 3 回答
  • 0 关注
  • 214 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号