Python中的int()
函数用于将一个字符串或数值转换为整数类型。当参数是数值类型时,直接将数值类型强制转换为整数类型。当参数是字符串类型时,则需要满足以下条件:
- 字符串中只包含数字或者
+/-
号,不能包含其他字符,否则会抛出ValueError
异常。 - 当字符串中包含
+/-
号时,必须只出现在最前面,否则会抛出ValueError
异常。
使用语法如下:
int(x, base=10)
参数说明:
- x:输入的参数,可以是字符串或者数值类型。
- base:参数x的进制,默认为10进制。当x是字符串类型时,如果没有指定base,则默认基数为10。
下面通过代码实例进行说明:
# 1. 字符串类型参数
a = '123'
b = '-456'
c = '0xFF'
print(int(a)) # 输出:123
print(int(b)) # 输出:-456
print(int(c, base=16)) # 输出:255
# 2. 数值类型参数
d = 3.14
e = -6.66
print(int(d)) # 输出:3
print(int(e)) # 输出:-6
# 3. 参数不合法,抛出异常
f = '12a'
g = '-1+2'
print(int(f)) # 输出:ValueError: invalid literal for int() with base 10: '12a'
print(int(g)) # 输出:ValueError: invalid literal for int() with base 10: '-1+2'
上述代码中,第一组和第二组分别将字符串和数值类型参数转换成整数,并输出结果。第三组和第四组分别传入了不合法的参数,在转换时抛出了ValueError
异常。
另外,int()
函数还可以用来进行进制转换,通过传入base
参数即可实现。下面通过代码实例进行说明:
a = '10101'
b = '0x17F'
c = '0b1111'
print(int(a, base=2)) # 输出:21
print(int(b, base=16)) # 输出:383
print(int(c, base=0)) # 输出:15
上述代码中,第一组和第二组分别将二进制和十六进制字符串转换成整数,并输出结果。第三组传入的字符串是以0b
开头的二进制数,但是将base
参数设为0,就会自动识别是二进制数进行转换。