当前位置: 首页 > 知识库问答 >
问题:

python里为啥int用的位置不同结果不同?

马泓
2023-11-04

!第一张图是在计算前把用int把input的字串符转变成整数计算结果和图二在计算过程中用int最后结果不同,但是用float的话结果就和图一一样了,求解答。

共有2个答案

唐弘厚
2023-11-04

在 python 里,3 / 4 = 0.75 。int(3) / int(4) = 0.75 。

但是 int(3 / 4) = 0 。

所以,cx = ax / a0 * 2 之后,int(cx) 跟 cx 可能不相等。但 float(cx) 和 cx 是相等的。

柳鸿博
2023-11-04

当你在Python中使用int()函数时,你是在将一个值转换为整数,这可能会进行一些数据丢失或截断。

在第一张图中,你先把输入字符串通过int()转化为整数,然后再进行计算。这样做的结果是,输入的字符串必须是可以被解析为一个整数的值,例如"123"或"0xff"。如果字符串不能被解析为整数(例如"123.45"或"abc"),那么int()函数会引发一个错误。

在第二张图中,你是在计算过程中直接对一个浮点数使用int()函数。这会将浮点数向下取整到最近的整数。例如,int(123.45)的结果是123。

这就是为什么在两种情况下使用int()函数会导致不同的结果。

至于你提到的使用float()函数,这个函数是将输入转换为浮点数(即小数)。所以,如果你输入的字符串可以被解析为浮点数,那么float()函数会成功转换,否则也会引发错误。

这就是为什么在将字符串转换为数字时,要先了解字符串能否被解析为数字,以及你的程序需要的是整数还是浮点数。

 类似资料:
  • 问题内容: 当左花括号在新行上时,返回,并且警报中显示“ no-it break:undefined”。 当花括号与处于同一行时,将返回一个对象,并警告“奇妙”。 问题答案: 这是JavaScript的陷阱之一:自动分号插入。不以分号结尾但可能是语句结尾的行会自动终止,因此您的第一个示例实际上是这样的: 在第二个示例中,您返回一个对象(由花括号构建),该对象的属性及其值为,实际上与此相同:

  • 问题内容: 在下面的代码中,我想计算序列中G和C字符的百分比。在Python 3中我可以正确获取,但是在Python 2中我可以获取。为什么结果不同? 问题答案: 是Python 3中的另一个运算符;在Python 2中,当将其应用于2个整数操作数时会更改行为,并返回下限除法的结果: 加: 代码的顶部以在Python 2中使用浮点除法,或用于强制Python 3使用整数除法: 使用这些技术中的任何

  • 问题内容: 我正在尝试将数据从Java客户端发送到ac#服务器,并且在将int转换为字节数组时遇到麻烦。 当我使用此代码使用C#转换数字8342时: 结果是:x [4] = {150,32,0,0} 与Java我使用: 结果是:x [4] = {0,0,32,-106} 有人可以解释吗?我是Java新手,这是我第一次在字节数组中看到负数。 问题答案: 您必须更改字节序: Java在内部将事物存储为

  • 我在这里漏掉了什么?我试过上/下现金,每个字节之间的空格。我不确定还能试什么。 这个问题开始是因为我在Python中实现了这个,但在我担心代码之前,我试图理解为什么这是不同的。

  • 问题内容: 我从http://tools.ietf.org/html/rfc6238借用了HMAC- SHA1 Java代码,并稍加修改以对其进行硬编码,以使用一个具有已知输出的已知密钥/消息对。 然后,我尝试在Python中编写相同的代码以验证结果,但是在Python和Java中获得了不同的值。 已知Java值很好。 Java代码: Python代码: 运行Java的结果: 运行Python的结

  • 问题内容: 我从http://tools.ietf.org/html/rfc6238借用了HMAC- SHA1 Java代码,并稍加修改以对其进行硬编码,以使用一个具有已知输出的已知密钥/消息对。 然后,我尝试在Python中编写相同的代码以验证结果,但是在Python和Java中获得了不同的值。 Java值众所周知是好的。 Java代码: Python代码: 运行Java的结果: 运行Pytho