Python 有多种内置数据类型。以下是比较重要的一些:
- Booleans[布尔型] 或为
True[真]
或为False[假]
。 - Numbers[数值型] 可以是 Integers[整数](
int,long
)、Floats[浮点数](float,double)、Fractions[分数](1/2
和2/3
);甚至是 Complex Number[复数](complex)。 - Strings[字符串型] 是 Unicode 字符序列,例如: hello,"hello",hello
- Bytes[字节] 和 Byte Arrays[字节数组], 例如: 一份 JPEG 图像文件。
- Lists[列表] 是值的有序序列。例如:[1,2,3],[1,2,3,[1,2,3],4]
- Tuples[元组] 是有序而不可变的值序列,例如:(1,2,3,abc)。
- Sets[集合] 是装满无序值的包裹。
- Dictionaries[字典] 是键值对的无序包裹,例如:{1:"nihao",2:"hello"}。
当然,还有更多的类型。在 Python 中一切均为对象,因此存在像 module[模块]、 function[函数]、 class[类]、 method[方法]、 file[文件] 甚至 compiled code[已编译代码] 这样的类型。您已经见过这样一些例子:模块的 name、 函数的 docstrings
等等。将学到的包括 《类 与 迭代器》 中的 Classes[类],以及 《文件》 中的 Files[文件]。例如:File(文件) f = open(a.txt,rw)
python 还可以引用C语言变量
import ctypes
可以通过help(ctypes)查看有多少个类型
这里介绍下指针类型
>>> n = ctypes.c_int(100)
>>> p = ctypes.pointer(n)
>>> print p
<__main__.LP_c_long object at 0x01FF4EE0>
>>> print n
c_long(100)
>>> p.contents
c_long(100)
>>> ctypes.addressof(n)
33506168
>>> hex(33506168)
0x1ff4378
>>> ctypes.addressof(p.contents)
33506168
请注意ctypes.addressof(n)和ctypes.addressof(p.contents)的值才是相等的,而
>>> print p
<__main__.LP_c_long object at 0x01FF4EE0>
表示的是p这个指针变量的地址在0x01FF4EE0
下面说下Python类型转换
ord() 将字符转换成ASCII
chr() 将ASCII转换成字符
hex() 将整数转换成十六进制
oct() 将整数转换成八进制
bin() 将整数转换成二进制
还有其他的如int(),str()