python内置的int()函数,通过各种方式得到一个int对象,即整数。
>>> int()
0
>>> int(1)
1
>>> int(123)
123
>>> int(-123)
-123
int()函数如果不带参数,返回0。
对于浮点数,int()函数对其进行整数化处理的方式是向0方向取整。( For floating point numbers, this truncates towards zero. )
>>> int(1.234)
1
>>> int(-1.234)
-1
>>> int(0.234)
0
>>> int(-0.234)
0
>>> int(0.934)
0
>>> int(-0.934)
0
0.934在被int函数处理后,也是0。-0.934,也是向0方向逼近。向0的方向,取遇到的第一个整数,这就是int函数对待浮点数的方式,很适合用来取除法的商数。(python实现浮点数四舍五入的方法)
int函数的参数,还可以个字符串,将字符串所代表的数字转换成整数。
>>> int('586')
586
>>> int(b'1234')
1234
注意浮点数字符串参数不能是小数,否则会抛出ValueError。
使用int函数来将非10进制的数转换成10进制,也是非常方便非常常见的用法:
>>> int('11010010', 2)
210
>>> int('3467', 8)
1847
>>> int('1234', 16)
4660
>>> int(bin(210),2)
210
>>> int(oct(1847),8)
1847
>>> int(hex(4660),16)
4660
int函数支持0以及2-36进制向10进制的转化。什么是base-0(0进制)?python官方是这样解释的: Base 0 means to interpret exactly as a code literal, so that the actual base is 2, 8, 10, or 16, and so that int('010', 0) is not legal, while int('010') is, as well as int('010', 8).
翻译过来就是,base-0就是按照数字字面来解释转换,因此int('010',0)是错误的,这个时候前面多余的0就不对了。
>>> int('010', 0)
Traceback (most recent call last):
File "", line 1, in
ValueError: invalid literal for int() with base 0: '010'
>>> int('010', 2)
2
>>> int('010', 8)
8
>>> int('010', 10)
10
>>> int('010', 16)
16
int函数返回的是一个int对象,而python内置的bin,oct,hex这3个函数,返回的都是字符串。因为人类大脑只能够很好的理解10进制!因为我们的祖先也只有10个手指头。
-- EOF --