Python中的oct() 函数是什么?

oct()函数将整数转换为以"0o"开头的八进制字符串,如oct(8)返回'0o10',支持整数和实现__index__方法的对象,不支持浮点数;可通过切片获取纯数字部分,常用于权限处理等场景。

oct() 是 Python 中的一个内置函数,用来将一个整数转换为对应的八进制字符串表示形式。

基本用法

该函数接受一个整数作为参数,返回以 "0o" 开头的八进制字符串。

例如:
  • oct(8) 返回 '0o10'
  • oct(64) 返回 '0o100'
  • oct(-10) 返回 '-0o12'

注意返回值是字符串类型,不是数字。前缀 "0o" 表示这是一个八进制数,这是 Python 的标准表示方式。

支持的输入类型

虽然 oct() 主要用于整数,但它也接受那些实现了 __index__() 方法的对象。

  • 普通整数(int)可以直接使用
  • 某些自定义类如果实现了 __index__ 方法,也可以被 oct() 处理
  • 浮点数不行,会抛出 TypeError
小技巧:

如果你只需要八进制数字部分,可以切掉前两个字符:

  • ''.join(oct(64).split('0o')) 得到 '100'

和其他进制转换函数的关系

Python 提供了类似的函数用于其他进制:

  • bin() 转二进制
  • hex() 转十六进制
  • oct() 转八进制

这些函数行为一致,都有前缀,返回字符串。

基本上就这些,不复杂但容易忽略细节。处理权限、文件模式等场景时,八进制表示很常见,oct() 就派上用场了。