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

如何在Python中不使用字符串方法反转整数及代码报错排查

代码错误点
  • 变量名不统一:输入的数值存储在sayi变量中,但内层循环判断条件用了未定义的number变量,运行会直接抛出名称错误。
  • 除法运算符使用错误:Python中/为浮点数除法,运算后会得到小数,比如123 / 10 = 12.3,无法正常终止循环,需要替换为整数除法//。
  • 反转逻辑不完整:当前代码仅逐位打印原数的末位,没有拼接得到完整的反转整数,不符合反转整数的需求。
  • 缺少负数处理逻辑:如果输入负整数(除了用作退出的-1),现有循环条件>0会直接跳过,无法处理负数反转。
修正后可运行代码
count = 1
while count != 0:
    sayi = int(input("Number:\n"))
    if sayi == -1:
        break
    # 标记数值符号
    sign = -1 if sayi < 0 else 1
    number = abs(sayi)
    reversed_num = 0
    while number > 0:
        # 取当前数值最后一位
        last_digit = number % 10
        # 拼接得到反转数
        reversed_num = reversed_num * 10 + last_digit
        # 移除已经处理的最后一位
        number = number // 10
    # 恢复数值符号
    reversed_num *= sign
    print("Reversing number :{}".format(reversed_num))
    count += 1
逻辑说明
  • 先对输入数值做符号标记,把原数转成绝对值处理,反转完成后再恢复符号,兼容正负数反转需求。
  • 逐位取原数末位,通过reversed_num = reversed_num * 10 + last_digit的方式拼接反转后的完整整数,而非仅打印单个数位。
  • 使用整数除法//去掉已经处理过的末位,保证循环可以正常终止。
  • 调整了退出判断的顺序,代码逻辑更简洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 15:24:00