浮点运算中的(int)前缀实际上在做什么?

2024-10-01 13:38:18 发布

您现在位置:Python中文网/ 问答频道 /正文

在一些示例代码中,我看到使用了以下语法:

float1 = 7.0
float2 = 2.0
result = (int)(float1/float2)

重点似乎是将结果强制为整数,但我找不到任何地方记录正在使用的(int)语法,或者为什么它比int(float1/float2)更好。对int()本身的调用应该返回0,但是(0)(float1/float2)抛出一个TypeError并抱怨0不是可调用的。很明显,解释器正在尝试执行int()引用,但我不清楚为什么它希望在那里找到一个可调用的。你知道吗

有人能给我指一些关于这个语法的文档吗?你知道吗


Tags: 代码文档重点示例地方记录语法整数
3条回答

(int)计算为int,所以

result = (int)(float/float2)

与相同

result = int(float/float2)

不建议在空变量名周围放置不必要的括号。你知道吗

在这个代码中:result = (int)(float/float2)

(int)是一个表达式,对其求值以返回int函数。然后用一个参数调用,表达式float/float2。你知道吗

它不适用于(0),因为该表达式的结果是一个数字,它不是一个可调用的类型,与TypeError状态完全相同。你知道吗

无论是谁编写了这些代码,都有太多的机会接触到比Python更接近C的语言。在C、C++、爪哇、C等中,^ {CD1}}是将^ {< CD2> }转换为^ {CD3}}的语法。在Python中,拼写int(something)的方式很奇怪。int是将something转换为int的内置函数。你知道吗

一般来说,其他表达式<expr>的Python表达式(<expr>)的计算结果与<expr>相同。paranethes只能影响优先级,但在本例中它们不会。同样地,<expr>(...)计算<expr>,然后调用结果注意<expr>也可以是任何表达式,它不限于简单的函数名。你知道吗

(x)(y)x(y)相同。(int)(y)有效是因为int(y)有效。(0)(y)不起作用,因为0(y)不起作用。你知道吗

相关问题 更多 >