Python int()
时间:2020-02-23 14:42:50 来源:igfitidea点击:
Python int()函数从指定的输入返回一个整数对象。
返回的int对象将始终以10为底。
Python int()
Python int()函数语法为:
class int(x=0, base=10)
int()函数的一些重要点是:
如果未提供任何参数,则int()函数将返回0。
如果提供整数文字参数,则不应提供base。
即使参数为十六进制,二进制或者任何其他基数,返回的int对象也将为十进制。对于浮点参数,小数点将被截断,并且将返回int值。
不会进行四舍五入。如果参数为字符串,则将其转换为int。
如果字符串参数不在10以底,则必须提供base。只能为字符串,字节和字节数组参数提供基本参数。
允许值为0和2至36。我们也可以将int()与自定义对象一起使用,在这种情况下,将调用对象__int __()函数。
如果未定义__int __()
函数,则将调用__trunc __()
函数。
如果它们都没有定义,那么将抛出" TypeError"。
让我们看一下具有不同类型输入参数的int()函数示例。
Python int()与数字
x = int() print(type(x)) print(x) print(int(0xF)) print(int(0b111))
输出:
<class 'int'> 0 15 7
带有浮点数的Python int()
x = int(10.043) print(x) x = int(10.8901) print(x)
输出:
10 10
请注意,返回浮点数的整数部分,不进行舍入。
带有字符串的Python int()
x = int("5") print(x) x = int("-0xf", base=16) print(x) x = int("0b111", base=2) print(x)
输出:
5 -15 7
带有字节和字节数组的Python int()
x = int(bytes("-0xf", "utf-8"), 16) print(x) x = int(bytearray("-20", "utf-8")) print(x)
输出:
-15 -20
带有自定义对象的Python int()
class Emp: id = 0 def __int__(self): print('__int__ function called') return self.id def __trunc__(self): print('__trunc__ function called') return self.id x = Emp() x.id = 100 print(int(x))
输出:
__int__ function called 100
如果我们注释__int__函数,那么输出将是:
__trunc__ function called 100
如果我们同时注释__int__和__trunc__函数,则会得到以下错误。
TypeError: int() argument must be a string, a bytes-like object or a number, not 'Emp'