python - 为什么整数被认为是正无穷大?

标签 python python-3.x

Python 的解释器将 int 理解为正无穷大,我不知道为什么。

解释器 - Python 3.7
ide(有什么意义吗?)- PyCharm 社区 19.2.2

import unittest

def reverse(value):   
    reversed_value = int(0)  
    while value > 0:  
        reversed_value = reversed_value * 10 + value % 10  
        value /= 10  
    return reversed_value  


class TestEverything(unittest.TestCase):  
    def test_reverse(self):  
            self.assertEqual(reverse(0), 0)  
            self.assertEqual(reverse(121), 121)

好吧,它按计划使用 0,但是对于 121 或任何其他正整数 n,我得到下一个:

n != inf

Expected :inf    
Actual   :n

据我了解,reverse()可以正常工作,但测试时遇到问题,我不知道如何解决。

最佳答案

一旦你使用了/,你就在使用 float ,而不是整数。使用 float ,您的 value 可以变得越来越小而不会达到零,因此 while 循环继续进行,并且您的 reversed_value 变得越来越高,直到它超过 float 的范围并且被赋予值 inf

如果将 print(value, reversed_value) 添加到 while 循环中,您可以看到这种情况发生。

尝试使用

value //= 10 # int division

代替

value /= 10 # float division

关于python - 为什么整数被认为是正无穷大?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58157988/

相关文章:

python - 在 python 中多次访问 mmap 对象

python - 无法执行通过%paste%指定的函数

python - 如何控制 Pandas 中每小时的 GROUPBY 设置?

python - 如何从列表中绘制多个图例

python - Celery 中的异常处理?

python - 如何在我的Mapper和Reducer中使用此代码?我想在Google集群中运行此代码

Python - 值错误 : Cannot index with vector containing NA/NaN values

python - 如何使用 ReportLab 从原始字节绘制图像?

python - 无法将 xgboost 添加到 pyinstaller

python:从压缩文本文件中读取行