You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

粘贴35660位10000!报错,设置sys.set_int_max_str_digits(0)仍无效

解决大整数字面量触发的SyntaxError问题

问题原因

你遇到的错误是因为Python解析器在读取代码的阶段就会检查整数字面量的长度,此时你写的sys.set_int_max_str_digits(0)还没执行,所以这个设置根本没生效,直接触发了语法错误。

可行解决方案

方案1:从文本文件读取大数字(推荐)

不要把3万多位的数字直接粘贴到代码里,先把数值保存成一个文本文件(比如10000_fact.txt),然后用代码读取转换:

import sys
# 先取消转换限制
sys.set_int_max_str_digits(0)
# 读取文件中的数字字符串
with open('10000_fact.txt', 'r', encoding='utf-8') as f:
    num_str = f.read().strip()
# 转换为整数
big_fact = int(num_str)

方案2:用多行字符串拼接后转换(适合必须写在代码里的场景)

如果一定要把数字放在代码里,拆成多个字符串片段拼接,再在运行时转换(注意必须先设置sys参数):

import sys
sys.set_int_max_str_digits(0)
# 把大数字拆分成多个字符串片段,用括号拼接
fact_str = (
    "1027373365776159953236906227366875333659668900033242776327228388708023839781932761998837808024256950448265089535960098070868960876969"
    "696969...这里补上剩下的所有数字片段"
)
big_fact = int(fact_str)

内容的提问来源于stack exchange,提问作者Pinteco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 23:35:07