【问题标题】:Python if statement not computing valuePython if 语句不计算值
【发布时间】:2021-08-19 14:06:48
【问题描述】:

第一个婴儿步入 Python,我被困住了。我想打印用户输入的整数的绝对值。如果输入的整数是负值,我希望它返回一个正值。我将字符串转换为整数,我很好地存储了输入的“数字”,但是如果我输入一个负数,它不会执行 if 语句的 eval 并像你一样通过* -1 转换为正数见下文。我很茫然,我应该在这里的某个地方定义另一个变量吗?

number = int(input('Please enter a number: '))

if number <= 0:
    number = number * -1

【问题讨论】:

  • 发生了什么?之后你似乎没有对number 做任何事情,至少在这段代码中没有。
  • 您提供的代码有效(除了if 的缩进错误)。但更简单的方法是number = abs(int(input('Please enter a number: ')))
  • 哇,number = abs(int(input('Please enter a number: '))) 确实有效。目标达到了,但我仍然想知道为什么 if 语句对我不起作用。

标签: python if-statement conditional-statements


【解决方案1】:

我在我的机器上进行了测试,并且操作正常。它会为您返回错误吗?

作为建议,您也可以使用 abs() 函数而不是乘以 -1 来返回数字的绝对值。

例子:

abs(-5) ---> 5
abs(5) ---> 5

【讨论】:

  • 注意我正在使用 IDLE,当我评估“数字”后它仍然返回任何负数时,我输入的仍然是那个负数。也试过number = int(input('Please enter a number: ')) if number &lt;= 0: abs(number) print(number)还是一样
【解决方案2】:

试试这个:

num = int(input("Please enter a number:"))

if num <= 0:
    num = abs(num)

Python 有很多内置函数可以帮助完成这样的简单任务。 abs() 函数返回任何 float/int/etc 的绝对值。你把它放进去。

如果您愿意,您也可以在一行中完成所有操作,您将使用相同的 abs() 函数。这一次可以在一个 try-except 块中处理任何错误的输入,例如“18asdfnsjkdf”。

try:
    num = abs(int(input("Enter a number:")))
except ValueError:
    pass

【讨论】:

  • 我认为它不能回答有关 OP 代码的问题(如果您使用 absif-clause 也是多余的)。
  • 如果你打电话给abs()那么就不需要测试if num &lt;= 0:
【解决方案3】:

您的代码有效,添加打印语句并注意缩进问题:

number = int(input('Please enter a number: '))  
if number <= 0:  
  number = number * -1 
print(number)                                                                                                                                                                                                                      

输出是:

Please enter a number: -5
5

【讨论】:

    猜你喜欢
    • 2022-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-28
    • 1970-01-01
    • 2020-06-17
    • 2010-12-15
    相关资源
    最近更新 更多