gpt4 book ai didi

python - 如何绕过Python的字符限制?

转载 作者:太空宇宙 更新时间:2023-11-03 20:53:50 24 4
gpt4 key购买 nike

我正在 Python 3.7 中进行数学运算。这些数学运算的数字字符串超过 10k。当我将这些数字字符串复制并粘贴到 Python 3.7 中时,它们被切断。因此,我无法进行数学运算。

format(y,'o')

**Note:** “y” is a digit string of 10k+

有没有办法绕过 Python 3.7 中的字符限制?

注意:这是字符串或字符限制的问题。这不是处理大量数据的问题。这些问题呈正相关。但是,它们仍然有根本的不同。因此,这不是重复的主题。

编辑2:

多亏了 Andrew F,我才得以实现

if 1:
from pathlib import Path
y = Path(r"C:\Users\l\Desktop\y.txt").read_text()
y = int(y)
format(y,'o')

**note:** “y.txt” contains only the digit string

最佳答案

如果字符串中有新行,您可以将其作为 block 引用的一部分粘贴到控制台中,并使用 """ 标记开始和结束。在你的系统控制台的限制下(显然是 Windows ~8000),那么你应该没问题。

编辑:无论系统控制台的限制如何,从文件读取数据或多或少都可以保证工作。您可以使用 pathlib (Python 3 标准库的一部分)或 pathlib2 (如果您使用的是 python 2)

from pathlib import Path
y = Path('path/to/your/file.txt').read_text()

编辑 2:这是一个完整的示例,说明如何从文本文件中读取此内容。

假设您有一个巨大的数字(例如 googol),并将其放入名为 gigantic-number.txt 的文本文件中。 gigantic-number.txt 的内容如下所示

10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

在 Python 控制台中,您可以加载该文件的内容,然后将其转换为整数。使用之前的示例与 pathlib

>>> from pathlib import Path
>>> # read the contents of the file as a string
>>> y = Path('gigantic-number.txt').read_text()
>>> # convert the string into an integer, this will fail unless it's actually a number
>>> y = int(y)

某些巨大数字的来源会生成其中包含换行符的文本文件。这使得它们在记事本等简单文本编辑器中更具可读性。一个例子来自 GIMPS:M3217.txt 看起来像

2591170860132026277762467679224415309418188875531254273039749231618740192665863620862012095168004834
0655069524173319417744168950923880701741037770959751204231306662408291635351795231118615486226560454
7691127595848775610568757931191017711408826252153849035830401185072116424747461823031471398340229288
0745456779079410372882358207058923510684338829868886166586502809276920803396058693087905004095037098
7590211901837199162099400256893511313654882973911265679730324198651725011641270350970542777347797234
9821676443446668383119322540099648994051790241624056519054483690809616061625743042361721863339415852
4264312087372665919620617535357488928945996291951830826218608534009379328394202618665861425032514507
7309627423537682293864940712770084607712421182308080413929808705750471382526457144837937112503208182
6126566649084251699453951887789613650248405739378594599444335231188280123660406262468609212150349937
584782292237144339628858485938215738821232393687046160677362909315071

基于之前的示例,您可以从文件中读取此内容,删除空格,然后转换为整数。

>>> from pathlib import Path
>>> from string import digits
>>> # read from file as a string
>>> y = Path('M3217.txt').read_text()
>>> # keep only digit characters and "."
>>> y = ''.join(digit for digit in y if digit in digits+".")
>>> # cast as an integer
>>> int(y)
259117086013202627776246767922441530941...

需要明确的是,文本文件中只有数字。您编辑的问题看起来像是您将 Python 代码也粘贴到了文本文件中,但这并不能解决这个问题。

关于python - 如何绕过Python的字符限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56143430/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com