1、类型
python中的数字主要包括整型,长整型,浮点型和复数等。
1) 整型-int
python整型的最大长度是由机器cpu位数n决定,范围从-2**(n-1)-1到2**(n-1)-1,可以通过sys.maxint(需要导入sys模块)来查看当前支持整型的最大值.相当于c语言中的有符号长整型.
2) 长整型-long
在数值的后面加上L或者l就表示长整型了,一般都是用L,小写l容易与数字1混淆.Python的长整型的最大值和最小值貌似是由可用内存决定的,所以基本上可以支持任意长度的整型数据.当整数超过了int的范围时会自动转换为长整型.
Python3.0中整型和长整型已经合二为一了,只有整型这一种了.
整型数据可以编写为十进制、十六进制、八进制和二进制形式。十六进制数以0x或0X开头,八进制以0o或0O开头(数字0和大小写o),2.6及更早的版本都是直接在数字前面加一个0来表示八进制,但是这种比较容易与十进制数混淆,所以3.0中用0o代替了。二进制数都是以0b或0B开头,后面跟着二进制数字。
3) 浮点数-float
浮点数带一个小数点,也可以使用科学计数法e或E。python的浮点型行当于c语言中的双精度浮点型。如果要进行高精度的浮点数计算需要导入decimal模块。
>>> a=3.14
>>> b=2.647e5
>>> a,b
(3.14, 264700.0)
4)
复数-complex
python中的复数采用实部+虚部的写法,虚部要以J或者j结尾,格式为x+yj或x+yJ,也可以通过内置函数complex(real,imag)来创建复数。对于复数f,可以通过f.real获取其实部,f.imag可以得到其虚部,f.conjugate()返回其共轭复数。
>>> f = complex(2,3.4)
>>> f.real
2.0
>>> f.imag
3.4
>>> f.conjugate()
(2-3.4j)
2、运算符
加法:+
减法:-
乘法:*
除法:/或//,3.0中/为真除法,会保留小数部分,//为floor除法,即得到不大于结果的最大整数值,26中/和//作用相同,都为floor除法,除非导入from __future__ import division,/则为真除法,当然和c语言类似,若除数和被除数有一个为浮点型的话,/就是真除法。
取余:%,也叫取模,2%3相当于2mod3。
幂运算:**,2**5表示2的五次方。
>>> 1+1
2
>>> 2-1
1
>>> 2*5
10
>>> 5/2
2
>>> 5//2
2
>>> from __future__ import division
>>> 5/2
2.5
>>> 5//2
2
>>> 4%7
4
>>> 13%7
6
>>> 2**5
32
或运算:|, x|y, x和y进行按位或。
与运算:&, x&y, x和y进行按位与。
异或运算:^, x^y, x和y进行异或运算。
取反:~,~x,按位取反,~x=-(x+1),这里是根据计算机补码的原理,负数的补码是按位取反再加1的。
左移:<<, x<<y, x左移y位。
右移:>>, x>>y, x右移y位。
>>> 2|3
3
>>> 2&3
2
>>> 2^3
1
>>> ~2
-3
>>> 2<<1
4
>>> 2>>1
1
python中的数字比较与c语言中的相同,不过可以使用m<= x <= n或者m >= x>=n来进行比较.
>>> 1<=2<=3
True
3、转换
chr(i), 0 <=i<=256,将ascII码转换为对应的ascII字符(串)。
ord(char) ,与chr()相反的功能,得到字符char对应的ascII码。
float(), 将整型或者字符串转换为浮点数。
hex(),将整型转化为十六进制字符串。
oct(), 将整型转化为八进制字符串。
bin(), 将整型转化为二进制字符串。
int(s[,base]),将字符串或者数字s转为十进制的整数,这里的base表示的是s的进制,base的范围为2到36,默认为10,若转换失败会产生ValueError异常。
str():函数str可以将数字转换为字符串,其实str()还可以将很多类型的数据转换为字符串,后续再做介绍。
>>> chr(48)
'0'
>>> ord('A')
65
>>> float(5)
5.0
>>> hex(11)
'0xb'
>>> oct(8)
'010'
>>> bin(4)
'0b100'
>>> int("010",8)
8
>>> int("0b100",2)
4
>>> str(3.1415926)
'3.1415926'
4、其他数学工具
abs() 绝对值
pow() 幂计算,pow(2,3) 2的3次方
sum() 求和,参数必须为迭代器,元组,列表,字典。
min() 求最小值
max() 求最大值,min()和max()的参数可以是迭代器,也可以是需要比较的几个数字。
round() 将浮点数的小数部分四舍五入,如果参数为整型则转换为浮点型。
>>> abs(-5)
5
>>> pow(2,3)
8
>>> sum((1,2,3,4,5))
15
>>> sum(1,2,3,4,5)
Traceback (most recent call last):
File "<pyshell#59>",line 1, in <module>
sum(1,2,3,4,5)
TypeError: sum expected at most 2arguments, got 5
>>> min(1,2,3,4,5)
1
>>> min((1,2,3,4,5))
1
>>> max([1,2,3,4,5])
5
>>> round(2.5)
3.0
>>> round(1)
1.0
match模块:
import math
math.pi 圆周率
math.e 自然对数
math.sin() 求正弦,参数为弧度。
math.cos() 求余弦
...
math.sqrt() 开方
math.floor() floor截取,返回不大于参数的最大整数
math.trunc() 截断,去除小数部分,返回整型
>>> import math
>>> math.pi
3.141592653589793
>>> math.e
2.718281828459045
>>> math.sin(0)
0.0
>>> math.cos(0)
1.0
>>> math.sqrt(3)
1.7320508075688772
>>> math.floor(2.5)
2
>>> math.floor(-2.5)
-3
>>> math.trunc(2.5)
2
>>> math.trunc(-2.5)
-2
random模块:获取随机值
random.random() 随机生成一个0-1之间的浮点数。
random.randint(m,n)随机生成一个m-n之间的整数。
random.choice([13,423,3423])在序列中随机挑选一项。
>>> import random
>>> random.random()
0.28249705202460174
>>> random.randint(0,9)
5
>>>random.choice([10,12,15,128])
12
decimal模块:高精度浮点型运算
>>> from decimal import *
>>> 0.1+0.1+0.1-0.3
5.551115123125783e-17
>>> Decimal('0.1') +Decimal('0.1') + Decimal('0.1') - Decimal('0.3')
Decimal('0.0')
decimal.getcontext().prec= n
设置小数的保留位数,小数点后保留
n
位。
>>> getcontext().prec=2
>>> Decimal(1)/Decimal(3)
Decimal('0.33')
fractions模块:分数
>>> from fractions import Fraction
>>> x=Fraction(1,3)
>>> x
Fraction(1, 3)
分数和小数的转换:
浮点型数据的as_integer_ratio()方法可将浮点数转换为对应的分数,float()函数可将分数转换为小数。
>>> (2.5).as_integer_ratio()
(5, 2)
>>> x=Fraction(1,3)
>>> float(x)
0.3333333333333333
5、布尔型
bool类型不用多解释了,就True和False,对应1和0,只是值相同,并不是相同的类型。
>>> True == 1
True
>>> True is 1
False
PS: 关于函数和模块的属性方法的详细介绍可使用 help() 查看。