python / python/cpython

IDLE: Handle repr(big_integer) value error

未关闭
#135,498 1 条评论 0 个 reaction 已指派 1 人 在 GitHub 查看

@terryjreedy 已经在做这个了。

开始于 2025年6月14日。

pending topic-IDLE type-feature
主要语言
Python
星标
77.2k
派生
36k
PR 合并指标
PR 指标待抓取

描述

(Spinoff of #135487.) In Shell

>>> 1<<15000
Traceback (most recent call last):
  File "<pyshell#38>", line 1, in <module>
    1<<15000
ValueError: Exceeds the limit (4300 digits) for integer string conversion; use sys.set_int_max_str_digits() to increase the limit

The error also occurs in Debugger. For debugger, I have already thought replacing reprlib.repr since debugger displays only about the first 40 chars of the repr string. First possibility: f"int(10**{log10(n)})". It returns a legal expression, but large-enough exponents overflow. Second: f"10**round({log10(n)}) # Approximately. This will evaluate to an order of magnitude approximation, which is often better than 100s or 1000s of digits. In Shell, the error message could follow as a comment. In debugger, I would like to add hovertips with more information.

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。