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")
核心修正说明:
- 用
abs(n)直接获取n的绝对值,统一判断范围,不用分正负处理 - 用
50 <= abs_n <=99这种Python支持的连续比较,逻辑清晰且覆盖所有符合条件的情况 - 补充了else分支,处理所有不符合范围的情况,避免遗漏
内容的提问来源于stack exchange,提问作者Nemethste
相关产品推荐
相关产品推荐

