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

Python整数特征判断程序求助:修正绝对值范围判断逻辑

修正绝对值范围判断的问题

先看你原代码里绝对值判断部分的核心问题:

  • 处理负数时,直接判断99 >= n >=50完全错误,负数不可能满足这个条件,却直接打印符合范围的结果
  • 条件逻辑混乱,最后一个99 <= n >=50是无效逻辑,而且没覆盖所有情况(比如绝对值小于50的正数/负数)
  • 没必要分正负判断,直接用Python内置的abs()函数取绝对值再判断更简单

另外顺便提两个小问题:

  • 奇偶判断的elif (n % 2) == 0完全多余,第一个if已经判断过余数为0了
  • 第三部分的打印里有拼写错误:POSTIVE应该是POSITIVE

修正后的完整代码:

n = int(input("ENTER A NUMBER: "))
remainder = n % 2
print("=== SHORT DESCRIPTION OF", n, "===")

# 奇偶判断(简化多余的条件)
if remainder == 0:
    print(n, "is an EVEN NUMBER")
else:
    print(n, "is an ODD NUMBER")

# 正负判断(修正拼写错误)
if n > 0:
    print(n, "is a POSITIVE NUMBER")
elif n < 0:
    print(n, "is a NEGATIVE NUMBER")
else:
    print(n, "is NEITHER a POSITIVE nor a NEGATIVE NUMBER")

# 被3整除判断
if n % 3 == 0:
    print(n, "is DIVISIBLE by 3")
else:
    print(n, "is not DIVISIBLE by 3")

# 绝对值范围判断(核心修正)
abs_n = abs(n)
if 50 <= abs_n <= 99:
    print("The ABSOLUTE VALUE of", n, "is between 50 and 99 INCLUSIVE")
else:
    print("The ABSOLUTE VALUE of", n, "is NOT between 50 and 99 INCLUSIVE")

核心修正说明:

  1. 用abs(n)直接获取n的绝对值,统一判断范围,不用分正负处理
  2. 用50 <= abs_n <=99这种Python支持的连续比较,逻辑清晰且覆盖所有符合条件的情况
  3. 补充了else分支,处理所有不符合范围的情况,避免遗漏

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 16:25:30