希望今儿晚上的大风可以赶走雾霾~~~
转入正题:
数字是不可更改类型,也就是说变更数字会生成新的对象,可以通过id(a)酱紫的函数证明~
变更数字其实是生成了新的数值对象并且得到它的引用。
python中的主要数字类型:
整形:布尔类型+标准整形+长整形:
布尔整形只有两个值
标准整形:八进制整形以0开始,十六进制则以0x开始。
长整形在末尾加L(例如:1234567890L)
双精度浮点型:
浮点型值通常都有一个小数点和一个可选的后缀e(大写或小写,表示科学计数,例如96e3*1.0,表示96000.0)
另外还有复数,简单介绍一下复数的内建属性们~
aComplex = -8.356-1.5j
print aComplex.real
print aComplex.imag
print aComplex.conjugate()
功能分别是取得实数部分,复数部分和共轭复数。
数字操作符:
在数字运算时,首先要保证操作数是相同类型,因此,python有自动数据类型转换:
如果有一个操作数是复数,另一个操作数被转换为复数
否则,如果有一个操作数是浮点型,另一个操作数转换为浮点型
否则,如果有一个操作数是长整形,另一个操作数转换为长整形
否则,两个必然都是普通整形,无需转换
算数操作符:重点说一下除法咯:
print 1/2
print 1.0/2.0
的输出结果为:
>>>
0
0.5
>>>
可见,整形除法会自动舍去小数部分,返回一个整形(地板除)
真正的除法:
from __future__ import division
print 1/2
print 1.0/2.0
酱紫就可以使输出结果成为:
>>>
0.5
0.5
>>>
下面说一下幂运算的优先级:
print 3**2
print -3**2
print 4.0**-1.0
幂运算操作符比其左侧操作数的一元操作符优先级低,比其右侧操作数的一元操作符优先级高:
因此输出结果为:
>>>
9
-9
0.25
>>>
另外,位操作符~(取反)、<< >>(左右移位)、&(与)、^(异或)、|(按位或)都只适用于整型。
内建函数与工厂函数:
转换工厂函数:int() long() float() complex()可以用来将其他数值类型转换为相应数字类型
功能函数:
divmod()把除法和取余运算结合,返回一个包含商和余数的元组;
pow()可以进行指数运算
round()用于对浮点型进行四舍五入运算,它有一个可选的小数位数参数。
import math
print divmod(10,3)
print pow(2,5)
print round(math.pi,10)
输出结果:
>>>
(3, 1)
32
3.1415926536
>>>
函数int() round() math.floor()不同之处
int函数直接截取小数部分,返回整型
floor函数得到最接近原始数字但是小于原始数字的整型,返回浮点型
round得到最接近原始数字的整数,返回类型为浮点型
仅适用于整型的内建函数:
hex(num):将数字转化为16进制并以字符串形式返回
oct(num):将数字转化为8进制并以字符串形式返回
chr(num):将ascii值的数字转化成ascii字符
布尔“数”
class C:
def __nonzero__(self):
return False
c = C()
print bool(c)
print bool(C)
输出结果:
>>>
False
True
>>>
数字章节就到这里啦~大家晚安~~