You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

进制转换代码求助:语法错误排查及多进制转换功能完善

问题解决:进制转换作业代码修复与完善

现有代码核心问题

  • 输入逻辑错误:第一个输入提示描述混乱,未实现数字最大位数限制
  • 类型错误:将进制输入转为字符串后与range比较,永远判定为无效,导致循环无法退出
  • 变量未定义:直接使用dec变量但未先将输入数字转换为十进制
  • 缩进错误:else块内代码未缩进,违反Python语法规则
  • 语法错误:混用中文引号、存在无效代码片段(如Float()、错误的print语句)

修复并完善后的代码

# 设置数字最大位数(可根据需求修改)
MAX_DIGITS = 10

# 接收并验证用户输入的数字
while True:
    num_input = input(f"Enter a number (max {MAX_DIGITS} digits): ")
    if len(num_input) <= MAX_DIGITS:
        break
    print(f"Error: Number can't exceed {MAX_DIGITS} digits. Try again.")

# 接收并验证原进制输入(2-16)
while True:
    try:
        original_base = int(input("Enter the original base (2-16): "))
        if 2 <= original_base <= 16:
            break
        print("Error: Base must be between 2 and 16. Try again.")
    except ValueError:
        print("Error: Please enter an integer.")

# 将输入数字转换为十进制,处理无效数字异常
try:
    decimal_value = int(num_input, original_base)
except ValueError:
    print(f"Error: '{num_input}' is not a valid number for base {original_base}.")
    exit()

# 通用进制转换函数:十进制转任意2-16进制
def decimal_to_base(num, target_base):
    digit_chars = "0123456789ABCDEF"
    if num == 0:
        return "0"
    result = ""
    while num > 0:
        result = digit_chars[num % target_base] + result
        num = num // target_base
    return result

# 转换为各目标进制
binary = decimal_to_base(decimal_value, 2)
ternary = decimal_to_base(decimal_value, 3)
quaternary = decimal_to_base(decimal_value, 4)
octal = decimal_to_base(decimal_value, 8)
hexadecimal = decimal_to_base(decimal_value, 16)

# 按指定格式输出结果
print(f"{num_input} in base {original_base} is: {decimal_value} in base 10, {binary} in base 2, {ternary} in base 3, {quaternary} in base 4, {octal} in base 8, {hexadecimal} in base 16")

代码说明

  • 输入验证:实现数字最大位数限制,同时对进制输入做类型和范围校验,处理非整数输入的异常
  • 十进制转换:利用Python内置int()函数的进制转换功能,同时捕获无效数字的异常情况
  • 通用转换函数:自定义decimal_to_base函数实现十进制到任意2-16进制的转换,清晰展示进制转换逻辑
  • 输出扩展:在满足基础需求的同时,补充了三进制、四进制、八进制的转换输出,符合导师要求

内容的提问来源于stack exchange,提问作者MLW

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 15:32:39