如何编写不依赖其他内置函数的Python oct()等效功能代码
Python 自定义 oct() 函数优化实现
最终优化代码
def get_oct(x): if x == 0: return "0o0" prefix = "" if x < 0: prefix = "-" x = -x oct_str = "" while x: oct_str = str(x % 8) + oct_str x = x // 8 return f"{prefix}0o{oct_str}" entry = int(input("Enter a number: ")) print(get_oct(entry))
核心优化点
- 全程未使用
range、len函数,符合需求限制 - 放弃原方案的浮点数除法逻辑,改用整数除法
//处理,避免大数值场景下的精度丢失问题 - 砍掉冗余的中间列表存储、反转步骤,取余时直接向前拼接字符串,一步得到正序八进制结果,代码量缩减超过60%
- 补充了0、负数的边界场景适配,输出结果和Python内置
oct()完全一致 - 无额外无关函数调用,仅用基础算术运算和字符串拼接完成逻辑
效果验证
和内置oct()对比测试结果完全匹配:
- 输入
10→ 输出0o12 - 输入
-16→ 输出-0o20 - 输入
0→ 输出0o0 - 输入
64→ 输出0o100
内容的提问来源于stack exchange,提问作者AmirHossein
相关产品推荐
相关产品推荐

