Python绝对值程序输出异常求助:负数处理后结果仍错误
问题分析与解决方案
你的代码核心问题是:仅临时打印了绝对值的计算结果,但从未更新number变量本身。输入-7时,number始终保持初始的-7值,中间的print(number * -1)只是输出了一次计算后的7,但最后一行输出的还是原始的负数变量。
修正方法1:更新原变量
直接将计算后的绝对值赋值回number,覆盖原始值后再输出:
number = int(input("Give a number: ")) if number < 0: number = number * -1 # 把绝对值结果赋值给number,替换原始值 print() print("The absolute value of the number is: " + str(number))
修正方法2:用临时变量保存结果(保留原始输入)
如果需要保留用户输入的原始数字,可以单独用一个变量存储绝对值:
number = int(input("Give a number: ")) abs_value = number if number >= 0 else -number # 用三元表达式计算绝对值 print() print("The absolute value of the number is: " + str(abs_value))
更简洁的方式:调用Python内置函数
Python自带了计算绝对值的abs()函数,直接调用即可完成需求:
number = int(input("Give a number: ")) print() print("The absolute value of the number is: " + str(abs(number)))
内容的提问来源于stack exchange,提问作者abulssoni
相关产品推荐
相关产品推荐

