相关疑难解决方法(0)

如何使整数大于任何其他整数?

注意:虽然接受的答案达到了我想要的结果,并且@ecatmur答案提供了更全面的选项,但我觉得强调我的用例首先是一个坏主意是非常重要的.这在@Jason Orendorff的答案中得到了很好的解释.

注意:这个问题不是关于的问题sys.maxint的重复.它与此无关sys.maxint; 即使在sys.maxint可用的python 2中,它也不代表最大整数(参见接受的答案).

我需要创建一个比任何其他整数都大的整数,这意味着一个int对象True在与任何其他int对象相比时返回>.用例:库函数需要一个整数,强制某种行为的唯一简单方法是传递一个非常大的整数.

在python 2中,我可以使用sys.maxint(编辑:我错了).在python 3中,math.inf是最接近的等价物,但我无法将其转换为int.

python infinity python-3.x

50
推荐指数
3
解决办法
7370
查看次数

用于切片的Python整数无穷大

我在配置文件中定义了一个切片参数:

max_items = 10
Run Code Online (Sandbox Code Playgroud)

我的类根据此参数切片列表:

items=l[:config.max_itmes]
Run Code Online (Sandbox Code Playgroud)

什么时候max_items = 0,我想要取出所有物品l.快速而肮脏的方式是:

config.max_items=config.max_items if config.max_items>0 else 1e7
Run Code Online (Sandbox Code Playgroud)

假设会有更少的1e7项目.但是,我不喜欢使用魔术数字.是否有更多的Pythonic方式,如无穷大整数常量?

python integer infinity

17
推荐指数
1
解决办法
5351
查看次数

我应该如何键入提示一个也可以是无限的整数变量?

搜索此主题时,我遇到了以下问题:如何表示整数无穷大?

我同意 Martijn Peeters 的观​​点,即添加一个单独的特殊无穷大值int可能不是最好的想法。

然而,这使得类型提示变得困难。假设以下代码:

myvar = 10   # type: int
myvar = math.inf  # <-- raises a typing error because math.inf is a float
Run Code Online (Sandbox Code Playgroud)

但是,代码在任何地方都按其应有的方式运行。我的类型提示在其他任何地方都是正确的。

如果我改写以下内容:

myvar = 10  # type: Union[int, float]
Run Code Online (Sandbox Code Playgroud)

我可以math.inf毫不费力地分配。但现在任何其他浮动也被接受。

有没有办法正确限制类型提示?或者我type: ignore每次分配无穷大时都被迫使用?

python type-hinting mypy

6
推荐指数
1
解决办法
1499
查看次数

标签 统计

python ×3

infinity ×2

integer ×1

mypy ×1

python-3.x ×1

type-hinting ×1