Python int() 函数详解:类型转换、进制处理与参数限制
本文详细介绍Python中int()函数的用法,涵盖将数字或字符串转换为整数的核心功能。重点解析base参数的作用、取值范围(2-36)及特殊前缀处理规则,通过代码实例演示不同场景下的转换结果与常见错误,帮助开发者准确掌握整数转换技巧。
int(x, [base])
功能说明
该函数的主要作用是将一个数值或带有指定进制的字符串转换为整数类型。
函数定义原型
int(x=0) int(x, base=10),其中base参数的默认值为10。这意味着在未显式指定base参数时,函数会将输入值x按照十进制规则进行处理。
兼容的Python版本
Python 2.x Python 3.x
关键注意事项
1. 当参数x为数值类型时,可以直接转换;但当显式赋值base参数后,x必须为字符串类型。 2. 若x作为字符串传入,其内容必须符合base指定的进制格式,即该字符串所代表的数值必须能用base进制正确表示。
Python官方文档相关解释
class int(x=0) class int(x, base=10) Return an integer object constructed from a number or string x, or return 0 if no arguments are given. If x is a number, return x.__int__(). For floating point numbers, this truncates towards zero. If x is not a number or if base is given, then x must be a string, bytes, or bytearray instance representing an integer literal in radix base. Optionally, the literal can be preceded by + or - (with no space in between) and surrounded by whitespace. A base-n literal consists of the digits 0 to n-1, with a to z (or A to Z) having values 10 to 35. The default base is 10. The allowed values are 0 and 2–36. Base-2, -8, and -16 literals can be optionally prefixed with 0b/0B, 0o/0O, or 0x/0X, as with integer literals in code. 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). The integer type is described in Numeric Types — int, float, complex. Changed in version 3.4: If base is not an instance of int and the base object has a base.__index__ method, that method is called to obtain an integer for the base. Previous versions used base.__int__ instead of base.__index__. Changed in version 3.6: Grouping digits with underscores as in code literals is allowed.
代码示例
1. 当输入x为数值类型时:
int(3.14) # 3 int(2e2) # 200 int(100, 2) # 出错,base 被赋值后函数只接收字符串
2. 当输入x为字符串类型时:
int('23', 16) # 35
int('Pythontab', 8) # 出错,Pythontab不是个8进制数
3. base参数的取值范围为2至36,涵盖了所有英文字母(不区分大小写)。例如,在十六进制中F代表15;而在二十进制中G代表16,依此类推,Z在三十六进制中代表35。
int('FZ', 16) # 出错,FZ不能用十六进制表示
int('FZ', 36) # 575
4. 字符串'0x'在十六进制解析中可被视为前缀符号;同理,'0b'在二进制中作为前缀。若在其他进制上下文中出现'0x',则'0'和'x'会被分别视为数字0和字母x进行解析。
int('0x10', 16) # 16,0x是十六进制的符号
int('0x10', 17) # 出错,'0x10'中的 x 被视作英文字母 x
int('0x10', 36) # 42804,36进制包含字母 x
总结
以上内容介绍了Python中int()函数的使用方法,希望能对读者有所帮助。如有任何疑问,欢迎留言交流,小编将及时回复。同时感谢大家对本站的支持!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









