我正在编写Python代码来进行一些大数计算,并严重关注计算中使用的内存.
因此,我想计算每个变量的每一位.
例如,我有一个变量x,它是一个大数字,并且想要计算代表x的位数.
以下代码显然没用:
x=2**1000
len(x)
Run Code Online (Sandbox Code Playgroud)
因此,我转而使用以下代码:
x=2**1000
len(repr(x))
Run Code Online (Sandbox Code Playgroud)
变量x是(十进制)是:
10715086071862673209484250490600018105614048117055336074437503883703510511249361224931983788156958581275946729175531468251871452856923140435984577574698574803934567774824230985421074605062371141877954182153046474983581941267398767559165543946077062914571196477686542167660429831652624386837205668069376
但上面的代码返回303
上面的长long序列的长度为302,因此我认为303应仅与字符串长度相关.
所以,这是我原来的问题:
我怎么知道变量x的内存大小?
还有一件事; 在C/C++语言中,如果我定义
int z=1;
Run Code Online (Sandbox Code Playgroud)
这意味着为z分配了4个字节= 32位,并且这些位排列为00..001(31 0和1).
在这里,我的变量x是巨大的,我不知道它是否遵循相同的内存分配规则?
假设有人给了我一个链接,使我能够下载 Google 云端硬盘中的公共文件。
我想编写一个可以读取链接然后将其下载为文本文件的程序。
例如,https://docs.google.com/document/d/1yJVXtabsP7KrJXSu3XyOh-F2cFoP8Lftr14PtXCLEVU/edit是我的 Google 云端硬盘中的文件之一。每个人都可以访问该文件。
但是我怎样才能编写一个Python程序来下载给定上述链接的文本文件呢?
有人可以给我一些示例代码吗?
似乎某些 Google Drive SDK 可能有用(?),但是有没有办法在不使用 SDK 的情况下做到这一点?