【问题标题】:Python - Finding the difference between 2 numbersPython - 找出两个数字之间的差异
【发布时间】:2017-03-28 02:30:43
【问题描述】:

所以我试图找到一种方法来找出 3 个整数之间的差异; 甲,乙,丙 所以我需要找到 a - b 之间的差异和 b - c 之间的差异 如果差异相同,则打印 true,否则打印 false。 我一直在尝试使用 abs() 函数,但似乎无法得到我需要的结果。任何帮助,将不胜感激。

这是问题陈述:

给定三个整数,a b c,其中一个是小整数,一个是中整数,
一个很大。如果三个值间隔均匀,则打印 True, 所以小号和中号的区别是一样的 中型和大型的区别。

这是我目前所拥有的;

a = int(input())
b = int(input())
c = int(input())

if abs(a-b) == abs(b-c) :
    print("True")
else :
    print("False")

#

Test Input  Expected Actual 
1     4 6 2    True  False
2     6 2 4    True  False
3   10 9 11    True  False

【问题讨论】:

  • 那么问题出在哪里?代码没有达到您的预期吗?如果是这样,你提供了什么输入,你期望什么输出,你实际得到了什么输出?
  • 你想要的输出是什么?您尝试了哪些输入,它们与您的预期有何不同?
  • 切勿在冒号前添加空格。此外,这并不是我见过的最惯用的 Python sn-ps,因此您可能需要注意 Python 开发人员使用的设计模式类型并遵循这些模式。
  • 我刚刚测试了您的代码,它适用于整数。我猜当您尝试输入浮点数时它会失败?
  • 我不明白您的意见 - 当 (4-6)=2 和 (6-2)=4 时,4 6 2 的预期结果如何?

标签: python conditional


【解决方案1】:

根据问题描述,听起来你需要先对数字进行排序:

numbers = sorted(int(input()) for _ in range(3))
print(numbers[1] - numbers[0] == numbers[2] - numbers[1])

【讨论】:

    【解决方案2】:

    您有 3 个可能的“中间”数字,因此您需要进行 3 次比较。

    x = abs(a - b)
    y = abs(a - c)
    z = abs(b - c)
    if (x == y) or (x == z) or (y == z):
       ...
    

    【讨论】:

      猜你喜欢
      • 2016-07-21
      • 2021-12-05
      • 1970-01-01
      • 1970-01-01
      • 2012-02-09
      • 1970-01-01
      • 2018-07-16
      • 1970-01-01
      相关资源
      最近更新 更多