相关疑难解决方法(0)

整数的最大值和最小值

我在python中寻找整数的最小值和最大值.例如,在Java中,我们有Integer.MIN_VALUEInteger.MAX_VALUE.在python中有这样的东西吗?

python integer

648
推荐指数
9
解决办法
86万
查看次数

长整数的最大值

如何将长整数的最大值分配给变量,例如,类似于C++的变量LONG_MAX.

python

103
推荐指数
5
解决办法
21万
查看次数

Python 3中不同的对象大小True和False

__sizeof__在不同的Python对象上尝试使用魔术方法(特别是)我偶然发现了以下行为:

Python 2.7

>>> False.__sizeof__()
24
>>> True.__sizeof__()
24
Run Code Online (Sandbox Code Playgroud)

Python 3.x

>>> False.__sizeof__()
24
>>> True.__sizeof__()
28
Run Code Online (Sandbox Code Playgroud)

Python 3中改变了什么使得大小True超过了False

python cpython python-2.7 python-3.x python-internals

67
推荐指数
4
解决办法
2884
查看次数

为什么PyObject*可以指向python中的任何对象?

在python的源代码中,有一些像这样的宏定义:

#define PyObject_HEAD    \
    int ob_refcnt;       \
    struct _typeobject *ob_type;


#define PyObject_VAR_HEAD  \
    PyObject_HEAD          \
    int ob_size; 


typedef struct _object {  
    PyObject_HEAD  
} PyObject;    

typedef struct _object {  
    PyObject_HEAD   
    long ob_ival;   
} PyIntObject;   

typedef struct {   
    PyObject_VAR_HEAD   
} PyVarObject;   
Run Code Online (Sandbox Code Playgroud)

问题是,为什么PyObject*可以指向python中的每个对象(例如PyIntObject,PyVarObject)?

c python

5
推荐指数
1
解决办法
1768
查看次数

可以在不到12个字节的情况下存储Python内联?

是否有可能使Python使用少于12个字节的int?

>>> x=int()
>>> x
0
>>> sys.getsizeof(x)
12
Run Code Online (Sandbox Code Playgroud)

我不是计算机专家,但不是12字节过多?

我想存储的最小int是0,最大的int 147097614,所以我不应该需要超过4个字节.

(这里可能有一些我误解的东西,因为我无法在网上的任何地方找到答案.记住这一点.)

python int

5
推荐指数
3
解决办法
509
查看次数

sys.getsizeof(int)返回400个字节

我打算获得int的最大大小

In [1]: import sys
In [2]: sys.getsizeof(int)
Out[2]: 400
Run Code Online (Sandbox Code Playgroud)

这是否意味着python中的maxint是2**40

但是,当我尝试

In [5]: types = [int, float, complex, list, tuple, dict, set, True, False, None]
In [7]: [sys.getsizeof(type) for type in types]
Out[7]: [400, 400, 400, 400, 400, 400, 400, 28, 24, 16]
Run Code Online (Sandbox Code Playgroud)

所有数据类型都是400字节.

400字节对整数意味着什么?

python

3
推荐指数
1
解决办法
95
查看次数

在Python中存储整数所需的字节数

我检查了Python持有的最大整数sys.maxsize,它返回了我9223372036854775807

那为什么我仍然可以存储一个大于该范围的值?

存储一个整数需要多少个字节,Python是否根据整数的大小更改字节数?

我正在使用Python 3.6

python python-3.x

1
推荐指数
1
解决办法
1950
查看次数

Python 如何管理整数和浮点数的大小?

我正在运行 64 位机器。如果我输入getsizeof(int()),我会得到 24。使用这 24 个字节的元素或对象是什么?下面是一些更令人困惑的结果: getsizeof(0)returns 24. getsizeof(1)returns 28. 为什么 1 比 0 多占用 4 个字节?并getsizeof(1.5)返回 24。为什么浮点数 1.5 的大小比整数 1 小。

python python-3.x

1
推荐指数
1
解决办法
2290
查看次数

整数对象占用32字节内存空间?

我读到PyObject有用于垃圾收集的类型、值和引用计数。但下面显示每个整数对象占用 32 个字节,对于 64 位操作系统,似乎还有一个字段。那会是什么?

>>> hex(id(3))
'0x1595ae90130'
>>> hex(id(4))
'0x1595ae90150'
>>> hex(id(5))
'0x1595ae90170'  
Run Code Online (Sandbox Code Playgroud)

您会发现 ID 之间的间隔为 32 个字节。

python

1
推荐指数
1
解决办法
171
查看次数

标签 统计

python ×9

python-3.x ×3

c ×1

cpython ×1

int ×1

integer ×1

python-2.7 ×1

python-internals ×1