【问题标题】:Having a problem with code that would print the highest number打印最高数字的代码有问题
【发布时间】:2022-09-30 22:45:32
【问题描述】:

所以我正在尝试编写一个代码来打印最高数字,这就是我写的:

a=int(input())
b=int(input())
c=int(input())
if a>b:
    if a>c:
        print(a)
elif a>c:
    if a>b:
        print(a)
elif b>a:
    if b>c:
        print(b)
elif b>c:
    if b>a:
        print(b)
elif c>a:
    if c>b:
        print(c)
elif c>b:
    if c>a:
        print(c)

但由于某种原因,有时它只是不打印任何东西,我不知道为什么。此外,代码不能包含minmaxandor。我错过了什么?(对不起这个绝对糟糕的英语顺便说一句)

  • 你的意思是:print(max([a,b,c]))
  • a>b怎么能在第一个else
  • 是的,但我必须在不使用 max minandor 的情况下编写代码
  • 如果a 大于b没有任何无论ac 之间的关系如何,都会执行elif 子句。
  • 尝试不使用 elif,只使用 if。 elif 使得只有一个语句将执行。不幸的是,我相信这意味着如果 a!=b 就不可能到达 c> 语句

标签: python


【解决方案1】:

如果您想找出什么都没有打印时发生了什么,添加一个 else 语句可能会很有用,该语句将在您的其他情况不匹配时触发。

else:
    raise Exception(f"Case that isn't handled: a={a}, b={b}, c={c}")

您还可以将异常替换为打印。

【讨论】:

    【解决方案2】:

    你不需要这样做。

    myList = [a, b, c]
    print(max(myList))
    

    或者,如果您必须使用大于运算符:

    if a > b and a > c:
        print(a)
    elif b > a and b > c:
        print(b)
    else:
        print(c)
    

    【讨论】:

      【解决方案3】:

      首先,重复if/elif真的很麻烦,而且你的很多语句都是多余的。您可以简单地使用内置的 max 函数,如下所示:

      print(max(a, b, c))
      

      如果您出于某种原因真的要坚持这一点,则需要考虑两个值相同的情况。例如,如果a==b,您的代码将不会返回任何内容。这意味着:

      if a >= b:
          if a >= c:
              print(a)
          else:
              print(c)
      else:
          if b >= c:
              print(b)
          else:
              print(c)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-01-16
        • 2011-11-18
        • 2020-01-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多