即数学意义上的满十进一数
二进制类型由1和0两个数字组成,满2向前进一位,如0B1010,0b100等。
八进制单位最大数字为7,满8向前进一位,如0O7,0o12等。
十六进制单位最大数字为15,但由于无法用单一数字表示,因此利用英文字母A~F分别表示 10~15,如0X1F,0x11A等。
在python程序当中,如果想知道其他进制数对应的十进制数,只需直接在程序中输入即可,程序会自动把数字转化为十进制数。
a=0B1010
b=0o1010
c=0x1010
print(a) #10
print(b) #520
print(c) #4112
另外有一个特定的函数int可以把其他形式的数字转化为十进制形式。
int(x[,base=10])
1.当只输入参数x时,参数x的类型必须为十进制数值字符串,浮点数和整数。
2.当输入base参数时,即指定x为何种进制的整数类型,其中base的取值范围为[2,36]和0,这时,x必须以字符串类型输入。
int(78.2) #78
int('89') #89
int('1010',base=2) #10
int('1010',base=8) #520
int('1010',base=16) #4112
十进制转其他进制的方法如下:
对一个十进制的数如8,我们先把它除以将要转化的进制数如2,再把得出来的商4继续除以进制数2,如此往复,直到商为0
8/2=4…0
4/2=2…0
2/2=1…0
1/2=0…1
最后把余数自下而上作为高位数到低位数累加即可,即1000+000+00+0=1000
所以十进制数8转化为二进制数为1000
在python程序中,有两个函数可以分别把十进制数转化为其对应的八进制字符串和十六进制字符串。
hex(x) #输入整数x,可以得到该整数的十六进制字符串
oct(x) #输入整数x,可以得到该整数的八进制字符串
hex(100) #0x64
oct(100) #0o144
即即数学意义上的满十进一数
当数字位数过多时,如果按普通的十进制写法就十分麻烦,这时就需要科学计数法帮助简化写法,如:
31415926可以写为3.1415926 * 107,在程序中表达为3.1415926E+7;
0.005可以写作5 * 10-3,程序中表达为5E-5
float(x) 参数x的类型必须为十进制数值字符串,浮点数和整数
复数类型表示数学意义上的复数,在python语言中,复数虚数部分通过后缀“J”或“j”表示,可以用complex.real和complex.imag分别获取复数的实部和虚部部分,其中实部和虚部的数值都是浮点数类型。
c1=6+2j
c2=7.0+5J
c1.real #6.0
c2.imag #12.0
python内置有九个操作运算符,可用于数值间的运算。
符号 | 描述 |
---|---|
+ | 用于数字间加法运算 |
- | 用于数字间加法运算 |
* | 用于数字间乘法运算 |
/ | 用于数字间除法运算 |
// | 用于数字间加法运算,结果返回整数商 |
% | 用于数字间加法运算,结果返回整数余数 |
** | 用于数字间幂运算 |
+/- | 取数字本身正/负值 |
5+6 #11
11-5 #6
2*3 #6
6/4 #1.5
6//4 #1
6%4 #2
2**3 #8
+(-6) #6
-(6) #-6
python内置有六个与运算相关的函数。
函数 | 描述 |
---|---|
abs(x) | 取数字x的绝对值 |
divmod(x,y) | 返回x//y与x%y的二元组形式 |
pow(x,y,mod=None) | 返回xy的结果,如果mod存在则返回xy%mod的结果 |
round(x,ndigits=None) | 返回x四舍五入的结果,保留ndigits位小数 |
max\min(arg1, arg2, *args[, key=func]) | 返回输入参数的最大\最小值(arg:字符型参数/数值型参数;参数key要传入一个函数,用来指定取最大值的方法) |
sum(iterable,start=0) | 对可迭代对象元素求和,如果start存在,则返回start值+可迭代对象元素总和 |
abs(-9) #9
divmod(6,4) #(1,2)
pow(2,3) #8
pow(2,3,3) #2
round(6.745) #7
round(6.745,2) #6.75
max(-1,3,-5,7,-9) #9
max(-1,3,-5,7,-9,key=abs) #先对每个参数取绝对值,再进行比较,因此结果返回-9
min((1,3,5,4,9))#1
sum((range(4)) #6
sum(range(4),start=1) #7
9/3 #3.0
12/5 #2.4
12*2.0 #24.0
5+6.0 #11.0
6+12+8j #18+8j
8.0*4+9j #32+9j
6+5*8 #46
(6+5)*8 #88