📜  Python int()

📅  最后修改于: 2020-09-20 04:12:23             🧑  作者: Mango

int()方法从任何数字或字符串返回整数对象。

int()方法的语法为:

int(x=0, base=10)

int()参数

int()方法采用两个参数:

  1. x-要转换为整数对象的数字或字符串 。默认参数zero
  2. base-x中数字的底数。可以是0(代码文字)或2-36。

从int()返回值

int()方法返回:

  1. 给定数字或字符串的整数对象将默认基数视为10
  2. (无参数)返回0
  3. (如果指定了基数)则以指定的基数(0、2、8、10、16)处理字符串

示例1:int()如何在Python?

# integer
print("int(123) is:", int(123))

# float
print("int(123.23) is:", int(123.23))

# string
print("int('123') is:", int('123'))

输出

int(123) is: 123
int(123.23) is: 123
int('123') is: 123

示例2:int()如何用于十进制,八进制和十六进制?

# binary 0b or 0B
print("For 1010, int is:", int('1010', 2))
print("For 0b1010, int is:", int('0b1010', 2))

# octal 0o or 0O
print("For 12, int is:", int('12', 8))
print("For 0o12, int is:", int('0o12', 8))

# hexadecimal
print("For A, int is:", int('A', 16))
print("For 0xA, int is:", int('0xA', 16))

输出

For 1010, int is: 10
For 0b1010, int is: 10
For 12, int is: 10
For 0o12, int is: 10
For A, int is: 10
For 0xA, int is: 10

示例3:自定义对象的int()

在内部, int()方法调用对象的__int__()方法。

因此,即使一个对象不是数字,也可以将其转换为整数对象。

您可以通过重写__int__() __index__()__int__()方法来返回数字来实现。

这两个方法应该返回相同的值,这与旧版本的Python使用__int__() ,而新版本使用__index__()方法一样。

class Person:
    age = 23

    def __index__(self):
        return self.age
    
    def __int__(self):
        return self.age

person = Person()
print('int(person) is:', int(person))

输出

int(person) is: 23