Python 减号和加号函数颠倒了吗?

Python Minus and Plus Functions reversed?

今天我安装了 python,我对这个很好奇。我创造了这个“计算器”小东西,如果你能这样称呼它的话......

first_number = input("First Number: ")
second_number = input("Second Number: ")
sign = input("Sign: ")
difference = int(first_number) + int(second_number)
summary = int(first_number) - int(second_number)



if not sign.find("-"):
    print(summary)
if sign.find("-"):
    print(difference)

并且有效...当您插入“-”作为符号时,它会执行 num1 - num2

我的问题是:

为什么会这样

difference = int(first_number) + int(second_number)
summary = int(first_number) - int(second_number)

工作??? 差异部分工作正常并正确打印 (num1 - num2) 即使它包含数字之间的“+”符号???

Python 的 .find 函数 returns 在字符串中找到该字符的索引。在这里,如果您传入字符串 '-',它将 return 0,因为字符 - 在第 0 个索引处找到。

计算 True/False 语句时,Python 将 0 计算为 False。这意味着对于 sign='-',您的代码将打印 summary.

要解决此问题,请改用 in 或等式。例如:

if sign == '-':
 <do this>

OR

if '-' in sign:
 <do this>

如果您 运行 您的代码,在您的 'if' 语句下使用 'print' 语句,如下所示:

first_number = input("First Number: ")
second_number = input("Second Number: ")
sign = input("Sign: ")
difference = int(first_number) + int(second_number)
summary = int(first_number) - int(second_number)



if not sign.find("-"):
    print('summary')
    print(summary)
if sign.find("-"):
    print('difference')
    print(difference)

您可以看到程序返回的是哪个值。这有什么帮助吗?