Python内建类型
主要的内建类型有数字、序列、映射、类、实例和异常
Python 数据类型
数字
整型Integers:进行的运算都是整数。如
>>>a = 10/3
>>>a
3
长整型Long Integers:长整型是整型的超集。即,长整型可以表示比整型更大的数。python的长整型能表达的数值跟电脑支持的(虚拟)内存有关。例如
>>>a = 123456L
浮点数 Floating Point Numbers:每个浮点型占8个字节(64位)。双精度浮点型。对于很大或很小的浮点数,就必须用科学计数法表示,把10用e替代,1.23x109就是1.23e9
,或者12.3e8
,0.000012可以写成1.2e-5
,等等。有关浮点型的精度信息以及其在具体机器中的内部特性信息,可在sys.float_info
中获取。
>>> float('+1.23')
1.23
>>> float(' -12345\n')
-12345.0
>>> float('1e-003')
0.001
>>> float('+1E6')
1000000.0
>>> float('-Infinity')
-inf
复数 Complex Numbers:一个实数和一个虚数的组合构成一个复数。一个复数是一对有序浮点型(x,y),表示为x + yj,yj是虚数部分。现在虚数已经广泛应用于数值和科学计算应用程序中。
a = 1 + 2j
#复数的内建属性
a.real #实部
a.imag #虚部
a.conjugate() #共轭根式
print(a.real)
print(a.imag)
print(a.conjugate())
运行结果:
1.0
2.0
(1-2j)
Process finished with exit code 0
数据运算
所有的数值类型(复数除外)普通运算操作,我在这里写几种python独有的几个运算符。(注:所有的运算操作的优先级都比比较操作高):
地板除 //:舍去结果的小数部分,返回一个数字序列中比真正的商小的最接近的数字。
x = 5
y = 2
>>>x//y
2
a = -1
b = 2
>>>a//b
-1
幂运算 **:它的执行优先级是比其左侧操作数的一元操作符优先级低,比其右侧操作数的一元操作符优先级高。
>>>9 ** 2
81
>>>-9 ** 2
-81
>>>(-9) ** 2 #括号提高执行优先级
81
>>>4.0 ** -1.0
0.25
位运算
位运算只适用于整型,标准的位运算:~取反, &与,|或,^异或。python的发明者是也是数学家,所以数学方面的运算符很多,而且用起来很方便。 还有就是 左移<< 和右移 >>。
二进制按位操作的优先级都低于数值运算,并高于比较运算;一元操作~
具有与其他一元数字操作(+
和-
)相同的优先级。
此表列出按升序排列的按位运算:
操作 | 结果 |
---|---|
x | y |
x和y的按位或 |
x ^ y |
x和y的按位异或 |
x &amp; y |
x和y的按位与 |
x n |
x左移n位 |
x >&gt; n |
x右移n位 |
~x |
反转x的各个位 |
#举个小栗子,剩下可以自己试试。
>>> a = 65
>>> b =46
>>> a & b
0
>>> a = 1
>>> b = 1
>>> a & b
1
关于二进制的左移右移运算,会牵扯出一些原码补码的问题。自己想理解的透彻一点,所以在这里留个白,以后补上 :)