是否可以将整数写入文件而不将其转换为字符串?



我试图用以下代码计算2的平方根(最多接近1000万数字)

import os
os.chdir('/home/username/Desktop')

def sqroot(a, digits):
a = a * (10**(2*digits))
x_prev = 0
x_next = 1 * (10**digits)
while x_prev != x_next:
x_prev = x_next
x_next = (x_prev + (a // x_prev)) >> 1
return x_next
sqrt2 = sqroot(2,10000000) 
file = open("Root_2",'w')
file.write(sqrt2)
file.close()

问题是,我不能将其作为整数(TypeError: write() argument must be str, not int)写入文件。我试图将其转换为字符串,但得到了OverflowError,因为它太大而无法转换为字符串。有什么办法可以解决这个问题吗?

如果像这样写入文件:

n = 10**10000000
with open("Root_2",'w') as f:
print(n, file=f)

它将运行没有错误。将n改为从函数中得到的10000000位数

最新更新