int()
是 Python 中的一个内置函数,用于将一个字符串或其他数据类型转换为整数。它有多种用法,常见的包括将字符串转换为整数、指定进制转换、以及处理浮点数等。以下是 int()
函数的详细用法。
基本语法
int(x=0, base=10)
参数
• x:要转换的值。可以是字符串、浮点数、布尔值或其他数字类型。
• base:可选参数,指定字符串转换为整数时的进制基数,默认为 10(十进制)。如果 x 是字符串,base 必须是 2 到 36 之间的整数。
返回值
int() 函数返回一个整数。
示例 1:将浮点数转换为整数
float_num = 3.14
int_num = int(float_num)
print(int_num) # 输出:3
说明:将浮点数转换为整数时,会直接截断小数部分,而不是四舍五入。
示例 2:将字符串转换为整数
str_num = "123"
int_num = int(str_num)
print(int_num) # 输出:123
说明:字符串必须是有效的数字字符串,否则会抛出 ValueError。
示例 3:指定进制转换
binary_str = "1010"
int_num = int(binary_str, 2) # 指定进制为 2
print(int_num) # 输出:10
说明:base 参数用于指定字符串的进制。例如,int("1010", 2) 表示将二进制字符串 "1010" 转换为十进制整数。
3.1 二进制字符串转换为十进制整数
s = "1010" # 二进制
number = int(s, 2)
print(number) # 输出: 10(十进制)
3.2 八进制字符串转换为十进制整数
python
s = "12" # 八进制
number = int(s, 8)
print(number) # 输出: 10(十进制)
3.3 十六进制字符串转换为十进制整数
python
s = "a" # 十六进制
number = int(s, 16)
print(number) # 输出: 10(十进制)
示例 4:将布尔值转换为整数
bool_true = True
bool_false = False
int_true = int(bool_true)
int_false = int(bool_false)
print(int_true) # 输出:1
print(int_false) # 输出:0
说明:布尔值 True 转换为整数时为 1,布尔值 False 转换为整数时为 0。
示例 5:处理无效输入
try:
invalid_str = "abc"
int_num = int(invalid_str)
except ValueError:
print("输入的字符串不是有效的数字!") # 输出:输入的字符串不是有效的数字!
说明:如果字符串不能被转换为整数(例如包含非数字字符),会抛出 ValueError。
注意事项
1. 错误处理:
• 如果尝试将非数字字符串(如 "abc")转换为整数,会抛出 ValueError。
• 如果字符串包含前导或尾随空格,可以通过 strip() 方法去除空格后再转换。
str_num = " 123 "
int_num = int(str_num.strip())
print(int_num) # 输出:123
2. 进制转换:
• 如果使用 base 参数,字符串必须是有效的数字字符串,并且符合指定的进制规则。
• 例如,int("1010", 2) 是有效的,但 int("1010", 1) 会抛出 ValueError,因为基数必须在 2 到 36 之间。
3. 浮点数转换:
• 浮点数转换为整数时,会直接截断小数部分,而不是四舍五入。如果需要四舍五入,可以使用 round() 函数。
float_num = 3.7
int_num = int(float_num) # 输出:3
rounded_num = round(float_num) # 输出:4
int() 函数在 Python 中非常常用,用于将各种类型的数据转换为整数。通过合理使用它,可以实现类型转换和数据处理。
总结
int()
函数在 Python 中非常有用,可以将字符串或其他数据类型转换为整数。你可以:
将有效的数字字符串转换为整数。
根据指定的进制(如二进制、八进制、十六进制等)转换字符串为整数。
将浮点数取整转换为整数(去除小数部分)。
处理非法值时,需要小心异常的抛出。
这个函数是 Python 中非常常见且重要的工具,适用于各种数据处理场景。