- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
在 64 位 Debian Linux 6 上:
Python 2.6.6 (r266:84292, Dec 26 2010, 22:31:48)
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.maxint
9223372036854775807
>>> sys.maxunicode
1114111
在 64 位 Windows 7 上:
Python 2.7.1 (r271:86832, Nov 27 2010, 17:19:03) [MSC v.1500 64 bit (AMD64)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.maxint
2147483647
>>> sys.maxunicode
65535
两个操作系统都是 64 位的。他们有 sys.maxunicode,according to wikipedia unicode 中有 1,114,112 个代码点。 Windows 上的 sys.maxunicode 是否错误?
为什么它们有不同的 sys.maxint?
最佳答案
我不知道你的问题是什么,但 sys.maxunicode
在 Windows 上错误。
查看 docs :
sys.maxunicode
An integer giving the largest supported code point for a Unicode character. The value of this depends on the configuration option that specifies whether Unicode characters are stored as UCS-2 or UCS-4.
Windows 上的 Python 使用 UCS-2,因此最大代码点为 65,535(补充平面字符由 2*16 位“代理项对”编码)。
关于 sys.maxint
,这显示了 Python 2 从“简单整数”( 123
)切换到“长整数”( 12345678987654321L
)的点。显然 Python for Windows 使用 32 位,而 Python for Linux 使用 64 位。从 Python 3 开始,这变得无关紧要,因为简单和长整数类型已合并为一个。因此,sys.maxint
从 Python 3 中消失了。
关于Linux 和 Windows 上的 Python sys.maxint、sys.maxunicode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8164832/
CPython 根据编译选项在内部将 unicode 字符串存储为 utf-16 或 utf-32。在 Python 字符串切片、迭代和 len 的 utf-16 版本中,似乎在代码单元而不是代码点上
在 64 位 Debian Linux 6 上: Python 2.6.6 (r266:84292, Dec 26 2010, 22:31:48) [GCC 4.4.5] on linux2 Type
我是一名优秀的程序员,十分优秀!